OpenCL学习笔记(16)--浮点型函数

1.OpenCL的浮点函数将会被划分为五类来分别讨论:算数运算和取舍,比较,指数运算,三角运算,以及其他类型的函数。

2。算术运算函数和取舍函数:大多数的数学函数都能计算乘积、商数以及余数,大多数取舍函数都能接受float型数,然后返回小数部分为0的float型数:

1)floatn fabs(floatn x)--返回参数的绝对值,|x|;2)floatn fma(flaotn a,floatn b, floatn c)--返回a*b+c,中间的乘法结果没有近似取舍;
(3)floatn fmod(floatn x,floatn y)--返回x模y的结果:x-(y*trunc(y/x));4)floatn mad(floatn a,floatn b,floatn c)--返回a*b+c;5float remainder(floatn x, floatn y)--返回x除以y的余数:x-n*y,其中x是最接近x/y的整数;
(6float remquo(floatn x, floatn y, __(g|l|p)*quo)--返回x除以y的余数:x-n*y,其中n是最接近x/y的整数;同时也会计算x/y的低七位,结果的符号和x/y相同,被保存在quo指向的对象中;
(7)floatn rint(floatn x)--float型返回最临近的整数--如果两个整数同样接近,以float型返回偶数;
(8)floatn round(floatn x)--返回最临近x 的整数,如果两个整数同样近,返回远离远点的整数;
(9)floatn ceil(floatn x)--返回x向上取整的结果;
(10)floatn floor(floatn x)-- 返回x向下取整的结果;
(11)floatn trunc(floatn x)--去掉x的小数部分,返回整数。

这张表中包含了两个功能相同的函数。函数mad和函数fma(Fused Multiply和Add, 先乘后加)的功能都是计算a*b+c.“mad在速度重于精度的场合下使用”。而与之相反,fma能提供更高的精度,它只对最后结果进行取舍,不对中间运算结果做任何处理。

运算符“/”既可以用于整数运算,也可以用于浮点数运算,但是操作符%(求余)只能用于整数运算。如果要对浮点数求余,则需要调用函数fmod,它将返回x-(ytrunc(y/x))的运算结果。函数remainder的功能相同,但返回的是x-ny的运算结果,其中n是最接近x/y的整数。

提到取舍函数,唯一需要记住的是:函数rint是向最近的偶数做取舍,而函数round则不然,它返回的是距离最近的整数,但如果两个最近的整数距离相同,它将返回离0最远的那个。
round(-6.5)返回的是-7.0而不是-6.0,这是因为-7比-6离0更远。可以将函数round与函数trunc对立起来理解记忆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值