OpenCL 比较函数、指数函数和对数函数

1.比较函数:OpenCL有些函数所返回的是两个浮点数中的较大值,有些函数返回的则是较小值。其余的函数则根据阈值参数来限制或平滑数据输入。比较函数:

1float clamp(floatn x, float/n min,float/n max)--返回如果x<min,就返回min;如果x>max,就返回max,否则返回x;2float fdim(floatn x,floatn y)--如果x>y,就返回x-y,如果x<=y,就返回0;(3)floatn fmax(floatn x,float/n y)--如果x>=y,就返回x,如果y>x,就返回y;4)floatn max(floatn x, float/n y)--如果x>=y,就返回x,如果y>x,就返回y;5)floatn mix(floatn x,floatn y,float/n a)--使用公式x+(y-x)*a对x和y之间的数插值,其中0.0<a<1.0;6)floatn maxmag(floatn x, floatn y)--如果|x|>=|y|就返回x;如果|y|>|x|,就返回y;7)floatn step(float/n edge,floatn x)--如果x<edge,就返回0.0,如果x>=edge,就返回1.0;
(8)floatn smoothstep(float/n edge1,float/n edge2,floatn x)--如果x<=edge0,就返回0.0;如果x>=edge,就返回1.0;如果edge0<x<edge1,使用平滑插值。

函数clamp和smoothstep函数却值得一提,两个函数都是拿向量输入和阈值上下限(以标量或向量的形式来设定)作比较。如果输入的向量分量比阈值上限大,函数clamp将输出分量限为最大值,而函数smoothstep将输出分量设为1.0.如果输入的向量分量比阈值下限小,则函数clamp将输出分两限为最小值,而函数smoothstep将输出分量设为0.0。如果输入的向量分量居于两者之间,函数smoothstep将用HERmitian插值法来进行插值处理。

2.指数函数和对数函数:

(1)floatn pow(floatn x,floatn y)--xy
(2)floatn pown(floatn x, intn y)--xy,其中y是整数
(3)floatn powr(floatn x, floatn y)--xy,其中x大于等于0
(4)floatn exp/expm1(floatn x)--ex和ex-1
(5)floatn exp2/exp10(floatn x)--2x和10x
(6)floatn ldexp(floatn x,intn n)--x*2n
(7)floatn rootn(floatn x, floatn y)--x1/y
(8)floatn sqrt/cbrt(floatn x)--x的平方根和立方根
(9)floatn rsqrt(floatn x)-- x的平方根之一
(10)floatn log/log1p(floatn x)--ln(x)ln(1.0+x)
(11)floatn log2/log10(floatn x)--log2x和log10x
(12)floatn logb(floatn x)--log2x的整数部分
(13)floatn erf/erfc(floatn x)--误差函数和误差函数的补
(14)floatn tgamma/lgamma(floatn x)--gamma函数和对数gamma函数
(15)floatn lgamma_r(floatn x,_(g|l|p)intn*mem)--对数gamma函数,并将符号放在mem指向的内存中。

函数expm1(exp-1)返回的是ex-1的计算结果,而函数exp10返回的是10*的计算结果。同样,log1p返回的是ln(1.0+x)的计算结果,而函数log10返回的是log10X的计算结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值