RenderScript 數學常數和函式

總覽

下列數學函式可套用於純量和向量。套用至向量時,傳回的值是套用至每個輸入項目的函式向量。

例如:
float3 a, b;
// The following call sets
// a.x to sin(b.x),
// a.y to sin(b.y), and
// a.z to sin(b.z).
a = sin(b);

請參閱向量數學函式中的 distance() 和 length() 等函式,瞭解如何將輸入內容解讀為 N 維空間中的單一向量。

32 位元浮點數的數學運算的精確度會受到 pragmas rs_fp_relaxed 和 rs_fp_full 影響。在 rs_fp_relaxed 下,子常態值可清除至零,並可能會四捨五入至零。相較之下,rs_fp_full 需要正確處理子常值,也就是小於 1.17549435e-38f。rs_fp_rull 也需要四捨五入至最接近的值,單位為偶數。

使用常見數學函式的變體,即可達成不同的精確度/速度的取捨。名稱開頭為

  • native_:可能採用精確度較低的自訂硬體實作。此外,子常值可能會完全清除至零,使用四捨五入為零,且無法正確處理 NaN 和無限輸入的資料。
  • 半數:可能會使用 16 位元浮點值執行內部運算。此外,子常態值可清除至零,也可以使用捨入為零。

摘要

常數
M_1_PI 1 / pi,以 32 位元的浮點值表示
M_2_PI 2 / pi,以 32 位元的浮點值表示
M_2_SQRTPI 2 / sqrt(pi),以 32 位元的浮點值表示
M_E e (採用 32 位元的浮點值)
M_LN10 log_e(10),顯示為 32 位元的浮點值
M_LN2 log_e(2),顯示為 32 位元的浮點值
M_LOG10E log_10(e),顯示為 32 位元浮點
M_LOG2E log_2(e),顯示為 32 位元的浮點值
M_PI pi (以 32 位元的浮點值表示)
M_PI_2 pi / 2,以 32 位元浮點值
M_PI_4 pi / 4,以 32 位元浮點值
M_SQRT1_2 1 / sqrt(2),以 32 位元的浮點值表示
M_SQRT2 sqrt(2),以 32 位元的浮點值表示
函式
abs 整數的絕對值
acos 反餘弦
acosh 反雙曲線餘弦
acospi 將反餘弦除以 pi
asin 反正弦
asinh 反雙曲線正弦
asinpi 反正弦除以 pi
atan 反正切
atan2 比率的反正切
atan2pi 比率的反正切除以 pi
atanh 反雙曲線正切
atanpi 將反正切除以 pi
cbrt 立方根
ceil 不得小於值的小型整數
取值範圍 將值限制在特定範圍
clz 開頭的 0 位元數量
copysign 將數字的正負號複製到另一個
cos 餘弦
cosh 雙曲線餘弦
cospi 指定數字乘以 pi 的餘弦值
度數 將弧度轉換為角度
erf 數學錯誤函式
erfc 數學互補錯誤函式
exp e 提高為數字
exp10 10 為數字
exp2 2 已提高為數字
expm1 e+1 減去一
fabs 浮點值的絕對值
fdim 兩個值之間的正差異
floor 不大於值的小型整數
fma 乘上並新增
fmax 最多兩個浮點值
fmin 最少兩個浮點值
fmod 模數
細菌 正分部分
frexp 二進位制式和指數
half_recip 運算元的精確度為 16 位元
half_rsqrt 計算為 16 位元精確度的平方根相互參照
half_sqrt 計算為 16 位元精確度的平方根
hypot 斜邊
ilogb 以兩個指數為基準
ldexp 從 Maantisa 和指數建立浮點數
lgamma Gamma 函式的自然對數
log 自然對數
log10 以 10 為底數
log1p 指定值加上 1 的自然對數
log2 底數 2 對數
logb 以兩個指數為基準
mad 乘上並新增
max 最大值
min 最低
合輯 混合兩個值
modf 積分和分數元件
nan 不是數字
nan_half 不是數字
native_acos 近似反餘弦
native_acosh 近似反雙曲線餘弦值
native_acospi 近似餘弦除以 pi
native_asin 近似反正弦
native_asinh 近似反雙曲線正弦值
native_asinpi 近似反正弦除以 pi
native_atan 近似反正切
native_atan2 比率的近反正切值
native_atan2pi 比率的近反正切除以 pi 的值
native_atanh 近似反雙曲正切
native_atanpi 近似正切除以 pi
native_cbrt 近似立方根
native_cos 近餘餘弦
native_cosh 近似雙曲線餘弦
native_cospi 指定數字乘以 pi 的近餘弦
native_divide 近似除法
native_exp 概略 e 提高為多個數字
native_exp10 取數字約為 10
native_exp2 取值約 2
native_expm1 概略 e 提高為指定數字減 1
native_hypot 近似假設
native_log 近似自然對數
native_log10 約以 10 為底數
native_log1p 指定值的近似自然對數加上 1
native_log2 底數約 2 的對數
native_powr 將近正數調高為指數
native_recip 近似互補
native_rootn 近 n 次方根
native_rsqrt 平方根的近似倒數
native_sin 近正弦
native_sincos 近正弦和餘弦
native_sinh 近似雙曲正弦
native_sinpi 指定數字乘以 pi 的近正弦值
native_sqrt 近平方根
native_tan 近正切
native_tanh 近似雙曲正切
native_tanpi 指定數字乘以 pi 的正正切值
nextafter 下一個浮點數
pow 以指數為準
Pown 以整數指數為基礎
powr 提高為指數的正底數
弧度 將角度轉換為弧度
remainder 除法餘數
remquo 除法的餘數與商
rint 四捨五入
rootn N 次方根
圓形 四捨五入
rsRand 虛擬隨機號碼
rsqrt 平方根的倒數
sign 值的符號
sin 正弦
sincos 正弦和餘弦
Sinh 雙曲線正弦
sinpi 指定數字乘以 pi 的正弦
sqrt 平方根
步驟 如果小於值則為 0,否則傳回 1
tan 正切
tanh 雙曲線正切
tanpi 指定數字乘以 pi 的正切值
tgamma Gamma 函式
trunc 截斷浮點
已淘汰的函式
rsClamp 已淘汰。將值限制在特定範圍
rsFrac 已淘汰。傳回浮點的分數部分

常數

M_1_PI :1 / pi,以 32 位元浮點值


值:0.318309886183790671537767526745028724f

pi 的反函式,為 32 位元浮點值。

M_2_PI :2 / pi,以 32 位元浮點值


值:0.636619772367581343075535053490057448f

2 除以 pi,以 32 位元的浮點值表示。

M_2_SQRTPI :2 / sqrt(pi),以 32 位元浮點值表示


值:1.128379167095512573896158903121545172f

2 除以 pi 的平方根,為 32 位元浮點值。

M_E :e 為 32 位元的浮點值


值:2.718281828459045235360287471352662498f

數字 e,即自然對數的底數,以 32 位元的浮點值表示。

M_LN10 :log_e(10),採 32 位元浮點值


值:2.302585092994045684017991454684364208f

10 的自然對數,如 32 位元浮點值。

M_LN2 :log_e(2),採 32 位元的浮點值


值:0.693147180559945309417232121458176568f

2 的自然對數,以 32 位元浮點值表示。

M_LOG10E :log_10(e),採 32 位元浮點值


值:0.434294481903251827651128918916605082f

e 的對數底數 10,以 32 位元浮點值。

M_LOG2E :log_2(e),採 32 位元浮點值


值:1.442695040888963407359924681001892137f

e 的對數底 2,以 32 位元浮點值表示。

M_PI :圓周率,以 32 位元浮點值表示


值:3.141592653589793238462643383279502884f

常數 pi,以 32 位元的浮點值表示。

M_PI_2 :圓周率為 32 位元的浮點值 (pi / 2),


值:1.570796326794896619231321691639751442f

Pi 除以 2,以 32 位元的浮點值表示。

M_PI_4 :圓周率為 32 位元的浮點值 (pi / 4),


值:0.785398163397448309615660845819875721f

Pi 除以 4,以 32 位元的浮點值表示。

M_SQRT1_2 :1 / sqrt(2),以 32 位元的浮點值表示


值:0.707106781186547524400844362104849039f

2 的平方根的反函式,為 32 位元浮點值。

M_SQRT2 :sqrt(2),以 32 位元浮點值表示


值:1.414213562373095048801688724209698079f

2 的平方根,以 32 位元浮點值表示。

函式

abs :整數的絕對值

uchar abs(char v);
uchar2 abs(char2 v);
uchar3 abs(char3 v);
uchar4 abs(char4 v);
uint abs(int v);
uint2 abs(int2 v);
uint3 abs(int3 v);
uint4 abs(int4 v);
ushort abs(short v);
ushort2 abs(short2 v);
ushort3 abs(short3 v);
ushort4 abs(short4 v);

傳回整數的絕對值。

如果是浮點值,請使用 fabs()。

acos :反餘弦

float acos(float v);
float2 acos(float2 v);
float3 acos(float3 v);
float4 acos(float4 v);
half acos(half v); 已在 API 級別 24 中新增。
half2 acos(half2 v); 已在 API 級別 24 中新增。
half3 acos(half3 v); 已在 API 級別 24 中新增。
half4 acos(half4 v); 已在 API 級別 24 中新增。

傳回反餘弦函數,並以弧度表示。

另請參閱 native_acos()。

acosh :反雙曲線餘弦

float acosh(float v);
float2 acosh(float2 v);
float3 acosh(float3 v);
float4 acosh(float4 v);
half acosh(half v); 已在 API 級別 24 中新增。
half2 acosh(half2 v); 已在 API 級別 24 中新增。
half3 acosh(half3 v); 已在 API 級別 24 中新增。
half4 acosh(half4 v); 已在 API 級別 24 中新增。

傳回反雙曲線餘弦,並以弧度表示。

另請參閱 native_acosh()。

acospi :將反餘弦除以 pi

float acospi(float v);
float2 acospi(float2 v);
float3 acospi(float3 v);
float4 acospi(float4 v);
half Acospi(half v); 已在 API 級別 24 中新增。
half2 acospi(half2 v); 已在 API 級別 24 中新增。
half3 acospi(half3 v); 已在 API 級別 24 中新增。
half4 acospi(half4 v); 已在 API 級別 24 中新增。

傳回以弧度為單位的反餘弦,除以 pi。

如要取得以度為單位的反餘弦值,請使用 acospi(a) * 180.f

另請參閱 native_acospi()。

asin :反正弦

float asin(float v);
float2 asin(float2 v);
float3 asin(float3 v);
float4 asin(float4 v);
half asin(half v); 已在 API 級別 24 中新增。
half2 asin(half2 v); 已在 API 級別 24 中新增。
half3 asin(half3 v); 已在 API 級別 24 中新增。
half4 asin(half4 v); 已在 API 級別 24 中新增。

傳回反正弦函數,並以弧度為單位。

另請參閱 native_asin()。

asinh :反雙曲線正弦

float asinh(float v);
float2 asinh(float2 v);
float3 asinh(float3 v);
float4 asinh(float4 v);
half Asinh(half v); 已在 API 級別 24 中新增。
half2 Asinh(half2 v); 已在 API 級別 24 中新增。
half3 Asinh(half3 v); 已在 API 級別 24 中新增。
half4 Asinh(half4 v); 已在 API 級別 24 中新增。

傳回反雙曲線正弦值,以弧度為單位。

另請參閱 native_asinh()。

asinpi :反正弦除以 pi

float asinpi(float v);
float2 asinpi(float2 v);
float3 asinpi(float3 v);
float4 asinpi(float4 v);
half asinpi(half v); 已在 API 級別 24 中新增。
half2 asinpi(half2 v); 已在 API 級別 24 中新增。
half3 asinpi(half3 v); 已在 API 級別 24 中新增。
half4 asinpi(half4 v); 已在 API 級別 24 中新增。

傳回反正弦值 (以弧度為單位) 除以 pi。

如要取得以度為單位的反正弦,請使用 asinpi(a) * 180.f

另請參閱 native_asinpi()。

atan :反正切

float atan(float v);
float2 atan(float2 v);
float3 atan(float3 v);
float4 atan(float4 v);
half atan(half v); 已在 API 級別 24 中新增。
half2 atan(half2 v); 已在 API 級別 24 中新增。
half3 atan(half3 v); 已在 API 級別 24 中新增。
half4 atan(half4 v); 已在 API 級別 24 中新增。

