Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
fdlibm/e_pow.c中的常数公式_C_Math_Floating Point - Fatal编程技术网

fdlibm/e_pow.c中的常数公式

fdlibm/e_pow.c中的常数公式,c,math,floating-point,C,Math,Floating Point,我正在努力理解中幂函数的实现。有人知道常数是如何计算的吗?特别是,我需要dp\u h[],dp\u l[],L1,L2,L3,L4,L5,L6,P1,P2,P3,P4,,P5,,,L2,,(尾巴是什么?) 此外,给出的方程式缺少括号。它应该是吗?所有这些都基于对链接源的粗略检查: dp_h和dp_l是高调整项和低调整项,它们要么添加要么不添加(取决于用于加载它们的数组索引),这取决于缩减参数所在的二进制代码部分 Ln和Pn分别是指数函数和对数函数的多项式近似系数。如果不进行更仔细的检查,很难确定

我正在努力理解中幂函数的实现。有人知道常数是如何计算的吗?特别是,我需要
dp\u h[]
dp\u l[]
L1
L2
L3
L4
L5
L6
P1
P2
P3
P4
P5
L2
(尾巴是什么?)


此外,给出的方程式缺少括号。它应该是吗?

所有这些都基于对链接源的粗略检查:

dp_h
dp_l
是高调整项和低调整项,它们要么添加要么不添加(取决于用于加载它们的数组索引),这取决于缩减参数所在的二进制代码部分

Ln
Pn
分别是指数函数和对数函数的多项式近似系数。如果不进行更仔细的检查,很难确定,但从系数看,它们似乎是极小极大近似值,通常使用Remes交换计算e算法

lg2
lg2_h
lg2_l
是对数(2)的近似值——它们分别是对数(2)四舍五入到双精度、四舍五入到21位,以及四舍五入到21位的剩余值四舍五入到双精度

我认为,
ovt
是溢出阈值的缩写,用于在计算算法的指数部分之前确定结果是否溢出。我们需要更仔细地检查算法的细节,以准确地解释其推导过程

cp_h
cp_l
共同构成了2/(3*log2)的头尾近似值

“tail”是数学库设计中的一个常用术语;库通常需要以比使用单个浮点值更高的精度表示常量。因此,常量表示为“head+tail”,其中“head”是四舍五入到某个位数的值,“tail”是常量-head四舍五入到数据类型


如果您不熟悉这类基本术语,那么您可能希望首先了解一些比pow()更简单的数学库函数;它是库中数学上最复杂的函数之一。我还建议大家看看Muller等人的介绍。

虽然这是一个非常有趣的问题,但它可能属于数学。SE。@IgnacioVazquez Abrams:这是一个明确的编程问题。它究竟为什么属于数学?当然是关于选择这些常数不仅是因为它们的数学性质,而且因为它们满足某些要求,这些要求仅适用于在物理计算机上实现所讨论的算法(即编程);碰巧,这些考虑因素比数学上的考虑因素更有趣,数学上的考虑因素更容易理解。我们是否打算删除任何与电子商务有关的问题,因为“这是关于销售的”?这个问题涉及到中所述的所有四个主题:实现
pow
是一个特定的编程问题,它是一个软件算法,
pow
,它的来源是程序员广泛使用的工具,所问的问题是编程问题特有的实用、可回答的问题。使用的大多数常量是没有特定的通用数学值;只有它们在实现
pow
时的功能才使它们有趣。@IgnacioVazquez Abrams:不,选择
pow
中的常量不是因为它们在数学上相关。选择头尾表示是因为浮点实现的特殊性,而不是一般的数学原理。极小极大多项式是为特定的实现而设计的,而不是为一般的数学函数。
pow
实现是为特定的平台和功能而设计的,而不是纯粹从数学原理中派生出来的。设计它们很难,而且是一个深层次的软件问题。