程序包 org.hipparchus.dfp

类 DfpField

java.lang.Object
org.hipparchus.dfp.DfpField
所有已实现的接口:
Field<Dfp>

public class DfpField extends Object implements Field<Dfp>
十进制浮点数实例的字段。
  • 字段详细资料

    • FLAG_INVALID

      public static final int FLAG_INVALID
      无效操作的IEEE 854-1987标志。
      另请参阅:
    • FLAG_DIV_ZERO

      public static final int FLAG_DIV_ZERO
      除零的IEEE 854-1987标志。
      另请参阅:
    • FLAG_OVERFLOW

      public static final int FLAG_OVERFLOW
      溢出的IEEE 854-1987标志。
      另请参阅:
    • FLAG_UNDERFLOW

      public static final int FLAG_UNDERFLOW
      下溢的IEEE 854-1987标志。
      另请参阅:
    • FLAG_INEXACT

      public static final int FLAG_INEXACT
      不精确结果的IEEE 854-1987标志。
      另请参阅:
  • 构造器详细资料

    • DfpField

      public DfpField(int decimalDigits)
      为指定的基数位数创建一个工厂。

      请注意,由于Dfp类使用10000作为其基数,每个基数位等同于4个十进制数字。这意味着请求13、14、15或16个十进制数字实际上在所有情况下都将导致4个基数10000位。

      参数:
      decimalDigits - 最小十进制位数。
  • 方法详细资料

    • getRadixDigits

      public int getRadixDigits()
      获取由此工厂构建的Dfp实例的基数位数。
      返回:
      基数位数
    • setRoundingMode

      public void setRoundingMode(DfpField.RoundingMode mode)
      设置舍入模式。如果未设置,则默认值为DfpField.RoundingMode.ROUND_HALF_EVEN
      参数:
      mode - 所需的舍入模式请注意,舍入模式对于属于当前系统中的当前DfpField的所有Dfp实例都是通用的,并将影响所有未来的计算。
    • getRoundingMode

      public DfpField.RoundingMode getRoundingMode()
      获取当前的舍入模式。
      返回:
      当前的舍入模式
    • getIEEEFlags

      public int getIEEEFlags()
      获取IEEE 854状态标志。
      返回:
      IEEE 854状态标志
      另请参阅:
    • clearIEEEFlags

      public void clearIEEEFlags()
      清除IEEE 854状态标志。
      另请参阅:
    • setIEEEFlags

      public void setIEEEFlags(int flags)
      设置IEEE 854状态标志。
      参数:
      flags - 标志的期望值
      另请参阅:
    • setIEEEFlagsBits

      public void setIEEEFlagsBits(int bits)
      设置IEEE 854状态标志中的一些位,而不更改已设置的位。

      调用此方法等同于调用setIEEEFlags(getIEEEFlags() | bits)

      参数:
      bits - 要设置的位
      另请参阅:
    • newDfp

      public Dfp newDfp()
      创建一个值为0的Dfp
      返回:
      一个新的值为0的Dfp
    • newDfp

      public Dfp newDfp(byte x)
      从字节值创建一个实例。
      参数:
      x - 要转换为实例的值
      返回:
      一个与x具有相同值的新的Dfp
    • newDfp

      public Dfp newDfp(int x)
      从int值创建一个实例。
      参数:
      x - 要转换为实例的值
      返回:
      一个与x具有相同值的新的Dfp
    • newDfp

      public Dfp newDfp(long x)
      从long值创建一个实例。
      参数:
      x - 要转换为实例的值
      返回:
      一个与x具有相同值的新的Dfp
    • newDfp

      public Dfp newDfp(double x)
      从double值创建一个实例。
      参数:
      x - 要转换为实例的值
      返回:
      一个与x具有相同值的新的Dfp
    • newDfp

      public Dfp newDfp(Dfp d)
      复制构造函数。
      参数:
      d - 要复制的实例
      返回:
      一个与d具有相同值的新的Dfp
    • newDfp

      public Dfp newDfp(String s)
      给定一个字符串表示形式创建一个Dfp
      参数:
      s - 实例的字符串表示形式
      返回:
      从指定字符串解析出的新的Dfp
    • newDfp

      public Dfp newDfp(byte sign, byte nans)
      创建一个具有非有限值的Dfp
      参数:
      sign - 要创建的Dfp的符号
      nans - 值的代码,必须是Dfp.INFINITEDfp.SNANDfp.QNAN之一
      返回:
      具有非有限值的新的Dfp
    • getZero

      public Dfp getZero()
      获取常量0。
      指定者:
      getZero 在接口中 Field<Dfp>
      返回:
      值为0的Dfp
    • getOne

      public Dfp getOne()
      获取常量1。
      指定者:
      getOne 在接口中 Field<Dfp>
      返回:
      值为1的Dfp
    • getRuntimeClass

      public Class<Dfp> getRuntimeClass()
      返回FieldElement的运行时类。
      指定者:
      getRuntimeClass 在接口中 Field<Dfp>
      返回:
      代表此对象的运行时类的Class对象。
    • getTwo

      public Dfp getTwo()
      获取常量2。
      返回:
      值为2的Dfp
    • getSqr2

      public Dfp getSqr2()
      获取常量√2。
      返回:
      值为√2的Dfp
    • getSqr2Split

      public Dfp[] getSqr2Split()
      获取常量√2的两个部分。
      返回:
      值为√2的Dfp的两个部分
    • getSqr2Reciprocal

      public Dfp getSqr2Reciprocal()
      获取常量√2 / 2。
      返回:
      值为√2 / 2的Dfp
    • getSqr3

      public Dfp getSqr3()
      获取常量√3。
      返回:
      值为√3的Dfp
    • getSqr3Reciprocal

      public Dfp getSqr3Reciprocal()
      获取常量√3 / 3。
      返回:
      值为√3 / 3的Dfp
    • getPi

      public Dfp getPi()
      获取常量π。
      返回:
      值为π的Dfp
    • getDegToRad

      public Dfp getDegToRad()
      获取度到弧度的转换因子。
      返回:
      度到弧度转换因子的Dfp
    • getRadToDeg

      public Dfp getRadToDeg()
      获取弧度到度的转换因子。
      返回:
      弧度到度转换因子的Dfp
    • getPiSplit

      public Dfp[] getPiSplit()
      获取常量π的两个部分。
      返回:
      值为π的Dfp的两个部分
    • getE

      public Dfp getE()
      获取常量e。
      返回:
      值为e的Dfp
    • getESplit

      public Dfp[] getESplit()
      获取常量e的两个部分。
      返回:
      值为e的Dfp的两个部分
    • getLn2

      public Dfp getLn2()
      获取常量ln(2)。
      返回:
      值为ln(2)的Dfp
    • getLn2Split

      public Dfp[] getLn2Split()
      获取常量ln(2)的两个部分。
      返回:
      值为ln(2)的Dfp的两个部分
    • getLn5

      public Dfp getLn5()
      获取常量ln(5)。
      返回:
      值为ln(5)的Dfp
    • getLn5Split

      public Dfp[] getLn5Split()
      获取常量ln(5)的两个部分。
      返回:
      值为ln(5)的Dfp的两个部分
    • getLn10

      public Dfp getLn10()
      获取常量ln(10)。
      返回:
      值为ln(10)的Dfp
    • equals

      public boolean equals(Object other)

      如果两个字段具有相同数量的基数位和相同的舍入模式,则认为它们相等。

      覆盖:
      equals 在类中 Object
    • hashCode

      public int hashCode()
      覆盖:
      hashCode 在类中 Object
    • computeExp

      public static Dfp computeExp(Dfp a, Dfp one)
      计算exp(a)。
      参数:
      a - 我们想要指数的数字
      one - 值为1的常量,精度为所需精度
      返回:
      exp(a)
    • computeLn

      public static Dfp computeLn(Dfp a, Dfp one, Dfp two)
      计算ln(a)。设f(x) = ln(x),我们知道f'(x) = 1/x,因此根据泰勒定理,我们有: ----- n+1 n f(x) = \ (-1) (x - 1) / ---------------- for 1 <= n <= infinity ----- n or 2 3 4 (x-1) (x-1) (x-1) ln(x) = (x-1) - ----- + ------ - ------ + ... 2 3 4 alternatively, 2 3 4 x x x ln(x+1) = x - - + - - - + ... 2 3 4 This series can be used to compute ln(x), but it converges too slowly. If we substitute -x for x above, we get 2 3 4 x x x ln(1-x) = -x - - - - - - + ... 2 3 4 Note that all terms are now negative. Because the even powered ones absorbed the sign. Now, subtract the series above from the previous one to get ln(x+1) - ln(1-x). Note the even terms cancel out leaving only the odd ones 3 5 7 2x 2x 2x ln(x+1) - ln(x-1) = 2x + --- + --- + ---- + ... 3 5 7 By the property of logarithms that ln(a) - ln(b) = ln (a/b) we have: 3 5 7 x+1 / x x x \ ln ----- = 2 * | x + ---- + ---- + ---- + ... | x-1 \ 3 5 7 / But now we
      参数:
      a - number for which we want the exponential
      one - constant with value 1 at desired precision
      two - constant with value 2 at desired precision
      返回:
      ln(a)
    • getExtendedField

      public DfpField getExtendedField(int digitsFactor, boolean computeConstants)
      Get extended field for accuracy conversion.
      参数:
      digitsFactor - multiplication factor for number of digits
      computeConstants - if true, the transcendental constants for the given precision must be computed (setting this flag to false is RESERVED for the internal recursive call)
      返回:
      field with extended precision
      从以下版本开始:
      1.7