傳回反正切 (以弧度為單位)。

另請參閱 native_atan()。

atan2 :比率的反正切

float atan2(浮點分子, 浮點分母);
float2 atan2(float2 分子, float2 分母);
float3 atan2(float3 分子, float3 分母);
float4 atan2(float4 分子, float4 分母);
half atan2(分子, 分母); 已在 API 級別 24 中新增。
half2 atan2(half2 分子, half2 分母); 已在 API 級別 24 中新增。
half3 atan2(half3 分子, half3 分母); 已在 API 級別 24 中新增。
half4 atan2(half4 分子, half4 分母); 已在 API 級別 24 中新增。
參數
分子分子。
分母分母。可為 0。

傳回 (numerator / denominator) 的反正切值,並以弧度表示。

另請參閱 native_atan2()。

atan2pi :比率的反正切除以 pi

float atan2pi(浮點分子, 浮點分母);
float2 atan2pi(float2 分子, float2 分母);
float3 atan2pi(float3 分子, float3 分母);
float4 atan2pi(float4 分子, float4 分母);
half atan2pi(5 分子, half 分母); 已在 API 級別 24 中新增。
half2 atan2pi(half2 分子, half2 分母); 已在 API 級別 24 中新增。
half3 atan2pi(half3 分子, half3 分母); 已在 API 級別 24 中新增。
half4 atan2pi(half4 分子, half4 分母); 已在 API 級別 24 中新增。
參數
分子分子。
分母分母。可為 0。

傳回 (numerator / denominator) 的反正切值,以弧度為單位除以 pi。

如要取得以度為單位的反正切值,請使用 atan2pi(n, d) * 180.f

另請參閱 native_atan2pi()。

atanh :反雙曲線正切

float atanh(float v);
float2 atanh(float2 v);
float3 atanh(float3 v);
float4 atanh(float4 v);
half atanh(half v); 已在 API 級別 24 中新增。
half2 atanh(half2 v); 已在 API 級別 24 中新增。
half3 atanh(half3 v); 已在 API 級別 24 中新增。
half4 atanh(half4 v); 已在 API 級別 24 中新增。

傳回反雙曲正切,以弧度為單位。

另請參閱 native_atanh()。

atanpi :反正切除以 pi

float atanpi(float v);
float2 atanpi(float2 v);
float3 atanpi(float3 v);
float4 atanpi(float4 v);
half atanpi(half v); 已在 API 級別 24 中新增。
half2 atanpi(half2 v); 已在 API 級別 24 中新增。
half3 atanpi(half3 v); 已在 API 級別 24 中新增。
half4 atanpi(half4 v); 已在 API 級別 24 中新增。

傳回以弧度為單位的反正切除以 pi。

如要取得以度為單位的反正切值,請使用 atanpi(a) * 180.f

另請參閱 native_atanpi()。

cbrt :立方根

float cbrt(float v);
float2 cbrt(float2 v);
float3 cbrt(float3 v);
float4 cbrt(float4 v);
half cbrt(half v); 已在 API 級別 24 中新增。
half2 cbrt(half2 v); 已在 API 級別 24 中新增。
half3 cbrt(half3 v); 已在 API 級別 24 中新增。
half4 cbrt(half4 v); 已在 API 級別 24 中新增。

傳回立方根。

另請參閱 native_cbrt()。

ceil :最小整數,不得小於值

float ceil(float v);
float2 ceil(float2 v);
float3 ceil(float3 v);
float4 ceil(float4 v);
half ceil(half v); 已在 API 級別 24 中新增。
half2 ceil(half2 v); 已在 API 級別 24 中新增。
half3 ceil(half3 v); 已在 API 級別 24 中新增。
half4 ceil(half4 v); 已在 API 級別 24 中新增。

傳回不小於值的最小整數。

舉例來說,ceil(1.2f) 會傳回 2.f,而 ceil(-1.2f) 會傳回 -1.f。

另請參閱 floor()。

取值範圍 :將值限制在特定範圍

char clamp(字元值, 字元 min_value, 字元 max_value); 已在 API 級別 19 中新增。
char2 取值範圍(char2 值, 字元 min_value, 字元 max_value); 已在 API 級別 19 中新增。
char2 取值範圍(char2 值, char2 min_value, char2 max_value); 已在 API 級別 19 中新增。
char3 取值範圍(char3 值, 字元 min_value, 字元 max_value); 已在 API 級別 19 中新增。
char3 取值範圍(char3 值, char3 min_value, char3 max_value); 已在 API 級別 19 中新增。
char4 取值範圍(char4 值, 字元 min_value, 字元 max_value); 已在 API 級別 19 中新增。
char4 取值範圍(char4 值, char4 min_value, char4 max_value); 已在 API 級別 19 中新增。
float clamp(float value, float min_value, float max_value);
float2 取值範圍(float2 value, float min_value, float max_value);
float2 取值範圍(float2 value, float2 min_value, float2 max_value);
float3 取值範圍(float3 value, float min_value, float max_value);
float3 取值範圍(float3 value, float3 min_value, float3 max_value);
float4 取值範圍(float4 value, float min_value, float max_value);
float4 取值範圍(float4 value, float4 min_value, float4 max_value);
half 取值範圍(half 值, half min_value, half max_value); 已在 API 級別 24 中新增。
half2 取值範圍(half2 值, half min_value, half max_value); 已在 API 級別 24 中新增。
half2 取值範圍(half2 值, half2 min_value, half2 max_value); 已在 API 級別 24 中新增。
half3 取值範圍(half3 值, half min_value, half max_value); 已在 API 級別 24 中新增。
half3 取值範圍(half3 值, half3 min_value, half3 max_value); 已在 API 級別 24 中新增。
half4 取值範圍(half4 值, half min_value, half max_value); 已在 API 級別 24 中新增。
half4 取值範圍(half4 值, half4 min_value, half4 max_value); 已在 API 級別 24 中新增。
int clamp(int value, int min_value, int max_value); 已在 API 級別 19 中新增。
int2 取值範圍(int2 value, int min_value, int max_value); 已在 API 級別 19 中新增。
int2 clamp(int2 值, int2 min_value, int2 max_value); 已在 API 級別 19 中新增。
int3 取值範圍(int3 value, int min_value, int max_value); 已在 API 級別 19 中新增。
int3 clamp(int3 值, int3 min_value, int3 max_value); 已在 API 級別 19 中新增。
int4 取值範圍(int4 值, int min_value, int max_value); 已在 API 級別 19 中新增。
int4 clamp(int4 值, int4 min_value, int4 max_value); 已在 API 級別 19 中新增。
Long clamp(long value, long min_value, long max_value); 已在 API 級別 19 中新增。
long2 取值範圍限制(long2 值、長 min_value、長最大值); 已在 API 級別 19 中新增。
long2 取值範圍(long2 值, long2 min_value, long2 max_value); 已在 API 級別 19 中新增。
long3 取值範圍限制(long3 值、長 min_value、長最大值); 已在 API 級別 19 中新增。
long3 取值範圍(long3 值, long3 min_value, long3 max_value); 已在 API 級別 19 中新增。
long4 取值範圍限制(long4 值、長 min_value、長最大值); 已在 API 級別 19 中新增。
long4 取值範圍(long4 值, long4 min_value, long4 max_value); 已在 API 級別 19 中新增。
short clamp(short value, short_value, short max_value); 已在 API 級別 19 中新增。
short2 取值範圍限制(short2 值、 short_value、short max_value); 已在 API 級別 19 中新增。
short2 取值範圍(short2值, short2 min_value, short2 max_value); 已在 API 級別 19 中新增。
short3 取值範圍(short3 值、最小值 min_value、short max_value); 已在 API 級別 19 中新增。
short3 取值範圍(short3 值, short3 min_value, short3 max_value); 已在 API 級別 19 中新增。
short4 取值範圍限制(short4 值、 short_value、short max_value); 已在 API 級別 19 中新增。
short4 取值範圍(short4 值, short4 min_value, short4 max_value); 已在 API 級別 19 中新增。
uchar clamp(uchar 值, uchar min_value, uchar max_value); 已在 API 級別 19 中新增。
uchar2 取值範圍(uchar2 值, uchar min_value, uchar max_value); 已在 API 級別 19 中新增。
uchar2 取值範圍(uchar2 值, uchar2 min_value, uchar2 max_value); 已在 API 級別 19 中新增。
uchar3 取值範圍(uchar3 值, uchar min_value, uchar max_value); 已在 API 級別 19 中新增。
uchar3 取值範圍(uchar3 值, uchar3 min_value, uchar3 max_value); 已在 API 級別 19 中新增。
uchar4 取值範圍(uchar4 值, uchar min_value, uchar max_value); 已在 API 級別 19 中新增。
uchar4 取值範圍(uchar4 值, uchar4 min_value, uchar4 max_value); 已在 API 級別 19 中新增。
uint 取值範圍(uint value, uint min_value, uint max_value); 已在 API 級別 19 中新增。
uint2 取值範圍(uint2 值, uint min_value, uint max_value); 已在 API 級別 19 中新增。
uint2 取值範圍(uint2 值, uint2 min_value, uint2 max_value); 已在 API 級別 19 中新增。
uint3 取值範圍(uint3 值, uint min_value, uint max_value); 已在 API 級別 19 中新增。
uint3 取值範圍(uint3 值, uint3 min_value, uint3 max_value); 已在 API 級別 19 中新增。
uint4 取值範圍(uint4 值, uint min_value, uint max_value); 已在 API 級別 19 中新增。
uint4 取值範圍(uint4 值, uint4 min_value, uint4 max_value); 已在 API 級別 19 中新增。
ulong 取值範圍(ulong值, ulong min_value, ulong max_value); 已在 API 級別 19 中新增。
ulong2 取值範圍(ulong2值, ulong min_value, ulong max_value); 已在 API 級別 19 中新增。
ulong2 取值範圍(ulong2值, ulong2 min_value, ulong2 max_value); 已在 API 級別 19 中新增。
ulong3 取值範圍(ulong3值, ulong min_value, ulong max_value); 已在 API 級別 19 中新增。
ulong3 取值範圍(ulong3值, ulong3 min_value, ulong3 max_value); 已在 API 級別 19 中新增。
ulong4 取值範圍限制(ulong4值, ulong min_value, ulong max_value); 已在 API 級別 19 中新增。
ulong4 取值範圍(ulong4 值, ulong4 min_value, ulong4 max_value); 已在 API 級別 19 中新增。
ushort 取值範圍(ushort 值, ushort min_value, ushort max_value); 已在 API 級別 19 中新增。
ushort2 取值範圍(ushort2 值, ushort min_value, ushort max_value); 已在 API 級別 19 中新增。
ushort2 取值範圍(ushort2 值, ushort2 min_value, ushort2 max_value); 已在 API 級別 19 中新增。
ushort3 取值範圍(ushort3 值, ushort min_value, ushort max_value); 已在 API 級別 19 中新增。
ushort3 取值範圍(ushort3 值, ushort3 min_value, ushort3 max_value); 已在 API 級別 19 中新增。
ushort4 取值範圍(ushort4 值, ushort min_value, ushort max_value); 已在 API 級別 19 中新增。
ushort4 取值範圍(ushort4 值, ushort4 min_value, ushort4 max_value); 已在 API 級別 19 中新增。
參數
value要限制值範圍的值。
最小值下限、純量或相符的向量。
最大值高上限,必須與低類型相符。

將值限制設為指定的高度與下限。如果值 < min_value 則會傳回 min_value,如果值 > max_value 則傳回 min_value,反之則傳回 min_value。

取值範圍有兩個變體:一個最小值和最大值是純量套用至值的所有項目,另一個是最小值和最大值的向量。

如果 min_value 大於 max_value,表示結果未定義。

clz :開頭的 0 位元數量

char clz(字元值);
char2 clz(char2 值);
char3 clz(char3 值);
char4 clz(char4 值);
int clz(int value);
int2 clz(int2 value);
int3 clz(int3 value);
int4 clz(int4 value);
short clz(short 值);
short2 clz(short2 值);
short3 clz(short3 value);
short4 clz(short4 值);
uchar clz(uchar value);
uchar2 clz(uchar2 值);
uchar3 clz(uchar3 值);
uchar4 clz(uchar4 值);
uint clz(uint value);
uint2 clz(uint2 value);
uint3 clz(uint3 value);
uint4 clz(uint4 value);
ushort clz(ushort value);
ushort2 clz(ushort2 value);
ushort3 clz(ushort3 value);
ushort4 clz(ushort4 value);

