OpenCL学习笔记(18)--三角函数和其他类型的浮点函数

1.和math.h相比,OpenCL提供了更为丰富的三角函数:
(1)floatn sin/cos/tan(floatn)–返回正弦值,余弦值和正切值
(2)floatn sinpi/cospi/tanpi(floatn x)–返回Pix的正弦值,余弦值和正切值
(3)floatn asin/acos/atan(floatn)–返回反正弦值、反余弦值和反正切值
(4)floatn asinpi/acospi/atanpi(floatn x)–返回piX的反正弦值,反余弦值和反正切值;
(5)floatn sinh/cosh/tanh(floatn)–返回双曲正弦值、余弦值和正切值
(6)floatn asinh/acosh/atanh(floatn x)–返回反双曲正弦值、余弦值和正切值
(7)floatn sincos(floatn x,__(g|l|p) floatn*mem)–计算x的正弦值和余弦值,正弦值返回,余弦值放在mem指向的内存中;
(8)floatn atan2/atan2pi(floatn y, floatn x)–返回y/x的反正切值或者atan2(y,x)/pi的结果。

函数sincos负责计算正弦值和余弦值,所返回的结果将保存在参数mem指针所指向的内存空间中。

主机应用程序在定义角坐标时,用到了math.h中所定义的M_PI常数。但这个头文件并不为内核所支持,所以需要替换为M_PI_F常数。

2.其他类型的浮点函数:假设x等于93.64则调用下面的函数,回分别得到:
sign(x)=-1.0;
modf(x,mem)将返回-0.639999,并将-93保存在mem指向的内存中
frexp(x,mem)将返回-0.731562,并将7保存在mem指向的内存中
ilogb(x)=6
最后两个函数,frexp和ilogb,返回的是输入的二进制表示结果。因为-93.64等于-0.731562*27,所以,frexp函数的返回值为-0.731562,并将7保存在内存中。因为对|-93.64|以2为底求对数得到的结果为6.549,所以函数ilgob返回的是trunc(6.549) = 6.

发布了19 篇原创文章 · 获赞 20 · 访问量 560

猜你喜欢

转载自blog.csdn.net/INFINALGEORGE/article/details/105204184