类 DfpField
java.lang.Object
org.hipparchus.dfp.DfpField
十进制浮点数实例的字段。
-
嵌套类概要
-
字段概要
修饰符和类型字段说明static final int
除零的IEEE 854-1987标志。static final int
不精确结果的IEEE 854-1987标志。static final int
无效操作的IEEE 854-1987标志。static final int
溢出的IEEE 854-1987标志。static final int
下溢的IEEE 854-1987标志。 -
构造器概要
-
方法概要
修饰符和类型方法说明void
清除IEEE 854状态标志。static Dfp
computeExp
(Dfp a, Dfp one) 计算exp(a)。static Dfp
计算ln(a)。boolean
获取度到弧度的转换因子。getE()
获取常数e。Dfp[]
将常数e拆分为两部分。getExtendedField
(int digitsFactor, boolean computeConstants) 获取用于精度转换的扩展字段。int
获取IEEE 854状态标志。getLn10()
获取常数ln(10)。getLn2()
获取常数ln(2)。Dfp[]
将常数ln(2)拆分为两部分。getLn5()
获取常数ln(5)。Dfp[]
将常数ln(5)拆分为两部分。getOne()
获取常数1。getPi()
获取常数π。Dfp[]
将常数π拆分为两部分。int
获取由此工厂构建的Dfp
实例的基数位数。获取弧度到度的转换因子。获取当前的舍入模式。返回FieldElement的运行时类。getSqr2()
获取常数√2。获取常数√2 / 2。Dfp[]
将常数√2拆分为两部分。getSqr3()
获取常数√3。获取常数√3 / 3。getTwo()
获取常数2。getZero()
获取常数0。int
hashCode()
newDfp()
使用值为0创建一个Dfp
。newDfp
(byte x) 从字节值创建一个实例。newDfp
(byte sign, byte nans) 使用非有限值创建一个Dfp
。newDfp
(double x) 从双精度值创建一个实例。newDfp
(int x) 从整数值创建一个实例。newDfp
(long x) 从长整数值创建一个实例。根据字符串表示创建一个Dfp
。复制构造函数。void
setIEEEFlags
(int flags) 设置IEEE 854状态标志。void
setIEEEFlagsBits
(int bits) 设置IEEE 854状态标志中的一些位,而不更改已设置的位。void
设置舍入模式。
-
字段详细资料
-
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
设置舍入模式。如果未设置,则默认值为DfpField.RoundingMode.ROUND_HALF_EVEN
。 -
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
创建一个值为0的Dfp
。- 返回:
-
一个新的值为0的
Dfp
-
newDfp
从字节值创建一个实例。- 参数:
-
x
- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从int值创建一个实例。- 参数:
-
x
- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从long值创建一个实例。- 参数:
-
x
- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
从double值创建一个实例。- 参数:
-
x
- 要转换为实例的值 - 返回:
-
一个与x具有相同值的新的
Dfp
-
newDfp
复制构造函数。- 参数:
-
d
- 要复制的实例 - 返回:
-
一个与d具有相同值的新的
Dfp
-
newDfp
给定一个字符串表示形式创建一个Dfp
。- 参数:
-
s
- 实例的字符串表示形式 - 返回:
-
从指定字符串解析出的新的
Dfp
-
newDfp
创建一个具有非有限值的Dfp
。- 参数:
-
sign
- 要创建的Dfp的符号 -
nans
- 值的代码,必须是Dfp.INFINITE
、Dfp.SNAN
、Dfp.QNAN
之一 - 返回:
-
具有非有限值的新的
Dfp
-
getZero
获取常量0。 -
getOne
获取常量1。 -
getRuntimeClass
返回FieldElement的运行时类。- 指定者:
-
getRuntimeClass
在接口中Field<Dfp>
- 返回:
-
代表此对象的运行时类的
Class
对象。
-
getTwo
获取常量2。- 返回:
-
值为2的
Dfp
-
getSqr2
获取常量√2。- 返回:
-
值为√2的
Dfp
-
getSqr2Split
获取常量√2的两个部分。- 返回:
-
值为√2的
Dfp
的两个部分
-
getSqr2Reciprocal
获取常量√2 / 2。- 返回:
-
值为√2 / 2的
Dfp
-
getSqr3
获取常量√3。- 返回:
-
值为√3的
Dfp
-
getSqr3Reciprocal
获取常量√3 / 3。- 返回:
-
值为√3 / 3的
Dfp
-
getPi
获取常量π。- 返回:
-
值为π的
Dfp
-
getDegToRad
获取度到弧度的转换因子。- 返回:
-
度到弧度转换因子的
Dfp
-
getRadToDeg
获取弧度到度的转换因子。- 返回:
-
弧度到度转换因子的
Dfp
-
getPiSplit
获取常量π的两个部分。- 返回:
-
值为π的
Dfp
的两个部分
-
getE
获取常量e。- 返回:
-
值为e的
Dfp
-
getESplit
获取常量e的两个部分。- 返回:
-
值为e的
Dfp
的两个部分
-
getLn2
获取常量ln(2)。- 返回:
-
值为ln(2)的
Dfp
-
getLn2Split
获取常量ln(2)的两个部分。- 返回:
-
值为ln(2)的
Dfp
的两个部分
-
getLn5
获取常量ln(5)。- 返回:
-
值为ln(5)的
Dfp
-
getLn5Split
获取常量ln(5)的两个部分。- 返回:
-
值为ln(5)的
Dfp
的两个部分
-
getLn10
获取常量ln(10)。- 返回:
-
值为ln(10)的
Dfp
-
equals
如果两个字段具有相同数量的基数位和相同的舍入模式,则认为它们相等。
-
hashCode
public int hashCode() -
computeExp
计算exp(a)。- 参数:
-
a
- 我们想要指数的数字 -
one
- 值为1的常量,精度为所需精度 - 返回:
- exp(a)
-
computeLn
计算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
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
-