傳回值中前置 0 位元的數目。

舉例來說,clz((char)0x03) 會傳回 6。

copysign :將數字的正負號複製到另一個號碼

float copysign(float magnitude_value, float sign_value);
float2 copysign(float2 magnitude_value, float2 sign_value);
float3 copysign(float3 magnitude_value, float3 sign_value);
float4 copysign(float4 magnitude_value, float4 sign_value);
half copysign(half magnitude_value, half sign_value); 已在 API 級別 24 中新增。
half2 copysign(half2 magnitude_value, half2 sign_value); 已在 API 級別 24 中新增。
half3 copysign(half3 magnitude_value, half3 sign_value); 已在 API 級別 24 中新增。
half4 copysign(half4 magnitude_value, half4 sign_value); 已在 API 級別 24 中新增。

將正負號從 sign_value 複製到 magnitude_value。

傳回的值可以是 magnitude_value 或 -magnitude_value。

舉例來說,copysign(4.0f, -2.7f) 會傳回 -4.0f,而 copysign(-4.0f, 2.7f) 會傳回 4.0f。

cos :餘弦

float cos(float v);
float2 cos(float2 v);
float3 cos(float3 v);
float4 cos(float4 v);
half cos(half v); 已在 API 級別 24 中新增。
half2 cos(half2 v); 已在 API 級別 24 中新增。
half3 cos(half3 v); 已在 API 級別 24 中新增。
half4 cos(half4 v); 已在 API 級別 24 中新增。

傳回以弧度表示的角度餘弦值。

另請參閱 native_cos()。

cosh :混合餘弦

float cosh(float v);
float2 cosh(float2 v);
float3 cosh(float3 v);
float4 cosh(float4 v);
half cosh(half v); 已在 API 級別 24 中新增。
half2 cosh(half2 v); 已在 API 級別 24 中新增。
half3 cosh(half3 v); 已在 API 級別 24 中新增。
half4 cosh(half4 v); 已在 API 級別 24 中新增。

傳回 v 的雙曲餘弦,其中 v 的計算單位為弧度。

另請參閱 native_cosh()。

cospi :數數字乘以 pi 的餘弦

