Package xyz.cofe.num

Class BaseNumbers

    • Field Detail

      • minBitsCount

        protected final BitCount minBitsCount
        Минимальное кол-во бит на значение числа
      • zero

        protected final Number zero
        Число обозначающее ноль
      • one

        protected final Number one
        Число обозначающее единицу
    • Constructor Detail

      • BaseNumbers

        public BaseNumbers()
        Конструктор по умолчанию:
        minBitsCount = BitCount.INT
        zero = 0
        one = 1
      • BaseNumbers

        public BaseNumbers​(BitCount minBitsCount,
                           Number zero,
                           Number one)
        Конструктор
        Parameters:
        minBitsCount - минимальное кол-во бит
        zero - число ноль
        one - число единица
    • Method Detail

      • integerNumber

        public static boolean integerNumber​(Number n)
        Проверяет что указанное число является целым / натуральным (byte,short,int,long,BigInteger,AtomicInteger,AtomicLong)
        Parameters:
        n - чило
        Returns:
        true - является целым числом
      • ratioNumber

        public static boolean ratioNumber​(Number n)
        Проверяет что указанное число является дробным / рациональным (float,double,BigDecimal)
        Parameters:
        n - число
        Returns:
        true - является дробным
      • bitCount

        public static int bitCount​(Number n)
        Возвращает кол-во бит испольуемых для представления числа
        Parameters:
        n - Число
        Returns:
        Кол-во бит, 0 - для null, -1 для неизвестного типа
      • unlimited

        public static boolean unlimited​(Number n)
        Проверяет что указанное число относиться к большим числам (BigInteger, BigDecimal)
        Parameters:
        n - Число
        Returns:
        true - является большим
      • cast

        public static Number cast​(Number num,
                                  Class<? extends Number> base)
        Преобразует число к указанному типу
        Parameters:
        num - Число
        base - Тип
        Returns:
        Число указанного типа
      • singleBase

        public static SingleBase singleBase​(Number n0,
                                            BitCount minBitsCount)
        Возвращает интерфейс для операции над числами
        Parameters:
        n0 - Число
        minBitsCount - минимальное кол-во бит
        Returns:
        Интерфейс для мат операций
      • commonBase

        public static CommonBase commonBase​(Number n0,
                                            Number n1)
        Возвращает интерфейс для работы с общим основанием чисел. Основание (тип чисел) береться такое чтоб не потерять точность вычислений.
        см commonBase(Number, Number, BitCount)
        Parameters:
        n0 - Число А
        n1 - Число Б
        Returns:
        Возвращает интерфейс с минимальной потерей точности
      • commonBase

        public static CommonBase commonBase​(Number n0,
                                            Number n1,
                                            BitCount minBitsCount)
        Возвращает интерфейс для работы с общим основанием чисел. Основание (тип чисел) береться такое чтоб не потерять точность вычислений.

        Алгоритм выбора:

        Parameters:
        n0 - Число А
        n1 - Число Б
        minBitsCount - (может быть null, тогда см BitCount.max(Number, Number)
        Returns:
        Возвращает интерфейс с минимальной потерей точности
      • zero

        public Number zero()
        Description copied from interface: Numbers
        Возвращает нулевое число
        Specified by:
        zero in interface Numbers<Number>
        Returns:
        ноль
      • one

        public Number one()
        Description copied from interface: Numbers
        Возвращает единицу
        Specified by:
        one in interface Numbers<Number>
        Returns:
        единица
      • zero

        public boolean zero​(Number n)
        Description copied from interface: Numbers
        Проверяет что число является нулем
        Specified by:
        zero in interface Numbers<Number>
        Parameters:
        n - число
        Returns:
        true - число является нулем
      • undefined

        public boolean undefined​(Number n)
        Description copied from interface: Numbers
        Проверяет что число не определенно
        Specified by:
        undefined in interface Numbers<Number>
        Parameters:
        n - число
        Returns:
        true - число не определенно
      • infinity

        public boolean infinity​(Number n)
        Description copied from interface: Numbers
        Проверяет что число является бесконечностью
        Specified by:
        infinity in interface Numbers<Number>
        Parameters:
        n - число
        Returns:
        true - число является бесконечностью
      • add

        public Number add​(Number a,
                          Number b)
        Description copied from interface: Numbers
        Сложение чисел
        Specified by:
        add in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        сумма чисел
      • sub

        public Number sub​(Number a,
                          Number b)
        Description copied from interface: Numbers
        Вычитание чисел
        Specified by:
        sub in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        разность чисел
      • mul

        public Number mul​(Number a,
                          Number b)
        Description copied from interface: Numbers
        Умножение чисел
        Specified by:
        mul in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        результат умножение
      • div

        public Number div​(Number a,
                          Number b)
        Description copied from interface: Numbers
        Деление чисел
        Specified by:
        div in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        результат деления
      • remainder

        public Number remainder​(Number a,
                                Number b)
        Description copied from interface: Numbers
        Остаток от деления
        Specified by:
        remainder in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        остаток
      • equals

        public boolean equals​(Number a,
                              Number b)
        Description copied from interface: Numbers
        Сравнивает два числа на равность
        Specified by:
        equals in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        true - числа равны
      • more

        public boolean more​(Number a,
                            Number b)
        Description copied from interface: Numbers
        Сравннвает числа
        Specified by:
        more in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        true - число а больше б
      • less

        public boolean less​(Number a,
                            Number b)
        Description copied from interface: Numbers
        Сравннвает числа
        Specified by:
        less in interface Numbers<Number>
        Parameters:
        a - число а
        b - число б
        Returns:
        true - число а меньше б
      • next

        public Number next​(Number n)
        Description copied from interface: Numbers
        Возвращает следующее число
        Specified by:
        next in interface Numbers<Number>
        Parameters:
        n - число
        Returns:
        следующее число
      • prev

        public Number prev​(Number n)
        Description copied from interface: Numbers
        Возвращает предыдущее число
        Specified by:
        prev in interface Numbers<Number>
        Parameters:
        n - число
        Returns:
        предыдущее число