internal API

internal 包存放其他包用来选择步长和界定舍入误差的机器常量,不包含任何函数。这些常量与 GNU Scientific Library 中 gsl_machine.h 的常量一致。

机器常量

每个常量都是名为 machine_<prefix><quantity> 的 Double。其中 quantity 表示某种浮点格式的一个极限值:

量含义
dbl_epsilon双精度的机器精度,2−52≈2.22⋅10−162^{-52} \approx 2.22 \cdot 10^{-16}。
dbl_min最小的正规格化双精度数,≈2.23⋅10−308\approx 2.23 \cdot 10^{-308}。
dbl_max最大的有限双精度数,≈1.80⋅10308\approx 1.80 \cdot 10^{308}。
flt_epsilon单精度的机器精度,2−232^{-23}。
flt_min最小的正规格化单精度数。
flt_max最大的有限单精度数。
sflt_epsilonGSL 短浮点格式的机器精度,2−112^{-11}。
epsGSL_MACH_EPS 系列中取整后的机器容差,仅以带前缀的形式存在。

前缀表示对该量所取的函数:

前缀值适用于
无该量本身dbl_*, flt_*, sflt_epsilon
sqrt_其平方根所有量
root_3_ 至 root_6_其三次至六次方根所有量
log_其自然对数所有量

例如,machine_sqrt_dbl_epsilon 为 ε≈1.49⋅10−8\sqrt{\varepsilon} \approx 1.49 \cdot 10^{-8},machine_log_dbl_max 为 ln⁡(dbl_max)≈709.78\ln(\text{dbl\_max}) \approx 709.78。取整后的 eps 值为 machine_sqrt_eps(3.2⋅10−83.2 \cdot 10^{-8})、machine_root_3_eps(10−510^{-5})、machine_root_4_eps(1.78⋅10−41.78 \cdot 10^{-4})、machine_root_5_eps(10−310^{-3})、machine_root_6_eps(3.16⋅10−33.16 \cdot 10^{-3})和 machine_log_eps(−34.54-34.54)。