float cospi(float v);
float2 cospi(float2 v);
float3 cospi(float3 v);
float4 cospi(float4 v);
half 合作社( v); 已在 API 級別 24 中新增。
half2 cospi(half2 v); 已在 API 級別 24 中新增。
half3 cospi(half3 v); 已在 API 級別 24 中新增。
half4 合作社(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的餘弦,其中 (v * pi) 的單位為弧度。

如要取得測量值的餘弦值 (以度為單位),請呼叫 cospi(v / 180.f)

另請參閱 native_cospi()。

degrees :將弧度轉換為角度

floatdegree(float v);
float2degree(float2 v);
float3degree(float3 v);
float4degree(float4 v);
half 度( v); 已在 API 級別 24 中新增。
half2 度(half2 v); 已在 API 級別 24 中新增。
half3 度(half3 v); 已在 API 級別 24 中新增。
half4 度(half4 v); 已在 API 級別 24 中新增。

將弧度轉換成角度。

erf :數學錯誤函式

float erf(float v);
float2 erf(float2 v);
float3 erf(float3 v);
float4 erf(float4 v);
half erf(half v); 已在 API 級別 24 中新增。
half2 erf(half2 v); 已在 API 級別 24 中新增。
half3 erf(half3 v); 已在 API 級別 24 中新增。
half4 erf(half4 v); 已在 API 級別 24 中新增。

傳回錯誤函式。

erfc :數學互補錯誤函式

float erfc(float v);
float2 erfc(float2 v);
float3 erfc(float3 v);
float4 erfc(float4 v);
half erfc(half v); 已在 API 級別 24 中新增。
half2 erfc(half2 v); 已在 API 級別 24 中新增。
half3 erfc(half3 v); 已在 API 級別 24 中新增。
half4 erfc(half4 v); 已在 API 級別 24 中新增。

傳回互補錯誤函式。

exp :已調高為數字

float exp(float v);
float2 exp(float2 v);
float3 exp(float3 v);
float4 exp(float4 v);
half exp(half v); 已在 API 級別 24 中新增。
half2 exp(half2 v); 已在 API 級別 24 中新增。
half3 exp(half3 v); 已在 API 級別 24 中新增。
half4 exp(half4 v); 已在 API 級別 24 中新增。

傳回 e,也就是 v,即 e ^ v。

另請參閱 native_exp()。

exp10 :10 等於數字

float exp10(float v);
float2 exp10(float2 v);
float3 exp10(float3 v);
float4 exp10(float4 v);
half exp10(half v); 已在 API 級別 24 中新增。
half2 exp10(half2 v); 已在 API 級別 24 中新增。
half3 exp10(half3 v); 已在 API 級別 24 中新增。
half4 exp10(half4 v); 已在 API 級別 24 中新增。

傳回 10 至 v,即 10.f ^ v。

另請參閱 native_exp10()。

exp2 :2 加了數字

float exp2(float v);
float2 exp2(float2 v);
float3 exp2(float3 v);
float4 exp2(float4 v);
half exp2(half v); 已在 API 級別 24 中新增。
half2 exp2(half2 v); 已在 API 級別 24 中新增。
half3 exp2(half3 v); 已在 API 級別 24 中新增。
half4 exp2(half4 v); 已在 API 級別 24 中新增。

傳回 2 到 v,即 2.f ^ v。

另請參閱 native_exp2()。

expm1 :加法數字減 1

float expm1(float v);
float2 expm1(float2 v);
float3 expm1(float3 v);
float4 expm1(float4 v);
half expm1(half v); 已在 API 級別 24 中新增。
half2 expm1(half2 v); 已在 API 級別 24 中新增。
half3 expm1(half3 v); 已在 API 級別 24 中新增。
half4 expm1(half4 v); 已在 API 級別 24 中新增。

回傳 e 前提為 v 減 1,即 (e ^ v) - 1。

另請參閱 native_expm1()。

fabs :浮點的絕對值

float fabs(float v);
float2 fabs(float2 v);
float3 fabs(float3 v);
float4 fabs(float4 v);
half fabs(half v); 已在 API 級別 24 中新增。
half2 fabs(half2 v); 已在 API 級別 24 中新增。
half3 fabs(half3 v); 已在 API 級別 24 中新增。
half4 fabs(half4 v); 已在 API 級別 24 中新增。

傳回浮點值 v 的絕對值。

如果是整數,請使用 abs()。

fdim :兩個值之間的正面差異

float fdim(float a, float b);
float2 fdim(float2 a, float2 b);
float3 fdim(float3 a, float3 b);
float4 fdim(float4 a, float4 b);
half fdim(half a, half b); 已在 API 級別 24 中新增。
half2 fdim(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 fdim(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 fdim(half4 a, half4 b); 已在 API 級別 24 中新增。

傳回兩個值之間的正差。

如果 a > b,會傳回 (a - b),否則傳回 0f。

floor :小於值的最低整數

floatFlo(float v);
float2 floor(float2 v);
float3 floor(float3 v);
float4 floor(float4 v);
half floor(half v); 已在 API 級別 24 中新增。
half2 floor(half2 v); 已在 API 級別 24 中新增。
half3 floor(half3 v); 已在 API 級別 24 中新增。
half4 floor(half4 v); 已在 API 級別 24 中新增。

傳回不大於值的最小整數。

舉例來說,floor(1.2f) 會傳回 1.f,而 floor(-1.2f) 會傳回 -2.f。

另請參閱 ceil()。

fma :乘法加法

float fma(float multiplicand1, float multiplicand2, float offset);
float2 fma(float2 multiplicand1, float2 multiplicand2, float2 offset);
float3 fma(float3 multiplicand1, float3 multiplicand2, float3 offset);
float4 fma(float4 multiplicand1, float4 multiplicand2, float4 offset);
half fma(half multiplicand1, half multiplicand2, half 偏移); 已在 API 級別 24 中新增。
half2 fma(half2 multiplicand1, half2 multiplicand2, half2 偏移); 已在 API 級別 24 中新增。
half3 fma(half3 multiplicand1, half3 multiplicand2, half3 偏移); 已在 API 級別 24 中新增。
half4 fma(half4 multiplicand1, half4 multiplicand2, half4 偏移); 已在 API 級別 24 中新增。

乘法加乘。傳回 (multiplicand1 * multiplicand2) + offset

這個函式與 mad() 類似。fma() 會保留乘法結果的完整精確度,且只會在加總後四捨五入。mad() 會在乘法和加法後無條件進位。在 rs_fp_relaxed 模式下,系統不保證能達到這項額外的精確度。

fmax :不得超過兩個浮點值

float fmax(float a, float b);
float2 fmax(float2 a, float b);
float2 fmax(float2 a, float2 b);
float3 fmax(float3 a, float b);
float3 fmax(float3 a, float3 b);
float4 fmax(float4 a, float b);
float4 fmax(float4 a, float4 b);
half fmax(half a, half b); 已在 API 級別 24 中新增。
half2 fmax(half2 a, half b); 已在 API 級別 24 中新增。
half2 fmax(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 fmax(half3 a, half b); 已在 API 級別 24 中新增。
half3 fmax(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 fmax(half4 a, half b); 已在 API 級別 24 中新增。
half4 fmax(half4 a, half4 b); 已在 API 級別 24 中新增。

傳回 a 和 b 的最大值,例如:(a < b ? b : a)

max() 函式傳回相同的結果,但可以套用至更多資料類型。

fmin :最小值為兩個浮點值

float fmin(float a, float b);
float2 fmin(float2 a, float b);
float2 fmin(float2 a, float2 b);
float3 fmin(float3 a, float b);
float3 fmin(float3 a, float3 b);
float4 fmin(float4 a, float b);
float4 fmin(float4 a, float4 b);
half fmin(half a, half b); 已在 API 級別 24 中新增。
half2 fmin(half2 a, half b); 已在 API 級別 24 中新增。
half2 fmin(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 fmin(half3 a, half b); 已在 API 級別 24 中新增。
half3 fmin(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 fmin(half4 a, half b); 已在 API 級別 24 中新增。
half4 fmin(half4 a, half4 b); 已在 API 級別 24 中新增。

傳回 a 和 b 的最小值,例如 (a > b ? b : a)

min() 函式會傳回相同的結果,但可以套用至更多資料類型。

fmod : Modulo

float fmod(float numerator, float denominator);
float2 fmod(float2 分子, float2 分母);
float3 fmod(float3 分子, float3 分母);
float4 fmod(float4 分子, float4 分母);
half fmod(half 分子, half 分母); 已在 API 級別 24 中新增。
half2 fmod(half2分子, half2 分母); 已在 API 級別 24 中新增。
half3 fmod(half3分子, half3 分母); 已在 API 級別 24 中新增。
half4 fmod(half4 分子, half4 分母); 已在 API 級別 24 中新增。

傳回 (分子 / 分母) 的餘數,商數會四捨五入至零。

函式 remainder() 也是如此,但會四捨五入至最接近的整數。舉例來說,fmod(-3.8f, 2.f) 會傳回 -1.8f (-3.8f - -1.f * 2.f),而 remainder(-3.8f, 2.f) 會傳回 0.2f (-3.8f - -2.f * 2.f)。

小數 :正分部分

float fract(float v);
float fract(float v, float* floor);
float2 fract(float2 v);
float2 fract(float2 v, float2* floor);
float3 fract(float3 v);
float3 fract(float3 v, float3* floor);
float4 fract(float4 v);
float4 fract(float4 v, float4* floor);
半價碎片(half v); 已在 API 級別 24 中新增。
半價( v, * 樓); 已在 API 級別 24 中新增。
half2 碎片(half2 v); 已在 API 級別 24 中新增。
half2 碎片(half2 v, half2* 樓層); 已在 API 級別 24 中新增。
half3 Fact(half3 v); 已在 API 級別 24 中新增。
half3 碎片(half3 v, half3* 樓層); 已在 API 級別 24 中新增。
half4 碎形(half4 v); 已在 API 級別 24 中新增。
half4 碎片(half4 v, half4* 樓層); 已在 API 級別 24 中新增。
參數
v 鍵輸入值。
層樓如果樓層不是空值,*樓層會設為 v 的樓層。

傳回 v 的正分數部分,例如 v - floor(v)

舉例來說,fract(1.3f, &val) 會傳回 0.3f,並將 val 設為 1.f。fract(-1.3f, &val) 會傳回 0.7f,並將 val 設為 -2.f。

frexp :二進位 mantisa 和 exponent

float frexp(float v, int* exponent);
float2 frexp(float2 v, int2* exponent);
float3 frexp(float3 v, int3* exponent);
float4 frexp(float4 v, int4* exponent);
half frexp(half v, int* 指數); 已在 API 級別 24 中新增。
half2 frexp(half2 v, int2* 指數); 已在 API 級別 24 中新增。
half3 frexp(half3 v, int3* 指數); 已在 API 級別 24 中新增。
half4 frexp(half4 v, int4* 指數); 已在 API 級別 24 中新增。
參數
v 鍵輸入值。
指數如果指數不是空值,*指數會設為 v 的指數。

傳回二進位 mantisa 和 v 的指數,例如 v == mantissa * 2 ^ exponent

空值永遠介於 0.5 (含) 和 1.0 (不含) 之間。

如要瞭解反向作業,請參閱 ldexp()。另請參閱 logb() 和 ilogb()。

half_recip :計算為 16 位元精確度的參照

float half_recip(float v); 已在 API 級別 17 中新增。
float2 half_recip(float2 v); 已在 API 級別 17 中新增。
float3 half_recip(float3 v); 已在 API 級別 17 中新增。
float4 half_recip(float4 v); 已在 API 級別 17 中新增。

傳回指定值的近似回流。

精確度為 16 位元的浮點值。

另請參閱 native_recip()。

half_rsqrt :計算 16 位元精確度的平方根參照

float half_rsqrt(float v); 已在 API 級別 17 中新增。
float2 half_rsqrt(float2 v); 已在 API 級別 17 中新增。
float3 half_rsqrt(float3 v); 已在 API 級別 17 中新增。
float4 half_rsqrt(float4 v); 已在 API 級別 17 中新增。

傳回 (1.f / sqrt(value)) 的近似值。

精確度為 16 位元的浮點值。

另請參閱 rsqrt(), native_rsqrt()。

half_sqrt :計算為 16 位元精確度的平方根

float half_sqrt(float v); 已在 API 級別 17 中新增。
float2 half_sqrt(float2 v); 已在 API 級別 17 中新增。
float3 half_sqrt(float3 v); 已在 API 級別 17 中新增。
float4 half_sqrt(float4 v); 已在 API 級別 17 中新增。

傳回指定值的近平方根。

精確度為 16 位元的浮點值。

另請參閱 sqrt()、native_sqrt()。

Hypot :斜邊

float hypot(float a, float b);
float2 hypot(float2 a, float2 b);
float3 hypot(float3 a, float3 b);
float4 hypot(float4 a, float4 b);
假設(half a, half b); 已在 API 級別 24 中新增。
half2 hypot(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 hypot(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 hypot(half4 a, half4 b); 已在 API 級別 24 中新增。

傳回假設,例如 sqrt(a * a + b * b)

另請參閱 native_hypot()。

ilogb :以兩項指數為基準

int ilogb(float v);
int ilogb(half v); 已在 API 級別 24 中新增。
int2 ilogb(float2 v);
int2 ilogb(half2 v); 已在 API 級別 24 中新增。
int3 ilogb(float3 v);
int3 ilogb(half3 v); 已在 API 級別 24 中新增。
int4 ilogb(float4 v);
int4 ilogb(half4 v); 已在 API 級別 24 中新增。

傳回指定值的兩個指數,其中 mantisa 介於 1.f (含) 和 2.f (不含) 之間。

舉例來說,ilogb(8.5f) 會回傳 3。

因為 Maantisa 之間的差異,這個數字小於 frexp() 傳回的數字。

logb() 類似,但會傳回浮點值。

ldexp :從 Maantisa 和指數建立浮點

float ldexp(float mantissa, int exponent);
float2 ldexp(float2 mantissa, int exponent);
float2 ldexp(float2 mantissa, int2 指數);
float3 ldexp(float3 mantissa, int exponent);
float3 ldexp(float3 mantissa, int3 指數);
float4 ldexp(float4 mantissa, int exponent);
float4 ldexp(float4 mantissa, int4 指數);
half ldexp(half mantissa, int 指數); 已在 API 級別 24 中新增。
half2 ldexp(half2 mantissa, int 指數); 已在 API 級別 24 中新增。
half2 ldexp(half2 mantisa, int2 指數); 已在 API 級別 24 中新增。
half3 ldexp(half3 mantissa, int 指數); 已在 API 級別 24 中新增。
half3 ldexp(half3 mantisa, int3 指數); 已在 API 級別 24 中新增。
half4 ldexp(half4 mantisa, int 指數); 已在 API 級別 24 中新增。
half4 ldexp(half4 mantisa, int4 指數); 已在 API 級別 24 中新增。
參數
MantissaMantissa 敬上
指數指數、單一元件或相符的向量。

傳回從定點和指數建立的浮點數,即 (mantissa * 2 ^ 指數)。

如要瞭解反向作業,請參閱 frexp()。

lgamma :Gamma 函式的自然對數

float lgamma(float v);
float lgamma(float v, int* sign_of_gamma);
float2 lgamma(float2 v);
float2 lgamma(float2 v, int2* sign_of_gamma);
float3 lgamma(float3 v);
float3 lgamma(float3 v, int3* sign_of_gamma);
float4 lgamma(float4 v);
float4 lgamma(float4 v, int4* sign_of_gamma);
half lgamma(half v); 已在 API 級別 24 中新增。
half lgamma(half v, int* sign_of_gamma); 已在 API 級別 24 中新增。
half2 lgamma(half2 v); 已在 API 級別 24 中新增。
half2 lgamma(half2 v, int2* sign_of_gamma); 已在 API 級別 24 中新增。
half3 lgamma(half3 v); 已在 API 級別 24 中新增。
half3 lgamma(half3 v, int3* sign_of_gamma); 已在 API 級別 24 中新增。
half4 lgamma(half4 v); 已在 API 級別 24 中新增。
half4 lgamma(half4 v, int4* sign_of_gamma); 已在 API 級別 24 中新增。
參數
v 鍵
Gamma 符號如果 sign_of_gamma 並非空值,則 *sign_of_gamma 會設為 -1.f 如果 v 的 gamma 為負數,否則會設為 1.f。

傳回 Gamma 函式絕對值的自然對數,例如 log(fabs(tgamma(v)))

另請參閱 tgamma()。

log :自然對數

float log(float v);
float2 log(float2 v);
float3 log(float3 v);
float4 log(float4 v);
half log(half v); 已在 API 級別 24 中新增。
half2 log(half2 v); 已在 API 級別 24 中新增。
half3 log(half3 v); 已在 API 級別 24 中新增。
half4 log(half4 v); 已在 API 級別 24 中新增。

傳回自然對數。

另請參閱 native_log()。

log10 :以 10 為底數

float log10(float v);
float2 log10(float2 v);
float3 log10(float3 v);
float4 log10(float4 v);
half log10(half v); 已在 API 級別 24 中新增。
half2 log10(half2 v); 已在 API 級別 24 中新增。
half3 log10(half3 v); 已在 API 級別 24 中新增。
half4 log10(half4 v); 已在 API 級別 24 中新增。

傳回以 10 為底數的對數。

另請參閱 native_log10()。

log1p :特定值加上 1 的自然對數

float log1p(float v);
float2 log1p(float2 v);
float3 log1p(float3 v);
float4 log1p(float4 v);
half log1p(half v); 已在 API 級別 24 中新增。
half2 log1p(half2 v); 已在 API 級別 24 中新增。
half3 log1p(half3 v); 已在 API 級別 24 中新增。
half4 log1p(half4 v); 已在 API 級別 24 中新增。

傳回 (v + 1.f) 的自然對數。

另請參閱 native_log1p()。

log2 :底數 2 對數

float log2(float v);
float2 log2(float2 v);
float3 log2(float3 v);
float4 log2(float4 v);
half log2(half v); 已在 API 級別 24 中新增。
half2 log2(half2 v); 已在 API 級別 24 中新增。
half3 log2(half3 v); 已在 API 級別 24 中新增。
half4 log2(half4 v); 已在 API 級別 24 中新增。

傳回以 2 為底數的對數。

另請參閱 native_log2()。

logb :以兩項指數為基準

float logb(float v);
float2 logb(float2 v);
float3 logb(float3 v);
float4 logb(float4 v);
half logb(half v); 已在 API 級別 24 中新增。
half2 logb(half2 v); 已在 API 級別 24 中新增。
half3 logb(half3 v); 已在 API 級別 24 中新增。
half4 logb(half4 v); 已在 API 級別 24 中新增。

傳回指定值的兩個指數,其中 mantisa 介於 1.f (含) 和 2.f (不含) 之間。

舉例來說,logb(8.5f) 會傳回 3.f。

根據 mantisa 之間的差異,這個數字小於 frexp() 傳回的數字。

ilogb() 相似,但會傳回整數。

mad :乘法加法

float mad(float multiplicand1, float multiplicand2, float offset);
float2 mad(float2 multiplicand1, float2 multiplicand2, float2 offset);
float3 mad(float3 multiplicand1, float3 multiplicand2, float3 offset);
float4 mad(float4 multiplicand1, float4 multiplicand2, float4 offset);
half mad(half multiplicand1, half multiplicand2, half 偏移); 已在 API 級別 24 中新增。
half2 mad(half2 multiplicand1, half2 multiplicand2、half2 偏移); 已在 API 級別 24 中新增。
half3 mad(half3 multiplicand1, half3 multiplicand2, half3 偏移); 已在 API 級別 24 中新增。
half4 mad(half4 multiplicand1, half4 multiplicand2、half4 偏移); 已在 API 級別 24 中新增。

乘法加乘。傳回 (multiplicand1 * multiplicand2) + offset

這個函式與 fma() 類似。fma() 會保留乘法結果的完整精確度,且只會在加總後四捨五入。mad() 會在乘法和加法後無條件進位。在 rs_fp_relaxed 模式下,mad() 可能無法在乘法後執行四捨五入。

max :最大值

char max(char a, char b);
char2 max(char2 a, char2 b);
char3 max(char3 a, char3 b);
char4 max(char4 a, char4 b);
float max(float a, float b);
float2 max(float2 a, float b);
float2 max(float2 a, float2 b);
float3 max(float3 a, float b);
float3 max(float3 a, float3 b);
float4 max(float4 a, float b);
float4 max(float4 a, float4 b);
half max(half a, half b); 已在 API 級別 24 中新增。
half2 max(half2 a, half b); 已在 API 級別 24 中新增。
half2 max(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 max(half3 a, half b); 已在 API 級別 24 中新增。
half3 max(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 max(half4 a, half b); 已在 API 級別 24 中新增。
half4 max(half4 a, half4 b); 已在 API 級別 24 中新增。
int max(int a, int b);
int2 max(int2 a, int2 b);
int3 max(int3 a, int3 b);
int4 max(int4 a, int4 b);
long max(long a, long b); 已在 API 級別 21 中新增。
long2 max(long2 a, long2 b); 已在 API 級別 21 中新增。
long3 max(long3 a, long3 b); 已在 API 級別 21 中新增。
long4 max(long4 a, long4 b); 已在 API 級別 21 中新增。
short max(short a, short b);
short2 max(short2 a, short2 b);
short3 max(short3 a, short3 b);
short4 max(short4 a, short4 b);
uchar max(uchar a, uchar b);
uchar2 max(uchar2 a, uchar2 b);
uchar3 max(uchar3 a, uchar3 b);
uchar4 max(uchar4 a, uchar4 b);
uint max(uint a, uint b);
uint2 max(uint2 a, uint2 b);
uint3 max(uint3 a, uint3 b);
uint4 max(uint4 a, uint4 b);
ulong max(ulong a, ulong b); 已在 API 級別 21 中新增。
ulong2 max(ulong2 a, ulong2 b); 已在 API 級別 21 中新增。
ulong3 max(ulong3 a, ulong3 b); 已在 API 級別 21 中新增。
ulong4 max(ulong4 a, ulong4 b); 已在 API 級別 21 中新增。
ushort max(ushort a, ushort b);
ushort2 max(ushort2 a, ushort2 b);
ushort3 max(ushort3 a, ushort3 b);
ushort4 max(ushort4 a, ushort4 b);

傳回兩個引數的最大值。

min :最小值

char min(char a, char b);
char2 min(char2 a、char2 b);
char3 min(char3 a、char3 b);
char4 min(char4 a、char4 b);
float min(float a, float b);
float2 min(float2 a, float b);
float2 min(float2 a, float2 b);
float3 min(float3 a, float b);
float3 min(float3 a, float3 b);
float4 min(float4 a, float b);
float4 min(float4 a, float4 b);
half min(半數 a, half b); 已在 API 級別 24 中新增。
half2 min(half2 a, half b); 已在 API 級別 24 中新增。
half2 min(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 min(half3 a, half b); 已在 API 級別 24 中新增。
half3 min(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 min(half4 a, half b); 已在 API 級別 24 中新增。
half4 min(half4 a, half4 b); 已在 API 級別 24 中新增。
int min(int a, int b);
int2 min(int2 a, int2 b);
int3 min(int3 a, int3 b);
int4 min(int4 a, int4 b);
long min(long a, long b); 已在 API 級別 21 中新增。
long2 min(long2 a, long2 b); 已在 API 級別 21 中新增。
long3 min(long3 a, long3 b); 已在 API 級別 21 中新增。
long4 分鐘(long4 a, long4 b); 已在 API 級別 21 中新增。
short min(short a, short b);
short2 min(short2 a, short2 b);
short3 min(short3 a, short3 b);
short4 min(short4 a, short4 b);
uchar min(uchar a, uchar b);
uchar2 min(uchar2 a、uchar2 b);
uchar3 min(uchar3 a, uchar3 b);
uchar4 min(uchar4 a, uchar4 b);
uint min(uint a, uint b);
uint2 min(uint2 a, uint2 b);
uint3 min(uint3 a, uint3 b);
uint4 min(uint4 a, uint4 b);
ulong min(ulong a, ulong b); 已在 API 級別 21 中新增。
ulong2 min(ulong2 a, ulong2 b); 已在 API 級別 21 中新增。
ulong3 min(ulong3 a, ulong3 b); 已在 API 級別 21 中新增。
ulong4 min(ulong4 a, ulong4 b); 已在 API 級別 21 中新增。
ushort min(ushort a, ushort b);
ushort2 min(ushort2 a, ushort2 b);
ushort3 min(ushort3 a, ushort3 b);
ushort4 min(ushort4 a, ushort4 b);

傳回兩個引數的最小值。

mix :混合使用兩個值

浮點混合(浮點值, 浮點值, 浮點值);
float2 Mix(float2 start, float2 stop, float scale);
float2 混合(float2 start, float2 stop, float2章節);
float3 Mix(float3 start, float3 stop, float scale);
float3 Mix(float3 start, float3 stop, float3章節);
float4 Mix(float4 start, float4 stop, float scale);
float4 Mix(float4 start, float4 stop, float4銷售額);
半數混合(一半開始、一半停止、一半分數); 已在 API 級別 24 中新增。
half2 混合(half2 開始、5f2 停止、5f 分數); 已在 API 級別 24 中新增。
half2 混合(half2 開始、half2 停止、5f2 分數); 已在 API 級別 24 中新增。
half3 混合(half3 開始、half3 停止、55 分); 已在 API 級別 24 中新增。
half3 組合(half3 開始、half3 停止、5f3 分數); 已在 API 級別 24 中新增。
half4 混合(half4 開始、half4 停止、半數分數); 已在 API 級別 24 中新增。
half4 組合(half4 開始、half4 停止、5f4 分數); 已在 API 級別 24 中新增。

傳回起始值 + ((停靠站 - 開始) * 分數)。

這對於混合兩個值非常實用。舉例來說,如要建立 40% 顏色 1 和 60% 顏色 2 的新顏色,請使用 mix(color1, color2, 0.6f)

modf :積分和分數元件

float modf(float v, float* integral_part);
float2 modf(float2 v, float2* integral_part);
float3 modf(float3 v, float3* integral_part);
float4 modf(float4 v, float4* integral_part);
half modf(half v, half* integral_part); 已在 API 級別 24 中新增。
half2 modf(half2 v, half2* integral_part); 已在 API 級別 24 中新增。
half3 modf(half3 v, half3* integral_part); 已在 API 級別 24 中新增。
half4 modf(half4 v, half4* integral_part); 已在 API 級別 24 中新增。
參數
v 鍵來源值。
積分部分*integral_part 將設為數字的積分部分。
傳回
值的浮點部分。

傳回指定數字的積分和分數元件。

這兩個元件的符號與 x 相同。例如,如果輸入的值是 -3.72f,*integral_part 會設為 -3.f,並傳回 .72f。

nan :不是數字

float nan(uint v);
參數
v 鍵未使用。

傳回 NaN 值 (不是數字)。

nan_half :不是數字

half nan_half(); 已在 API 級別 24 中新增。

傳回半精度浮點 NaN 值 (不是數字)。

native_acos :近似餘弦函數

float native_acos(float v); 已在 API 級別 21 中新增。
float2 native_acos(float2 v); 已在 API 級別 21 中新增。
float3 native_acos(float3 v); 已在 API 級別 21 中新增。
float4 native_acos(float4 v); 已在 API 級別 21 中新增。
half native_acos(half v); 已在 API 級別 24 中新增。
half2 native_acos(half2 v); 已在 API 級別 24 中新增。
half3 native_acos(half3 v); 已在 API 級別 24 中新增。
half4 native_acos(half4 v); 已在 API 級別 24 中新增。

傳回近似反餘弦值,並以弧度表示。

這個函式會從小於 -1 或大於 1 的輸入值產生未定義的結果。

另請參閱 acos()。

native_acosh :近似反雙曲線餘弦值

float native_acosh(float v); 已在 API 級別 21 中新增。
float2 native_acosh(float2 v); 已在 API 級別 21 中新增。
float3 native_acosh(float3 v); 已在 API 級別 21 中新增。
float4 native_acosh(float4 v); 已在 API 級別 21 中新增。
half native_acosh(half v); 已在 API 級別 24 中新增。
half2 native_acosh(half2 v); 已在 API 級別 24 中新增。
half3 native_acosh(half3 v); 已在 API 級別 24 中新增。
half4 native_acosh(half4 v); 已在 API 級別 24 中新增。

傳回近似反雙曲線餘弦值,並以弧度表示。

另請參閱 acosh()。

native_acospi :近似餘弦除以 pi

float native_acospi(float v); 已在 API 級別 21 中新增。
float2 native_acospi(float2 v); 已在 API 級別 21 中新增。
float3 native_acospi(float3 v); 已在 API 級別 21 中新增。
float4 native_acospi(float4 v); 已在 API 級別 21 中新增。
half native_acospi(half v); 已在 API 級別 24 中新增。
half2 native_acospi(half2 v); 已在 API 級別 24 中新增。
half3 native_acospi(half3 v); 已在 API 級別 24 中新增。
half4 native_acospi(half4 v); 已在 API 級別 24 中新增。

傳回近似反餘弦值 (以弧度為單位) 除以 pi。

如要取得以度為單位的反餘弦值,請使用 acospi(a) * 180.f

這個函式會從小於 -1 或大於 1 的輸入值產生未定義的結果。

另請參閱 acospi()。

native_asin :近似正弦函數

float native_asin(float v); 已在 API 級別 21 中新增。
float2 native_asin(float2 v); 已在 API 級別 21 中新增。
float3 native_asin(float3 v); 已在 API 級別 21 中新增。
float4 native_asin(float4 v); 已在 API 級別 21 中新增。
half native_asin(half v); 已在 API 級別 24 中新增。
half2 native_asin(half2 v); 已在 API 級別 24 中新增。
half3 native_asin(half3 v); 已在 API 級別 24 中新增。
half4 native_asin(half4 v); 已在 API 級別 24 中新增。

傳回近似反正弦值,並以弧度表示。

這個函式會從小於 -1 或大於 1 的輸入值產生未定義的結果。

另請參閱 asin()。

native_asinh :近似反雙曲線正弦值

float native_asinh(float v); 已在 API 級別 21 中新增。
float2 native_asinh(float2 v); 已在 API 級別 21 中新增。
float3 native_asinh(float3 v); 已在 API 級別 21 中新增。
float4 native_asinh(float4 v); 已在 API 級別 21 中新增。
half native_asinh(half v); 已在 API 級別 24 中新增。
half2 native_asinh(half2 v); 已在 API 級別 24 中新增。
half3 native_asinh(half3 v); 已在 API 級別 24 中新增。
half4 native_asinh(half4 v); 已在 API 級別 24 中新增。

傳回近似反雙曲線正弦值,並以弧度表示。

另請參閱 asinh()。

native_asinpi :概略的反正弦除以 pi

float native_asinpi(float v); 已在 API 級別 21 中新增。
float2 native_asinpi(float2 v); 已在 API 級別 21 中新增。
float3 native_asinpi(float3 v); 已在 API 級別 21 中新增。
float4 native_asinpi(float4 v); 已在 API 級別 21 中新增。
half native_asinpi(half v); 已在 API 級別 24 中新增。
half2 native_asinpi(half2 v); 已在 API 級別 24 中新增。
half3 native_asinpi(half3 v); 已在 API 級別 24 中新增。
half4 native_asinpi(half4 v); 已在 API 級別 24 中新增。

傳回近似反正弦值 (以弧度為單位) 除以 pi。

如要取得以度為單位的反正弦,請使用 asinpi(a) * 180.f

這個函式會從小於 -1 或大於 1 的輸入值產生未定義的結果。

另請參閱 asinpi()。

native_atan :近似反正切

float native_atan(float v); 已在 API 級別 21 中新增。
float2 native_atan(float2 v); 已在 API 級別 21 中新增。
float3 native_atan(float3 v); 已在 API 級別 21 中新增。
float4 native_atan(float4 v); 已在 API 級別 21 中新增。
half native_atan(half v); 已在 API 級別 24 中新增。
half2 native_atan(half2 v); 已在 API 級別 24 中新增。
half3 native_atan(half3 v); 已在 API 級別 24 中新增。
half4 native_atan(half4 v); 已在 API 級別 24 中新增。

傳回近似反正切值,並以弧度表示。

另請參閱 atan()。

native_atan2 :比率的反正切值

float native_atan2(浮點分子, 浮點分母); 已在 API 級別 21 中新增。
float2 native_atan2(float2 分子, float2 分母); 已在 API 級別 21 中新增。
float3 native_atan2(float3 分子, float3 分母); 已在 API 級別 21 中新增。
float4 native_atan2(float4 分子, float4 分母); 已在 API 級別 21 中新增。
half native_atan2(分子, 分母); 已在 API 級別 24 中新增。
half2 native_atan2(half2 分子, half2 分母); 已在 API 級別 24 中新增。
half3 native_atan2(half3 分子, half3 分母); 已在 API 級別 24 中新增。
half4 native_atan2(half4 分子, half4 分母); 已在 API 級別 24 中新增。
參數
分子分子。
分母分母。可為 0。

傳回 (numerator / denominator) 的近似反正切值,並以弧度表示。

另請參閱 atan2()。

native_atan2pi :比率的近反正切除以 pi

float native_atan2pi(浮點分子, 浮點分母); 已在 API 級別 21 中新增。
float2 native_atan2pi(float2 分子, float2 分母); 已在 API 級別 21 中新增。
float3 native_atan2pi(float3 分子, float3 分母); 已在 API 級別 21 中新增。
float4 native_atan2pi(float4 分子, float4 分母); 已在 API 級別 21 中新增。
half native_atan2pi(分子, half 分母); 已在 API 級別 24 中新增。
half2 native_atan2pi(half2 分子, half2 分母); 已在 API 級別 24 中新增。
half3 native_atan2pi(half3 分子, half3 分母); 已在 API 級別 24 中新增。
half4 native_atan2pi(half4 分子, half4 分母); 已在 API 級別 24 中新增。
參數
分子分子。
分母分母。可為 0。

傳回 (numerator / denominator) 的近似反正切值,以弧度為單位除以 pi。

如要取得以度為單位的反正切值,請使用 atan2pi(n, d) * 180.f

另請參閱 atan2pi()。

native_atanh :近似反雙曲線正切

float native_atanh(float v); 已在 API 級別 21 中新增。
float2 native_atanh(float2 v); 已在 API 級別 21 中新增。
float3 native_atanh(float3 v); 已在 API 級別 21 中新增。
float4 native_atanh(float4 v); 已在 API 級別 21 中新增。
half native_atanh(half v); 已在 API 級別 24 中新增。
half2 native_atanh(half2 v); 已在 API 級別 24 中新增。
half3 native_atanh(half3 v); 已在 API 級別 24 中新增。
half4 native_atanh(half4 v); 已在 API 級別 24 中新增。

傳回近似反雙曲線正切值,並以弧度表示。

另請參閱 atanh()。

native_atanpi :近似正切除以 pi

float native_atanpi(float v); 已在 API 級別 21 中新增。
float2 native_atanpi(float2 v); 已在 API 級別 21 中新增。
float3 native_atanpi(float3 v); 已在 API 級別 21 中新增。
float4 native_atanpi(float4 v); 已在 API 級別 21 中新增。
half native_atanpi(half v); 已在 API 級別 24 中新增。
half2 native_atanpi(half2 v); 已在 API 級別 24 中新增。
half3 native_atanpi(half3 v); 已在 API 級別 24 中新增。
half4 native_atanpi(half4 v); 已在 API 級別 24 中新增。

傳回近似反正切 (以弧度為單位) 除以 pi。

如要取得以度為單位的反正切值,請使用 atanpi(a) * 180.f

另請參閱 atanpi()。

native_cbrt :近似立方根

float native_cbrt(float v); 已在 API 級別 21 中新增。
float2 native_cbrt(float2 v); 已在 API 級別 21 中新增。
float3 native_cbrt(float3 v); 已在 API 級別 21 中新增。
float4 native_cbrt(float4 v); 已在 API 級別 21 中新增。
half native_cbrt(half v); 已在 API 級別 24 中新增。
half2 native_cbrt(half2 v); 已在 API 級別 24 中新增。
half3 native_cbrt(half3 v); 已在 API 級別 24 中新增。
half4 native_cbrt(half4 v); 已在 API 級別 24 中新增。

傳回近似立方根。

另請參閱 cbrt()。

native_cos :近似餘弦

float native_cos(float v); 已在 API 級別 21 中新增。
float2 native_cos(float2 v); 已在 API 級別 21 中新增。
float3 native_cos(float3 v); 已在 API 級別 21 中新增。
float4 native_cos(float4 v); 已在 API 級別 21 中新增。
half native_cos(half v); 已在 API 級別 24 中新增。
half2 native_cos(half2 v); 已在 API 級別 24 中新增。
half3 native_cos(half3 v); 已在 API 級別 24 中新增。
half4 native_cos(half4 v); 已在 API 級別 24 中新增。

傳回以弧度表示的角度近餘餘弦值。

另請參閱 cos()。

native_cosh :近似雙曲線餘弦

float native_cosh(float v); 已在 API 級別 21 中新增。
float2 native_cosh(float2 v); 已在 API 級別 21 中新增。
float3 native_cosh(float3 v); 已在 API 級別 21 中新增。
float4 native_cosh(float4 v); 已在 API 級別 21 中新增。
half native_cosh(half v); 已在 API 級別 24 中新增。
half2 native_cosh(half2 v); 已在 API 級別 24 中新增。
half3 native_cosh(half3 v); 已在 API 級別 24 中新增。
half4 native_cosh(half4 v); 已在 API 級別 24 中新增。

傳回近似雙曲線餘弦值。

另請參閱 cosh()。

native_cospi :數字的餘弦值乘以 pi 的倍數

float native_cospi(float v); 已在 API 級別 21 中新增。
float2 native_cospi(float2 v); 已在 API 級別 21 中新增。
float3 native_cospi(float3 v); 已在 API 級別 21 中新增。
float4 native_cospi(float4 v); 已在 API 級別 21 中新增。
half native_cospi(half v); 已在 API 級別 24 中新增。
half2 native_cospi(half2 v); 已在 API 級別 24 中新增。
half3 native_cospi(half3 v); 已在 API 級別 24 中新增。
half4 native_cospi(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的近似餘弦,其中 (v * pi) 是以弧度為單位。

如要取得測量值的餘弦值 (以度為單位),請呼叫 cospi(v / 180.f)

另請參閱 cospi()。

native_divide :近似除法

float native_divide(float left_vector, float right_vector); 已在 API 級別 21 中新增。
float2 native_divide(float2 left_vector, float2 right_vector); 已在 API 級別 21 中新增。
float3 native_divide(float3 left_vector, float3 right_vector); 已在 API 級別 21 中新增。
float4 native_divide(float4 left_vector, float4 right_vector); 已在 API 級別 21 中新增。
half native_divide(half left_vector, half right_vector); 已在 API 級別 24 中新增。
half2 native_divide(half2 left_vector, half2 right_vector); 已在 API 級別 24 中新增。
half3 native_divide(half3 left_vector, half3 right_vector); 已在 API 級別 24 中新增。
half4 native_divide(half4 left_vector, half4right_vector); 已在 API 級別 24 中新增。

計算兩個值的近似除法。

native_exp :對數字的近似值 (約 e)

float native_exp(float v); 已在 API 級別 18 中新增。
float2 native_exp(float2 v); 已在 API 級別 18 中新增。
float3 native_exp(float3 v); 已在 API 級別 18 中新增。
float4 native_exp(float4 v); 已在 API 級別 18 中新增。
half native_exp(half v); 已在 API 級別 24 中新增。
half2 native_exp(half2 v); 已在 API 級別 24 中新增。
half3 native_exp(half3 v); 已在 API 級別 24 中新增。
half4 native_exp(half4 v); 已在 API 級別 24 中新增。

快速約略曝光。

對於 -86.f 到 86.f 之間的輸入值,這是有效視訊。精確度不低於使用 16 位元浮點值的情況。

另請參閱 exp()。

native_exp10 :將大約 10 提高為數字

float native_exp10(float v); 已在 API 級別 18 中新增。
float2 native_exp10(float2 v); 已在 API 級別 18 中新增。
float3 native_exp10(float3 v); 已在 API 級別 18 中新增。
float4 native_exp10(float4 v); 已在 API 級別 18 中新增。
half native_exp10(half v); 已在 API 級別 24 中新增。
half2 native_exp10(half2 v); 已在 API 級別 24 中新增。
half3 native_exp10(half3 v); 已在 API 級別 24 中新增。
half4 native_exp10(half4 v); 已在 API 級別 24 中新增。

快速約 10。

對於 -37.f 到 37.f 之間的輸入,這是有效密碼。精確度不低於使用 16 位元浮點值的情況。

另請參閱 exp10()。

native_exp2 :將近 2 個加進數字

float native_exp2(float v); 已在 API 級別 18 中新增。
float2 native_exp2(float2 v); 已在 API 級別 18 中新增。
float3 native_exp2(float3 v); 已在 API 級別 18 中新增。
float4 native_exp2(float4 v); 已在 API 級別 18 中新增。
half native_exp2(half v); 已在 API 級別 24 中新增。
half2 native_exp2(half2 v); 已在 API 級別 24 中新增。
half3 native_exp2(half3 v); 已在 API 級別 24 中新增。
half4 native_exp2(half4 v); 已在 API 級別 24 中新增。

快速約 exp2。

對於 -125.f 到 125.f 之間的輸入值,這是有效密碼。精確度不低於使用 16 位元浮點值的情況。

另請參閱 exp2()。

native_expm1 :概略值乘以 1

float native_expm1(float v); 已在 API 級別 21 中新增。
float2 native_expm1(float2 v); 已在 API 級別 21 中新增。
float3 native_expm1(float3 v); 已在 API 級別 21 中新增。
float4 native_expm1(float4 v); 已在 API 級別 21 中新增。
half native_expm1(half v); 已在 API 級別 24 中新增。
half2 native_expm1(half2 v); 已在 API 級別 24 中新增。
half3 native_expm1(half3 v); 已在 API 級別 24 中新增。
half4 native_expm1(half4 v); 已在 API 級別 24 中新增。

傳回近似 (e ^ v) - 1。

另請參閱 expm1()。

native_hypot :近似假設

float native_hypot(float a, float b); 已在 API 級別 21 中新增。
float2 native_hypot(float2 a, float2 b); 已在 API 級別 21 中新增。
float3 native_hypot(float3 a, float3 b); 已在 API 級別 21 中新增。
float4 native_hypot(float4 a, float4 b); 已在 API 級別 21 中新增。
half native_hypot(half a, half b); 已在 API 級別 24 中新增。
half2 native_hypot(half2 a, half2 b); 已在 API 級別 24 中新增。
half3 native_hypot(half3 a, half3 b); 已在 API 級別 24 中新增。
half4 native_hypot(half4 a, half4 b); 已在 API 級別 24 中新增。

傳回約略 native_sqrt(a * a + b * b)

另請參閱 hypot()。

native_log :近似自然對數

float native_log(float v); 已在 API 級別 18 中新增。
float2 native_log(float2 v); 已在 API 級別 18 中新增。
float3 native_log(float3 v); 已在 API 級別 18 中新增。
float4 native_log(float4 v); 已在 API 級別 18 中新增。
half native_log(half v); 已在 API 級別 24 中新增。
half2 native_log(half2 v); 已在 API 級別 24 中新增。
half3 native_log(half3 v); 已在 API 級別 24 中新增。
half4 native_log(half4 v); 已在 API 級別 24 中新增。

快速的近似記錄。

如果值非常接近零,則不是準確的。

另請參閱 log()。

native_log10 :以 10 為底數約為底數

float native_log10(float v); 已在 API 級別 18 中新增。
float2 native_log10(float2 v); 已在 API 級別 18 中新增。
float3 native_log10(float3 v); 已在 API 級別 18 中新增。
float4 native_log10(float4 v); 已在 API 級別 18 中新增。
half native_log10(half v); 已在 API 級別 24 中新增。
half2 native_log10(half2 v); 已在 API 級別 24 中新增。
half3 native_log10(half3 v); 已在 API 級別 24 中新增。
half4 native_log10(half4 v); 已在 API 級別 24 中新增。

快速近似 log10。

如果值非常接近零,則不是準確的。

另請參閱 log10()。

native_log1p :指定值加上 1 的近似自然對數

float native_log1p(float v); 已在 API 級別 21 中新增。
float2 native_log1p(float2 v); 已在 API 級別 21 中新增。
float3 native_log1p(float3 v); 已在 API 級別 21 中新增。
float4 native_log1p(float4 v); 已在 API 級別 21 中新增。
half native_log1p(half v); 已在 API 級別 24 中新增。
half2 native_log1p(half2 v); 已在 API 級別 24 中新增。
half3 native_log1p(half3 v); 已在 API 級別 24 中新增。
half4 native_log1p(half4 v); 已在 API 級別 24 中新增。

傳回 (v + 1.0f) 的近似自然對數

另請參閱 log1p()。

native_log2 :底數為底數為 2 的數約

float native_log2(float v); 已在 API 級別 18 中新增。
float2 native_log2(float2 v); 已在 API 級別 18 中新增。
float3 native_log2(float3 v); 已在 API 級別 18 中新增。
float4 native_log2(float4 v); 已在 API 級別 18 中新增。
half native_log2(half v); 已在 API 級別 24 中新增。
half2 native_log2(half2 v); 已在 API 級別 24 中新增。
half3 native_log2(half3 v); 已在 API 級別 24 中新增。
half4 native_log2(half4 v); 已在 API 級別 24 中新增。

快速近似 log2。

如果值非常接近零,則不是準確的。

另請參閱 log2()。

native_powr將正數調高為指數的近似正數

float native_powr(浮點數, 浮點指數); 已在 API 級別 18 中新增。
float2 native_powr(float2 底, float2 指數); 已在 API 級別 18 中新增。
float3 native_powr(float3 底, float3 指數); 已在 API 級別 18 中新增。
float4 native_powr(float4 底, float4 指數); 已在 API 級別 18 中新增。
half native_powr(基數, 指數); 已在 API 級別 24 中新增。
half2 native_powr(half2 底數, half2 指數); 已在 API 級別 24 中新增。
half3 native_powr(half3 底數, half3 指數); 已在 API 級別 24 中新增。
half4 native_powr(half4 底數, half4 指數); 已在 API 級別 24 中新增。
參數
底座必須介於 0.f 和 256.f 之間。如果值非常接近零,此函式就會不準確。
指數必須介於 -15.f 至 15.f 之間。

快速近似 (基數 ^ 指數)。

另請參閱 powr()。

native_recip :近似循環

float native_recip(float v); 已在 API 級別 21 中新增。
float2 native_recip(float2 v); 已在 API 級別 21 中新增。
float3 native_recip(float3 v); 已在 API 級別 21 中新增。
float4 native_recip(float4 v); 已在 API 級別 21 中新增。
half native_recip(half v); 已在 API 級別 24 中新增。
half2 native_recip(half2 v); 已在 API 級別 24 中新增。
half3 native_recip(half3 v); 已在 API 級別 24 中新增。
half4 native_recip(half4 v); 已在 API 級別 24 中新增。

傳回指定值的近似回合。

另請參閱 half_recip()。

native_rootn :近似 n 次方根

float native_rootn(float v, int n); 已在 API 級別 21 中新增。
float2 native_rootn(float2 v, int2 n); 已在 API 級別 21 中新增。
float3 native_rootn(float3 v, int3 n); 已在 API 級別 21 中新增。
float4 native_rootn(float4 v, int4 n); 已在 API 級別 21 中新增。
half native_rootn(half v, int n); 已在 API 級別 24 中新增。
half2 native_rootn(half2 v, int2 n); 已在 API 級別 24 中新增。
half3 native_rootn(half3 v, int3 n); 已在 API 級別 24 中新增。
half4 native_rootn(half4 v, int4 n); 已在 API 級別 24 中新增。

計算指定值的近 N 次方根。

另請參閱 rootn()。

native_rsqrt :平方根的近似循環

float native_rsqrt(float v); 已在 API 級別 21 中新增。
float2 native_rsqrt(float2 v); 已在 API 級別 21 中新增。
float3 native_rsqrt(float3 v); 已在 API 級別 21 中新增。
float4 native_rsqrt(float4 v); 已在 API 級別 21 中新增。
half native_rsqrt(half v); 已在 API 級別 24 中新增。
half2 native_rsqrt(half2 v); 已在 API 級別 24 中新增。
half3 native_rsqrt(half3 v); 已在 API 級別 24 中新增。
half4 native_rsqrt(half4 v); 已在 API 級別 24 中新增。

傳回近似值 (1 / sqrt(v))。

另請參閱 rsqrt(), half_rsqrt()。

native_sin :近似正弦

float native_sin(float v); 已在 API 級別 21 中新增。
float2 native_sin(float2 v); 已在 API 級別 21 中新增。
float3 native_sin(float3 v); 已在 API 級別 21 中新增。
float4 native_sin(float4 v); 已在 API 級別 21 中新增。
half native_sin(half v); 已在 API 級別 24 中新增。
half2 native_sin(half2 v); 已在 API 級別 24 中新增。
half3 native_sin(half3 v); 已在 API 級別 24 中新增。
half4 native_sin(half4 v); 已在 API 級別 24 中新增。

傳回以弧度表示的角度近正正弦。

另請參閱 sin()。

native_sincos :近似正弦和餘弦

float native_sincos(float v, float* cos); 已在 API 級別 21 中新增。
float2 native_sincos(float2 v, float2* cos); 已在 API 級別 21 中新增。
float3 native_sincos(float3 v, float3* cos); 已在 API 級別 21 中新增。
float4 native_sincos(float4 v, float4* cos); 已在 API 級別 21 中新增。
half native_sincos(half v, half* cos); 已在 API 級別 24 中新增。
half2 native_sincos(half2 v, half2* cos); 已在 API 級別 24 中新增。
half3 native_sincos(half3 v, half3* cos); 已在 API 級別 24 中新增。
half4 native_sincos(half4 v, half4* cos); 已在 API 級別 24 中新增。
參數
v 鍵傳入的值,以弧度為單位。
cos*cos 會設為餘弦值。
傳回
正弦。

傳回指定值的近正正弦和餘弦。

另請參閱 sincos()。

native_sinh :近似雙曲線正弦

float native_sinh(float v); 已在 API 級別 21 中新增。
float2 native_sinh(float2 v); 已在 API 級別 21 中新增。
float3 native_sinh(float3 v); 已在 API 級別 21 中新增。
float4 native_sinh(float4 v); 已在 API 級別 21 中新增。
half native_sinh(half v); 已在 API 級別 24 中新增。
half2 native_sinh(half2 v); 已在 API 級別 24 中新增。
half3 native_sinh(half3 v); 已在 API 級別 24 中新增。
half4 native_sinh(half4 v); 已在 API 級別 24 中新增。

傳回指定值的近似雙曲正弦值,以弧度表示。

另請參閱 sinh()。

native_sinpi :數字乘以 pi 的近正弦

float native_sinpi(float v); 已在 API 級別 21 中新增。
float2 native_sinpi(float2 v); 已在 API 級別 21 中新增。
float3 native_sinpi(float3 v); 已在 API 級別 21 中新增。
float4 native_sinpi(float4 v); 已在 API 級別 21 中新增。
half native_sinpi(half v); 已在 API 級別 24 中新增。
half2 native_sinpi(half2 v); 已在 API 級別 24 中新增。
half3 native_sinpi(half3 v); 已在 API 級別 24 中新增。
half4 native_sinpi(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的近正正弦,其中 (v * pi) 以弧度為單位。

如要取得測量值的正弦值 (以度為單位),請呼叫 sinpi(v / 180.f)

另請參閱 sinpi()。

native_sqrt :近似平方根

float native_sqrt(float v); 已在 API 級別 21 中新增。
float2 native_sqrt(float2 v); 已在 API 級別 21 中新增。
float3 native_sqrt(float3 v); 已在 API 級別 21 中新增。
float4 native_sqrt(float4 v); 已在 API 級別 21 中新增。
half native_sqrt(half v); 已在 API 級別 24 中新增。
half2 native_sqrt(half2 v); 已在 API 級別 24 中新增。
half3 native_sqrt(half3 v); 已在 API 級別 24 中新增。
half4 native_sqrt(half4 v); 已在 API 級別 24 中新增。

傳回近似 sqrt(v)。

另請參閱 sqrt(), half_sqrt()。

native_tan :近切正切

float native_tan(float v); 已在 API 級別 21 中新增。
float2 native_tan(float2 v); 已在 API 級別 21 中新增。
float3 native_tan(float3 v); 已在 API 級別 21 中新增。
float4 native_tan(float4 v); 已在 API 級別 21 中新增。
half native_tan(half v); 已在 API 級別 24 中新增。
half2 native_tan(half2 v); 已在 API 級別 24 中新增。
half3 native_tan(half3 v); 已在 API 級別 24 中新增。
half4 native_tan(half4 v); 已在 API 級別 24 中新增。

傳回以弧度表示的角度近切正切值。

native_tanh :近似雙曲正切

float native_tanh(float v); 已在 API 級別 21 中新增。
float2 native_tanh(float2 v); 已在 API 級別 21 中新增。
float3 native_tanh(float3 v); 已在 API 級別 21 中新增。
float4 native_tanh(float4 v); 已在 API 級別 21 中新增。
half native_tanh(half v); 已在 API 級別 24 中新增。
half2 native_tanh(half2 v); 已在 API 級別 24 中新增。
half3 native_tanh(half3 v); 已在 API 級別 24 中新增。
half4 native_tanh(half4 v); 已在 API 級別 24 中新增。

傳回指定值的近似雙曲正切值。

另請參閱 tanh()。

native_tanpi :數字乘以 pi 的近切正切值

float native_tanpi(float v); 已在 API 級別 21 中新增。
float2 native_tanpi(float2 v); 已在 API 級別 21 中新增。
float3 native_tanpi(float3 v); 已在 API 級別 21 中新增。
float4 native_tanpi(float4 v); 已在 API 級別 21 中新增。
half native_tanpi(half v); 已在 API 級別 24 中新增。
half2 native_tanpi(half2 v); 已在 API 級別 24 中新增。
half3 native_tanpi(half3 v); 已在 API 級別 24 中新增。
half4 native_tanpi(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的近正切值,其中 (v * pi) 是以弧度為單位。

如要取得測量值的正切值 (以度為單位),請呼叫 tanpi(v / 180.f)

另請參閱 tanpi()。

nextafter :下一個浮點數

float nextafter(float v, float target);
float2 nextafter(float2 v, float2 target);
float3 nextafter(float3 v, float3 target);
float4 nextafter(float4 v, float4 target);
接下來 half(half v, half 目標); 已在 API 級別 24 中新增。
次之後的 half2(half2 v, half2 目標); 已在 API 級別 24 中新增。
次之後的 half3(half3 v, half3 目標); 已在 API 級別 24 中新增。
次之後的 half4(half4 v, half4 目標); 已在 API 級別 24 中新增。

傳回從 v 朝目標邁進的下一個可代表浮點數。

在 rs_fp_relaxed 模式中,去正規化的輸入值可能無法產生下一個去正規化值,因為在放鬆模式中,您可以選擇是否要支援去正規化值。

pow :基數已提高為指數

float pow(float base, float exponent);
float2 pow(float2 底, float2 exponent);
float3 pow(float3 基本, float3 指數);
float4 pow(float4 基本, float4 指數);
粉(底座、指數); 已在 API 級別 24 中新增。
half2 pow(底5f2 - half2 指數); 已在 API 級別 24 中新增。
half3 pow(half3 底數、half3 指數); 已在 API 級別 24 中新增。
half4 粉狀(5f4 鹼基、half4 指數); 已在 API 級別 24 中新增。

回傳基數乘冪後的指數,即底數 ^ 指數。

pown() 和 powr()。pown() 採用整數指數。powr() 假設底數為非負數。

pown :以整數指數提高底數

float pown(float base, int exponent);
float2 pown(float2 底, int2 指數);
float3 pown(float3 底, int3 指數);
float4 pown(float4 底, int4 指數);
pown(底數, int 指數); 已在 API 級別 24 中新增。
half2 pown(half2 鹼基、int2 指數); 已在 API 級別 24 中新增。
half3 pown(half3 鹼基、int3 指數); 已在 API 級別 24 中新增。
half4 pown(half4 鹼基、int4 指數); 已在 API 級別 24 中新增。

回傳基數乘冪後的指數,即底數 ^ 指數。

pow() 和 powr() 十分類似。兩者都會採用浮點指數,powr() 也會假設底數為非負數。

powr :指數已提高為指數的正數

float powr(float, float exponent);
float2 powr(float2 基本, float2 指數);
float3 powr(float3 基本, float3 指數);
float4 powr(float4 基本, float4 指數);
half powr(底數, 指數); 已在 API 級別 24 中新增。
half2 powr(half2 基數, half2 指數); 已在 API 級別 24 中新增。
half3 powr(half3 底數, half3 指數); 已在 API 級別 24 中新增。
half4 powr(half4 基數, half4 指數); 已在 API 級別 24 中新增。

回傳基數做為指數,也就是底數 ^ 指數。底數必須大於或等於 0。

pow() 和 pown() 相似。兩者都不會對基底有任何假設。pow() 接受浮點指數,而 pown() 則採用整數。

另請參閱 native_powr()。

弧度 :將角度轉換為弧度

float radians(float v);
float2 radians(float2 v);
float3 radians(float3 v);
float4 radians(float4 v);
half radians(half v); 已在 API 級別 24 中新增。
half2 弧度(half2 v); 已在 API 級別 24 中新增。
half3 radians(half3 v); 已在 API 級別 24 中新增。
half4 弧度(half4 v); 已在 API 級別 24 中新增。

將角度轉換為弧度。

remainder :除法的其餘部分

floatmainder(float numerator, float denominator);
float2mainder(float2 分子, float2 分母);
float3mainder(float3 分子, float3 分母);
float4mainder(float4 分子, float4 分母);
halfmainder(half 分子、half 分母); 已在 API 級別 24 中新增。
half2mainder(half2 分子、half2 分母); 已在 API 級別 24 中新增。
half3mainder(half3 分子、half3 分母); 已在 API 級別 24 中新增。
half4mainder(half4 分子、half4 分母); 已在 API 級別 24 中新增。

傳回 (分子 / 分母) 的餘數,商數會四捨五入至最接近的整數。

函式 fmod() 相似,但會無條件進位至最接近的整數。 舉例來說,fmod(-3.8f, 2.f) 會傳回 -1.8f (-3.8f - -1.f * 2.f),而 remainder(-3.8f, 2.f) 會傳回 0.2f (-3.8f - -2.f * 2.f)。

remquo :除法的餘數和商

float remquo(float 分子, float 分母, int* 商);
float2 remquo(float2 分子, float2 分母, int2* 商號);
float3 remquo(float3 分子, float3 分母, int3* 商號);
float4 remquo(float4 分子, float4 分母, int4* 商號);
half remquo(5 分子, half 分母, int* 商); 已在 API 級別 24 中新增。
half2 remquo(half2 分子, half2 分母, int2* 商數); 已在 API 級別 24 中新增。
half3 remquo(half3 分子, half3 分母, int3* 商數); 已在 API 級別 24 中新增。
half4 remquo(half4 分子, half4 分母, int4* 商數); 已在 API 級別 24 中新增。
參數
分子分子。
分母分母。
*商數會設為整數商數。
傳回
剩餘,只有低三位元精確。

傳回商數和餘數 (分子 / 分母)。

只有商號和最低三位元保證準確無誤。

這個函式適合用於實作定期函式。商的低三位元可提供象限和象限內的剩餘距離。舉例來說,實作 sin(x) 可以呼叫 remquo(x, PI / 2.f, &quadrant) 將非常大的 x 值縮減為限制範圍內的項目。

範例:remquo(-23.5f, 8.f, &quot) 將商的最小值三位元設為 3,而正負號設為負數。且會傳回 0.5f。

rint :四捨五入至偶數

float rint(float v);
float2 rint(float2 v);
float3 rint(float3 v);
float4 rint(float4 v);
half rint(half v); 已在 API 級別 24 中新增。
half2 rint(half2 v); 已在 API 級別 24 中新增。
half3 rint(half3 v); 已在 API 級別 24 中新增。
half4 rint(half4 v); 已在 API 級別 24 中新增。

會四捨五入至最接近的整數。

rint() 會將半值四捨五入為偶數。舉例來說,rint(0.5f) 會傳回 0.f,rint(1.5f) 會傳回 2.f。同樣地,rint(-0.5f) 會傳回 -0.f,rint(-1.5f) 會傳回 -2.f。

round() 類似,但會四捨五入。trunc() 會截斷小數。

rootn :N 次根

float rootn(float v, int n);
float2 rootn(float2 v, int2 n);
float3 rootn(float3 v, int3 n);
float4 rootn(float4 v, int4 n);
half rootn(half v, int n); 已在 API 級別 24 中新增。
half2 rootn(half2 v, int2 n); 已在 API 級別 24 中新增。
half3 rootn(half3 v, int3 n); 已在 API 級別 24 中新增。
half4 rootn(half4 v, int4 n); 已在 API 級別 24 中新增。

計算指定值的 N 次方根。

另請參閱 native_rootn()。

:以 0 為單位四捨五入

float round(float v);
float2 round(float2 v);
float3 round(float3 v);
float4 round(float4 v);
半數捨入(v); 已在 API 級別 24 中新增。
half2 round(half2 v); 已在 API 級別 24 中新增。
half3 round(half3 v); 已在 API 級別 24 中新增。
half4 round(half4 v); 已在 API 級別 24 中新增。

四捨五入至最接近的整數。

round() 將一半的值從零四捨五入。舉例來說,round(0.5f) 會傳回 1.f,round(1.5f) 會傳回 2.f。同樣地,round(-0.5f) 會傳回 -1.f,round(-1.5f) 會傳回 -2.f。

rint() 的計算方式十分類似,但會將一半的值四捨五入至偶數。trunc() 會截斷小數。

rsClamp :將值限制在特定範圍

char rsClamp(字元金額, 字元低, 字元高);
int rsClamp(int amount, int low, int High);
short rsClamp(短則、低、短高);
uchar rsClamp(uchar 金額、uchar 低、uchar 高);
uint rsClamp(uint amount, uint low, uint High);
ushort rsClamp(ushort 金額、ushort 低、ushort 高):
參數
金額要限制範圍的值。
下限。
上限。

已淘汰。請改用 clamp()。

值必須介於低和高之間。

rsFrac :傳回浮點的分數部分

float rsFrac(float v);

已淘汰。請改用 fract()。

傳回浮點的分數部分

rsRand :虛擬隨機號碼

浮點 rsRand(float max_value);
float rsRand(float min_value, float max_value);
int rsRand(int max_value);
int rsRand(int min_value, int max_value);

傳回 0 (或 min_value) 與 max_malue 之間的隨機值。

rsqrt :平方根的參照

float rsqrt(float v);
float2 rsqrt(float2 v);
float3 rsqrt(float3 v);
float4 rsqrt(float4 v);
half rsqrt(half v); 已在 API 級別 24 中新增。
half2 rsqrt(half2 v); 已在 API 級別 24 中新增。
half3 rsqrt(half3 v); 已在 API 級別 24 中新增。
half4 rsqrt(half4 v); 已在 API 級別 24 中新增。

傳回 (1 / sqrt(v))。

另請參閱 half_rsqrt(), native_rsqrt()。

sign :值的符號

浮點符號(float v);
float2 符號(float2 v);
float3 符號(float3 v);
float4 符號(float4 v);
half 符號(half v); 已在 API 級別 24 中新增。
half2 符號(half2 v); 已在 API 級別 24 中新增。
half3 符號(half3 v); 已在 API 級別 24 中新增。
half4 符號(half4 v); 已在 API 級別 24 中新增。

傳回值的正負號。

if (v < 0) return -1.f; else if (v > 0) 傳回 1.f; else 傳回 0.f;

sin :正弦

float sin(float v);
float2 sin(float2 v);
float3 sin(float3 v);
float4 sin(float4 v);
half sin(half v); 已在 API 級別 24 中新增。
half2 sin(half2 v); 已在 API 級別 24 中新增。
half3 sin(half3 v); 已在 API 級別 24 中新增。
half4 sin(half4 v); 已在 API 級別 24 中新增。

傳回以弧度為單位的角度的正弦。

另請參閱 native_sin()。

sincos :正弦和餘弦

float sincos(float v, float* cos);
float2 sincos(float2 v, float2* cos);
float3 sincos(float3 v, float3* cos);
float4 sincos(float4 v, float4* cos);
half sincos(half v, half* cos); 已在 API 級別 24 中新增。
half2 sincos(half2 v, half2* cos); 已在 API 級別 24 中新增。
half3 sincos(half3 v, half3* cos); 已在 API 級別 24 中新增。
half4 Sincos(half4 v, half4* cos); 已在 API 級別 24 中新增。
參數
v 鍵傳入的值,以弧度為單位。
cos*cos 會設為餘弦值。
傳回
v. 的正弦

傳回指定值的正弦和餘弦。

另請參閱 native_sincos()。

sinh :雙曲線正弦

float sinh(float v);
float2 sinh(float2 v);
float3 sinh(float3 v);
float4 sinh(float4 v);
half sinh(half v); 已在 API 級別 24 中新增。
half2 sinh(half2 v); 已在 API 級別 24 中新增。
half3 sinh(half3 v); 已在 API 級別 24 中新增。
half4 sinh(half4 v); 已在 API 級別 24 中新增。

傳回 v 的雙曲正弦,其中 v 的計算單位為弧度。

另請參閱 native_sinh()。

sinpi :正數乘以 pi 的正弦

float sinpi(float v);
float2 sinpi(float2 v);
float3 sinpi(float3 v);
float4 sinpi(float4 v);
half sinpi(half v); 已在 API 級別 24 中新增。
half2 sinpi(half2 v); 已在 API 級別 24 中新增。
half3 sinpi(half3 v); 已在 API 級別 24 中新增。
half4 sinpi(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的正弦,其中 (v * pi) 以弧度為單位。

如要取得測量值的正弦值 (以度為單位),請呼叫 sinpi(v / 180.f)

另請參閱 native_sinpi()。

sqrt :平方根

float sqrt(float v);
float2 sqrt(float2 v);
float3 sqrt(float3 v);
float4 sqrt(float4 v);
half sqrt(half v); 已在 API 級別 24 中新增。
half2 sqrt(half2 v); 已在 API 級別 24 中新增。
half3 sqrt(half3 v); 已在 API 級別 24 中新增。
half4 sqrt(half4 v); 已在 API 級別 24 中新增。

傳回指定值的平方根。

另請參閱 half_sqrt()、native_sqrt()。

step :小於值時為 0,否則為 1

float step(float Edge, float v);
float2 steps(float Edge, float2 v); 已在 API 級別 21 中新增。
float2 steps(float2 Edge, float v);
float2 steps(float2 Edge, float2 v);
float3 steps(float Edge, float3 v); 已在 API 級別 21 中新增。
float3 steps(float3 Edge, float v);
float3 steps(float3 Edge, float3 v);
float4 steps(float Edge, float4 v); 已在 API 級別 21 中新增。
float4 steps(float4 Edge, float v);
float4 steps(float4 Edge, float4 v);
half 步(5f 邊緣,half v); 已在 API 級別 24 中新增。
half2 步(一半邊緣,half2 v); 已在 API 級別 24 中新增。
half2 步(half2 邊緣,half v); 已在 API 級別 24 中新增。
half2 步(half2 邊緣、half2 v); 已在 API 級別 24 中新增。
half3 步(5f 邊緣,half3 v); 已在 API 級別 24 中新增。
half3 步(half3 邊緣,half v); 已在 API 級別 24 中新增。
half3 步(half3 邊緣,half3 v); 已在 API 級別 24 中新增。
half4 步(5f 邊緣,half4 v); 已在 API 級別 24 中新增。
half4 步(half4 邊緣,half v); 已在 API 級別 24 中新增。
half4 步(half4 邊緣,half4 v); 已在 API 級別 24 中新增。

如果 v < Edge 傳回 0.f,則傳回 0.f,否則傳回 1.f。

這有助於建立條件式運算,而不必使用迴圈和分支版本操作說明。舉例來說,您可以改用 step(a, b) * atan2(a, b),而非為向量的對應元素計算 (a[i] < b[i]) ? 0.f : atan2(a[i], b[i])

tan :Tagent

float tan(float v);
float2 tan(float2 v);
float3 tan(float3 v);
float4 tan(float4 v);
half tan(half v); 已在 API 級別 24 中新增。
half2 tan(half2 v); 已在 API 級別 24 中新增。
half3 tan(half3 v); 已在 API 級別 24 中新增。
half4 tan(half4 v); 已在 API 級別 24 中新增。

傳回以弧度為單位的角度的正切值。

另請參閱 native_tan()。

tanh :雙曲線正切

float tanh(float v);
float2 tanh(float2 v);
float3 tanh(float3 v);
float4 tanh(float4 v);
half tanh(half v); 已在 API 級別 24 中新增。
half2 tanh(half2 v); 已在 API 級別 24 中新增。
half3 tanh(half3 v); 已在 API 級別 24 中新增。
half4 tanh(half4 v); 已在 API 級別 24 中新增。

傳回指定值的雙曲正切。

另請參閱 native_tanh()。

tanpi :正數乘以 pi 所得的正切值

float tanpi(float v);
float2 tanpi(float2 v);
float3 tanpi(float3 v);
float4 tanpi(float4 v);
half tanpi(half v); 已在 API 級別 24 中新增。
half2 tanpi(half2 v); 已在 API 級別 24 中新增。
half3 tanpi(half3 v); 已在 API 級別 24 中新增。
half4 tanpi(half4 v); 已在 API 級別 24 中新增。

傳回 (v * pi) 的正切值,其中 (v * pi) 是以弧度為單位。

如要取得測量值的正切值 (以度為單位),請呼叫 tanpi(v / 180.f)

另請參閱 native_tanpi()。

tgamma :Gamma 函式

float tgamma(float v);
float2 tgamma(float2 v);
float3 tgamma(float3 v);
float4 tgamma(float4 v);
half tgamma(half v); 已在 API 級別 24 中新增。
half2 tgamma(half2 v); 已在 API 級別 24 中新增。
half3 tgamma(half3 v); 已在 API 級別 24 中新增。
half4 tgamma(half4 v); 已在 API 級別 24 中新增。

傳回特定值的 Gamma 函式。

另請參閱 lgamma()。

trunc :截斷浮點

float trunc(float v);
float2 trunc(float2 v);
float3 trunc(float3 v);
float4 trunc(float4 v);
half trunc(half v); 已在 API 級別 24 中新增。
half2 trunc(half2 v); 已在 API 級別 24 中新增。
half3 trunc(half3 v); 已在 API 級別 24 中新增。
half4 trunc(half4 v); 已在 API 級別 24 中新增。

以截斷方式四捨五入至積分。

舉例來說,trunc(1.7f) 會傳回 1.f,trunc(-1.7f) 會傳回 -1.f。

如要瞭解其他捨入選項,請參閱 rint() 和 round()。