CUDA sincospi函数精度

CUDA sincospi函数精度,cuda,Cuda,我到处找,找不到函数如何计算或使用它的PI部分。 对于我的项目,我使用的是一个定义的常量,其精度为PI的34位小数。然而,这比正常的math.h定义的PI常量要多得多,它是16位小数 我的问题是,sincospi用来计算其答案的π的精度有多高?是否仅使用math.h中的PI常数?sincospi()的最大ulp误差与sincos()的最大ulp误差相同:结果与正确四舍五入的参考值相差最多1 ulp,或者以不同方式表示,结果与无限精确的数学结果相差小于1.5 ulp。平均而言,90%以上的结果是正

我到处找,找不到函数如何计算或使用它的PI部分。 对于我的项目,我使用的是一个定义的常量,其精度为PI的34位小数。然而,这比正常的math.h定义的PI常量要多得多,它是16位小数


我的问题是,sincospi用来计算其答案的π的精度有多高?是否仅使用math.h中的PI常数?

sincospi()的最大ulp误差与sincos()的最大ulp误差相同:结果与正确四舍五入的参考值相差最多1 ulp,或者以不同方式表示,结果与无限精确的数学结果相差小于1.5 ulp。平均而言,90%以上的结果是正确的四舍五入。所有CUDA数学函数的最大观测误差记录在CUDA C编程指南的附录中。sincospi(x)的精度优于sincos(M_PI*x)的精度,因为后者会由于函数参数的乘法而产生额外的舍入误差。

十六位小数并非偶然,这是IEEE 64位浮点表示法的限制。任何超过小数点的地方都只是噪声。sincospi()的最大ulp误差与sincos()的最大ulp误差相同:结果与正确舍入的参考值相差最多1 ulp,或者以不同的方式表示,结果与无限精确的数学结果相差不到1.5 ulp。平均而言,90%以上的结果是正确的四舍五入。所有数学函数的最大观测误差记录在CUDA C编程指南的附录中。sincospi(x)的准确度优于sincos(M_PI*x)。@njuffa您的评论听起来像是一个高质量的答案;)@谢谢。最后一句肯定回答了我的问题。@pQB:谢谢,按照你的建议并传播评论来回答。