Package xyz.cofe.num

Class BaseNumbers

java.lang.Object
xyz.cofe.num.BaseNumbers
All Implemented Interfaces:
Numbers<java.lang.Number>

public class BaseNumbers
extends java.lang.Object
implements Numbers<java.lang.Number>
Author:
Kamnev Georgiy
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Class Description
    static class  BaseNumbers.BaseNumbersBuilder
    Выбор общего основаия
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected BitCount minBitsCount
    Минимальное кол-во бит на значение числа
    protected java.lang.Number one
    Число обозначающее единицу
    protected java.lang.Number zero
    Число обозначающее ноль
  • Constructor Summary

    Constructors 
    Constructor Description
    BaseNumbers()
    Конструктор по умолчанию:
    minBitsCount = BitCount.INT
    zero = 0
    one = 1
    BaseNumbers​(BitCount minBitsCount, java.lang.Number zero, java.lang.Number one)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    java.lang.Number add​(java.lang.Number a, java.lang.Number b)
    Сложение чисел
    static BaseNumbers.BaseNumbersBuilder base()
    Выбор общего основания
    static int bitCount​(java.lang.Number n)
    Возвращает кол-во бит испольуемых для представления числа
    static java.lang.Number cast​(java.lang.Number num, java.lang.Class<? extends java.lang.Number> base)
    Преобразует число к указанному типу
    static CommonBase commonBase​(java.lang.Number n0, java.lang.Number n1)
    Возвращает интерфейс для работы с общим основанием чисел.
    static CommonBase commonBase​(java.lang.Number n0, java.lang.Number n1, BitCount minBitsCount)
    Возвращает интерфейс для работы с общим основанием чисел.
    java.lang.Number div​(java.lang.Number a, java.lang.Number b)
    Деление чисел
    boolean equals​(java.lang.Number a, java.lang.Number b)
    Сравнивает два числа на равность
    boolean infinity​(java.lang.Number n)
    Проверяет что число является бесконечностью
    static boolean integerNumber​(java.lang.Number n)
    Проверяет что указанное число является целым / натуральным (byte,short,int,long,BigInteger,AtomicInteger,AtomicLong)
    boolean less​(java.lang.Number a, java.lang.Number b)
    Сравннвает числа
    boolean more​(java.lang.Number a, java.lang.Number b)
    Сравннвает числа
    java.lang.Number mul​(java.lang.Number a, java.lang.Number b)
    Умножение чисел
    java.lang.Number next​(java.lang.Number n)
    Возвращает следующее число
    java.lang.Number one()
    Возвращает единицу
    java.lang.Number prev​(java.lang.Number n)
    Возвращает предыдущее число
    static boolean ratioNumber​(java.lang.Number n)
    Проверяет что указанное число является дробным / рациональным (float,double,BigDecimal)
    java.lang.Number remainder​(java.lang.Number a, java.lang.Number b)
    Остаток от деления
    static SingleBase singleBase​(java.lang.Number n0, BitCount minBitsCount)
    Возвращает интерфейс для операции над числами
    java.lang.Number sub​(java.lang.Number a, java.lang.Number b)
    Вычитание чисел
    boolean undefined​(java.lang.Number n)
    Проверяет что число не определенно
    static boolean unlimited​(java.lang.Number n)
    Проверяет что указанное число относиться к большим числам (BigInteger, BigDecimal)
    java.lang.Number zero()
    Возвращает нулевое число
    boolean zero​(java.lang.Number n)
    Проверяет что число является нулем

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • minBitsCount

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

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

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

    • BaseNumbers

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

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

    • integerNumber

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

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

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

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

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

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

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

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

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

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

      public static BaseNumbers.BaseNumbersBuilder base()
      Выбор общего основания
      Returns:
      общее основание
    • zero

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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