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);

入力を N 次元空間の単一ベクトルとして解釈する distance() や length() などの関数については、ベクトル数学関数をご覧ください。

32 ビット浮動小数点数に対する数学演算の精度は、rs_fp_relaxed プラグと rs_fp_full プラグマの影響を受けます。rs_fp_relaxed では、通常より低い値がゼロにフラッシュされ、ゼロに向かって丸めされる場合があります。これに対して、rs_fp_full は標準外の値(1.17549435e-38f より小さい)を正しく処理する必要があります。rs_fp_rull も、偶数と同点で最も近い値に丸める必要があります。

一般的な数学関数のバリエーションを使用すると、精度と速度のトレードオフを実現できます。名前が

  • native_: 精度が低いカスタム ハードウェア実装が含まれる可能性があります。さらに、異常な値がゼロにフラッシュされたり、ゼロへの丸めが使用されたり、NaN 入力と無限大入力が正しく処理されない場合があります。
  • third_: 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 逆コサインを円周率で割ったもの
asin 逆正弦
asinh 逆双曲線正弦
asinpi 逆正弦を円周率で除算した値
atan 逆タンジェント
atan2 比率の逆タンジェント
atan2pi 比率の逆タンジェントを円周率で割った数値
atanh 逆双曲線正接
atanpi 逆タンジェントを円周率で割った数値
cbrt キューブルート
ceil 特定の値以上の最小の整数
clamp 値を範囲に制約する
clz 先頭の 0 ビットの数
copysign 数値の符号を別の符号にコピーします。
cos コサイン
cosh 双曲線コサイン
cospi 数値に円周率を乗じたコサイン
ラジアンを度数に変換します
erf 数学の誤差関数
erfc 数学の補完誤差関数
exp e が数値に上げられる
exp10 10 の数字が 10 になる
exp2 2 の累乗数
expm1 数字から 1 を引いた e を底とする
FAB 浮動小数点数の絶対値
fdim 2 つの値の正の差
下限 ある値以下の最小の整数
fma かけ算と足し算を行う
fmax 最大 2 つの浮動小数点数
fmin 2 つ以上の浮動小数点数。
fmod モジュロ
fract 正分数部
frexp 2 進仮数と指数
half_recip 16 ビット精度で計算された逆数
half_rsqrt 16 ビット精度で計算された平方根の逆数
half_sqrt 16 ビット精度で計算された平方根
hypot 斜辺
ilogb 2 を底とする指数
ldexp 仮数と指数から浮動小数点を作成します。
lgamma ガンマ関数の自然対数
log 自然対数
log10 10 を底とする対数
log1p 値 + 1 の自然対数
log2 2 を底とする対数
logb 2 を底とする指数
mad かけ算と足し算を行う
max 最大
min 最小
mix 2 つの値を混在させる
modf 積分成分と分数成分
nan 数値ではありません
nan_half 数値ではありません
native_acos 近似逆コサイン
native_acosh 近似逆双曲線コサイン
native_acospi 円周率で割った近似逆コサイン
native_asin 近似逆正弦
native_asinh 近似逆双曲線正弦
native_asinpi 円周率で割った近似逆サイン
native_atan 近似逆タンジェント
native_atan2 比率の近似逆タンジェント
native_atan2pi 比率の近似逆タンジェントを円周率で割ったもの
native_atanh 近似逆双曲線正接
native_atanpi 逆タンジェントを円周率で割った近似値
native_cbrt 近似立方根
native_cos 近似コサイン
native_cosh 近似双曲線コサイン
native_cospi 数値に円周率を乗じた近似余弦
native_divide 近似除算
native_exp 近似 e を数字に累乗する
native_exp10 約 10 の 1 乗
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 数値に円周率を乗じた近似正弦
native_sqrt 近似平方根
native_tan 近似タンジェント
native_tanh 近似双曲線正接
native_tanpi 数値に円周率を乗じた近似タンジェント
nextafter 次の浮動小数点数
pow 底を指数に累乗する
pown 底を整数の指数に累乗する
powr 正の底を指数に累乗する
ラジアン 度数をラジアンに変換します
remainder 除算の余り
remquo 除算の余りと商
rint 偶数に丸める
rootn N 乗根
round ゼロから逆算する
rsRand 擬似乱数
rsqrt 平方根の逆数
sign 値の符号
sin サイン
sincos 正弦と余弦
sinh 双曲線正弦
sinpi 数値に円周率を掛けた正弦
sqrt 平方根
step 値未満の場合は 0、それ以外の場合は 1
tan タンジェント
tanh 双曲線正接
tanpi 数値に円周率を乗じたタンジェント
tgamma ガンマ関数
trunc 浮動小数点数を切り捨てます。
非推奨の関数
rsClamp サポート終了。値を範囲に制約する
rsFrac サポート終了。float 型の小数部を返します。

定数

M_1_PI : 1 / pi(32 ビット浮動小数点数)


値: 0.318309886183790671537767526745028724f

円周率の逆数を 32 ビット浮動小数点数で表したもの。

M_2_PI : 2 / pi、32 ビット浮動小数点数


値: 0.636619772367581343075535053490057448f

2 を円周率で割った 32 ビット浮動小数点数。

M_2_SQRTPI : 2 / sqrt(pi)、32 ビット浮動小数点数


値: 1.128379167095512573896158903121545172f

2 を円周率の平方根で割った 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

10 を底とする e の対数(32 ビット浮動小数点数)。

M_LOG2E : log_2(e)(32 ビット浮動小数点数)


値: 1.442695040888963407359924681001892137f

2 を底とする e の対数(32 ビット浮動小数点数)。

M_PI : pi(32 ビット浮動小数点数)


値: 3.141592653589793238462643383279502884f

定数円周率(32 ビット浮動小数点数)。

M_PI_2 : pi / 2、32 ビット浮動小数点数


値: 1.570796326794896619231321691639751442f

円周率を 2 で割った 32 ビット浮動小数点数。

M_PI_4 : pi / 4、32 ビット浮動小数点数


値: 0.785398163397448309615660845819875721f

円周率を 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 で追加されました

逆コサインをラジアンで円周率で割って返します。

度数で測定された逆コサインを取得するには、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 で追加されました

逆サインをラジアンで円周率で割って返します。

度数で測定された逆サインを取得するには、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(float 分子, float 分母);
float2 atan2(float2 の分子, float2 分母);
float3 atan2(float3 の分子, float3 分母);
float4 atan2(float4 の分子, float4 の分母);
half atan2(hal 分子、半分分母); 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 : 比率の逆タンジェントを円周率で割ったもの

float atan2pi(float 分子, float 分母);
float2 atan2pi(float2 の分子, float2 分母);
float3 atan2pi(float3 の分子, float3 分母);
float4 atan2pi(float4 の分子, float4 分母);
half atan2pi(half 分子、半分分母); API レベル 24 で追加されました
half2 atan2pi(half2 分子、half2 分母); API レベル 24 で追加されました
half3 atan2pi(half3 分子、half3 分母); API レベル 24 で追加されました
half4 atan2pi(half4 分子、half4 分母); API レベル 24 で追加されました
パラメータ
分子分子。
分母分母。0 も指定できます。

(numerator / denominator) の逆タンジェントをラジアンで円周率で割って返します。

度単位で逆タンジェントを取得するには、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 : 逆タンジェントを円周率で割る

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 で追加されました

逆タンジェントをラジアンで円周率で割って返します。

度単位で逆タンジェントを取得するには、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() もご覧ください。

clamp : 値を範囲に制約する

char clamp(char value, char min_value, char max_value); API レベル 19 で追加されました
char2 clamp(char2 value, char min_value, char max_value); API レベル 19 で追加されました
char2 clamp(char2 value, char2 min_value, char2 max_value); API レベル 19 で追加されました
char3 clamp(char3 value, char min_value, char max_value); API レベル 19 で追加されました
char3 clamp(char3 value, char3 min_value, char3 max_value); API レベル 19 で追加されました
char4 clamp(char4 value, char min_value, char max_value); API レベル 19 で追加されました
char4 clamp(char4 value, char4 min_value, char4 max_value); API レベル 19 で追加されました
float clamp(float value, float min_value, float max_value);
float2 clamp(float2 value, float min_value, float max_value);
float2 clamp(float2 value, float2 min_value, float2 max_value);
float3 clamp(float3 value, float min_value, float max_value);
float3 clamp(float3 value, float3 min_value, float3 max_value);
float4 clamp(float4 value, float min_value, float max_value);
float4 clamp(float4 value, float4 min_value, float4 max_value);
half clamp(half value, half min_value, half max_value); API レベル 24 で追加されました
half2 clamp(half2 value, half min_value, half max_value); API レベル 24 で追加されました
half2 clamp(half2 value, half2 min_value, half2 max_value); API レベル 24 で追加されました
half3 clamp(half3 value, half min_value, half max_value); API レベル 24 で追加されました
half3 clamp(half3 value, half3 min_value, half3 max_value); API レベル 24 で追加されました
half4 clamp(half4 value, half min_value, half max_value); API レベル 24 で追加されました
half4 clamp(half4 value, half4 min_value, half4 max_value); API レベル 24 で追加されました
int clamp(int value, int min_value, int max_value); API レベル 19 で追加されました
int2 clamp(int2 value, int min_value, int max_value); API レベル 19 で追加されました
int2 clamp(int2 value, int2 min_value, int2 max_value); API レベル 19 で追加されました
int3 clamp(int3 value, int min_value, int max_value); API レベル 19 で追加されました
int3 clamp(int3 value, int3 min_value, int3 max_value); API レベル 19 で追加されました
int4 clamp(int4 value, int min_value, int max_value); API レベル 19 で追加されました
int4 clamp(int4 value, int4 min_value, int4 max_value); API レベル 19 で追加されました
long clamp(long value, long min_value, long max_value); API レベル 19 で追加されました
long2 clamp(long2 value, long min_value, long max_value); API レベル 19 で追加されました
long2 clamp(long2 value, long2 min_value, long2 max_value); API レベル 19 で追加されました
long3 clamp(long3 value, long min_value, long max_value); API レベル 19 で追加されました
long3 clamp(long3 value, long3 min_value, long3 max_value); API レベル 19 で追加されました
long4 clamp(long4 value, long min_value, long max_value); API レベル 19 で追加されました
long4 clamp(long4 value, long4 min_value, long4 max_value); API レベル 19 で追加されました
short clamp(short value, short min_value, short max_value); API レベル 19 で追加されました
short2 clamp(short2 value, short min_value, short max_value); API レベル 19 で追加されました
short2 clamp(short2 value, short2 min_value, short2 max_value); API レベル 19 で追加されました
short3 clamp(short3 value, short min_value, short max_value); API レベル 19 で追加されました
short3 clamp(short3 value, short3 min_value, short3 max_value); API レベル 19 で追加されました
short4 clamp(short4 value, short min_value, short max_value); API レベル 19 で追加されました
short4 clamp(short4 value, short4 min_value, short4 max_value); API レベル 19 で追加されました
uchar clamp(uchar value, uchar min_value, uchar max_value); API レベル 19 で追加されました
uchar2 clamp(uchar2 value, uchar min_value, uchar max_value); API レベル 19 で追加されました
uchar2 clamp(uchar2 value, uchar2 min_value, uchar2 max_value); API レベル 19 で追加されました
uchar3 clamp(uchar3 value, uchar min_value, uchar max_value); API レベル 19 で追加されました
uchar3 clamp(uchar3 value, uchar3 min_value, uchar3 max_value); API レベル 19 で追加されました
uchar4 clamp(uchar4 value, uchar min_value, uchar max_value); API レベル 19 で追加されました
uchar4 clamp(uchar4 value, uchar4 min_value, uchar4 max_value); API レベル 19 で追加されました
uint clamp(uint value, uint min_value, uint max_value); API レベル 19 で追加されました
uint2 clamp(uint2 value, uint min_value, uint max_value); API レベル 19 で追加されました
uint2 clamp(uint2 value, uint2 min_value, uint2 max_value); API レベル 19 で追加されました
uint3 clamp(uint3 value, uint min_value, uint max_value); API レベル 19 で追加されました
uint3 clamp(uint3 value, uint3 min_value, uint3 max_value); API レベル 19 で追加されました
uint4 clamp(uint4 value, uint min_value, uint max_value); API レベル 19 で追加されました
uint4 clamp(uint4 value, uint4 min_value, uint4 max_value); API レベル 19 で追加されました
ulong clamp(ulong value, ulong min_value, ulong max_value); API レベル 19 で追加されました
ulong2 clamp(ulong2 value, ulong min_value, ulong max_value); API レベル 19 で追加されました
ulong2 clamp(ulong2 value, ulong2 min_value, ulong2 max_value); API レベル 19 で追加されました
ulong3 clamp(ulong3 value, ulong min_value, ulong max_value); API レベル 19 で追加されました
ulong3 clamp(ulong3 value, ulong3 min_value, ulong3 max_value); API レベル 19 で追加されました
ulong4 clamp(ulong4 value, ulong min_value, ulong max_value); API レベル 19 で追加されました
ulong4 clamp(ulong4 value, ulong4 min_value, ulong4 max_value); API レベル 19 で追加されました
ushort clamp(ushort value, ushort min_value, ushort max_value); API レベル 19 で追加されました
ushort2 clamp(ushort2 value, ushort min_value, ushort max_value); API レベル 19 で追加されました
ushort2 clamp(ushort2 value, ushort2 min_value, ushort2 max_value); API レベル 19 で追加されました
ushort3 clamp(ushort3 value, ushort min_value, ushort max_value); API レベル 19 で追加されました
ushort3 clamp(ushort3 value, ushort3 min_value, ushort3 max_value); API レベル 19 で追加されました
ushort4 clamp(ushort4 value, ushort min_value, ushort max_value); API レベル 19 で追加されました
ushort4 clamp(ushort4 value, ushort4 min_value, ushort4 max_value); API レベル 19 で追加されました
パラメータ
valueクランプする値。
最小値下限、スカラーまたは一致ベクトル。
最大値上限。下限の種類と一致する必要があります。

指定した上限と下限に値を固定します。clamp() は、value < min_value の場合は min_value、value > max_value の場合は max_value を返し、それ以外の場合は value を返します。

クランプには 2 つのバリエーションがあります。1 つは最小値と最大値が値のすべてのエントリに適用されるスカラーで、もう 1 つは最小値と最大値もベクトルです。

min_value が max_value より大きい場合、結果は未定義になります。

clz : 先頭の 0 ビットの数

char clz(char value);
char2 clz(char2 value);
char3 clz(char3 value);
char4 clz(char4 value);
int clz(int value);
int2 clz(int2 value);
int3 clz(int3 value);
int4 clz(int4 value);
short clz(short value);
short2 clz(short2 value);
short3 clz(short3 value);
short4 clz(short4 value);
uchar clz(uchar value);
uchar2 clz(uchar2 value);
uchar3 clz(uchar3 value);
uchar4 clz(uchar4 value);
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 の値);
ushort4 clz(ushort4 の値);

値の先頭にある 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 : 数値に円周率を乗じたコサイン

float cospi(float v);
float2 cospi(float2 v);
float3 cospi(float3 v);
float4 cospi(float4 v);
half cospi(half v); API レベル 24 で追加されました
half2 cospi(half2 v); API レベル 24 で追加されました
half3 cospi(half3 v); API レベル 24 で追加されました
half4 cospi(half4 v); API レベル 24 で追加されました

(v * pi) のコサインを返します。(v * pi) はラジアン単位です。

度数で測定された値のコサインを取得するには、cospi(v / 180.f) を呼び出します。

native_cospi() もご覧ください。

degrees : ラジアンを度数に変換します

浮動小数点数(float v);
float2 degrees(float2 v);
float3 degrees(float3 v);
float4 度(float4 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 : e が数値に上げられる

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 : e を数字から 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 型の絶対値

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 fab(half4 v) API レベル 24 で追加されました

浮動小数点数(v)の絶対値を返します。

整数の場合は abs() を使用します。

fdim : 2 つの値の正の差

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 で追加されました

2 つの値間の正の差を返します。

a > b の場合は(a - b)を返します。それ以外の場合は 0f を返します。

floor : 値以下の最小の整数

float floor(float v);
float2 floor(float2 v);
float3 floor(float3 v);
float4 floor(float4 v);
half 階(half v) API レベル 24 で追加されました
half2 floor(half2 v); API レベル 24 で追加されました
half3 floor(half3 v); API レベル 24 で追加されました
half4floor(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 offset); 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 : 最大 2 つの浮動小数点数

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 : 2 つ以上の浮動小数点数

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 : モジュロ

float fmod(float 分子, float 分母);
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)を返します。

fract : 正の分数部

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 fract(half v); API レベル 24 で追加されました
half fract(half v, half* Floor); API レベル 24 で追加されました
half2 fract(half2 v); API レベル 24 で追加されました
half2 fract(half2 v, half2* floor); API レベル 24 で追加されました
half3 fract(half3 v); API レベル 24 で追加されました
half3 fract(half3 v, half3* floor); API レベル 24 で追加されました
half4 fract(half4 v); API レベル 24 で追加されました
half4 fract(half4 v, half4* floor); API レベル 24 で追加されました
パラメータ
v入力値。
floor が null でない場合、*floor は v の階数に設定されます。

v の正の小数部を返します(例: v - floor(v))。

たとえば、fract(1.3f, &val) は 0.3f を返し、val を 1.f に設定します。 fract(-1.3f, &val) は 0.7f を返し、val を -2.f に設定します。

frexp : 2 進仮数と指数

float frexp(float v, int* exponent);
float2 frexp(float2 v, int2* 指数);
float3 frexp(float3 v, int3* 指数);
float4 frexp(float4 v, int4* 指数);
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入力値。
指数指数が null でない場合、*指数は v の指数に設定されます。

2 進仮数と 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);
ハーフハイポット(ハーフ a、ハーフ 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 : 2 を底とする指数

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 で追加されました

仮数を 1.f(両端を含む)~ 2.f(両端を除く)の範囲内の値の 2 を底とする指数を返します。

たとえば、ilogb(8.5f) は 3 を返します。

仮数が異なるため、この数は frexp() で返される値よりも 1 小さい値になります。

logb() も同様ですが、浮動小数点数を返します。

ldexp : 仮数と指数から浮動小数点を作成します

float ldexp(float mantissa, int exponent);
float2 ldexp(float2 仮数, int 指数);
float2 ldexp(float2 仮数, int2 指数);
float3 ldexp(float3 仮数, int 指数);
float3 ldexp(float3 仮数, int3 指数);
float4 ldexp(float4 仮数, int 指数);
float4 ldexp(float4 仮数, int4 指数);
half ldexp(half mantissa, int 指数); API レベル 24 で追加されました
half2 ldexp(half2 mantissa, int 指数); API レベル 24 で追加されました
half2 ldexp(half2 仮数, int2 指数); API レベル 24 で追加されました
half3 ldexp(half3 mantissa, int 指数); API レベル 24 で追加されました
half3 ldexp(half3 仮数, int3 指数); API レベル 24 で追加されました
half4 ldexp(half4 仮数, int 指数); API レベル 24 で追加されました
half4 ldexp(half4 仮数, int4 指数); API レベル 24 で追加されました
パラメータ
仮説マンティッサ。
指数指数、単一のコンポーネントまたは一致するベクトル。

仮数と指数から作成した浮動小数点数、すなわち(仮数 * 2 ^ 指数)を返します。

逆の演算については、frexp() をご覧ください。

lgamma : ガンマ関数の自然対数

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
ガンマの記号sign_of_gamma が null でない場合、*sign_of_gamma は v のガンマが負の値であれば -1.f に、それ以外の場合は 1.f に設定されます。

ガンマ関数の絶対値の自然対数(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 : 2 を底とする指数

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 で追加されました

仮数を 1.f(両端を含む)~ 2.f(両端を除く)の範囲内の値の 2 を底とする指数を返します。

たとえば、logb(8.5f) は 3.f を返します。

仮数が異なるため、この数値は frexp() が返す値よりも 1 小さい値になります。

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 offset); 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 offset); 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 の最大値(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);

2 つの引数の最大値を返します。

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 分(half a, half b); API レベル 24 で追加されました
half2 分(half2 a, half b); API レベル 24 で追加されました
half2 min(half2 a, half2 b); API レベル 24 で追加されました
half3 分(half3 a, half b); API レベル 24 で追加されました
half3 分(half3 a, half3 b); API レベル 24 で追加されました
half4 分(half4 a, half b); API レベル 24 で追加されました
half4 分(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 分(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 分(ulong a, ulong b); API レベル 21 で追加されました
ulong2 min(ulong2 a, ulong2 b); API レベル 21 で追加されました
ulong3 分(ulong3 a, ulong3 b); API レベル 21 で追加されました
ulong4 分(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);

2 つの引数の最小値を返します。

mix : 2 つの値を混在させます。

float mix(float start, float stop, float fraction);
float2 mix(float2 start, float2 stop, float fraction);
float2 mix(float2 start, float2 stop, float2 fraction);
float3 mix(float3 start, float3 stop, float fraction);
float3 mix(float3 start, float3 stop, float3 fraction);
float4 mix(float4 start, float4 stop, float fraction);
float4 mix(float4 start, float4 stop, float4 fraction);
half ミックス(half スタート、ハーフ ストップ、半分分数) API レベル 24 で追加されました
half2 ミックス(half2 開始、half2 停止、half 分数) API レベル 24 で追加されました
half2 ミックス(half2 開始、half2 停止、half2 割合) API レベル 24 で追加されました
half3 ミックス(half3 開始、half3 停止、half 分数) API レベル 24 で追加されました
half3 混合(half3 開始、half3 停止、half3 割合) API レベル 24 で追加されました
half4 ミックス(half4 開始、half4 停止、half 小数) API レベル 24 で追加されました
half4 ミックス(half4 開始、half4 停止、half4 割合) API レベル 24 で追加されました

開始 + ((停止 - 開始) × 分数) を返します。

これは 2 つの値を混在させる場合に便利です。たとえば、色 1 が 40%、色 2 が 60% の新しい色を作成するには、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 : 円周率で割った近似逆コサイン

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 で追加されました

近似逆コサインをラジアンで円周率で割って返します。

度数で測定された逆コサインを取得するには、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 で追加されました

近似逆サインをラジアンで円周率で割って返します。

度数で測定された逆サインを取得するには、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(float 分子, float 分母); 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(float 分子, float 分母); 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) の近似逆タンジェントをラジアンで円周率で割って返します。

度単位で逆タンジェントを取得するには、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 : 逆タンジェントを円周率で割った近似値

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 で追加されました

近似逆タンジェントをラジアンで円周率で割って返します。

度単位で逆タンジェントを取得するには、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 : 数値に円周率を乗じた近似コサイン

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, half4 right_vector); API レベル 24 で追加されました

2 つの値の近似除算を計算します。

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 で追加されました

高速近似値 2。

-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 で追加されました

高速な概算ログ。

値が 0 に非常に近い場合、精度は低くなります。

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 で追加されました

高速な概算ログ 10。

値が 0 に非常に近い場合、精度は低くなります。

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 で追加されました

高速な概算ログ 2。

値が 0 に非常に近い場合、精度は低くなります。

log2() もご覧ください。

native_powr : 正底を指数でべき乗した近似値

float native_powr(float base, float exponent); 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 の範囲で指定してください。この関数は、値が 0 に非常に近い場合、正確ではありません。
指数-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 : 数値に円周率を乗じた近似正弦

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 : 数値に円周率を乗じた近似タンジェント

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 nextafter(half v, half target); API レベル 24 で追加されました
half2 nextafter(half2 v, half2 target); API レベル 24 で追加されました
half3 nextafter(half3 v, half3 target); API レベル 24 で追加されました
half4 nextafter(half4 v, half4 target); API レベル 24 で追加されました

v から目標までの次の表現可能な浮動小数点数を返します。

rs_fp_relaxed モードでは、リラックス モードでは非正規化値のサポートがオプションであるため、非正規化された入力値が次の非正規化値を生成しない場合があります。

pow : 底を指数に累乗する

float pow(float base, float exponent);
float2 pow(float2 を底辺, float2 の指数にするか);
float3 pow(float3 を底辺, float3 の指数にするか);
float4 pow(float4 を底部, float4 の指数にするか);
半分べき乗(半分を底とする、半分の指数) API レベル 24 で追加されました
half2 pow(half2 底、half2 指数) API レベル 24 で追加されました
half3 pow(half3 底、half3 指数) API レベル 24 で追加されました
half4 pow(half4 底、half4 指数) API レベル 24 で追加されました

べき乗された底をべき指数で返します(底 ^ 指数)。

pown() と powr() は似ています。pown() は整数の指数を受け取ります。powr() は底が負でないことを前提としています。

pown : 底を整数の指数に累乗する

float pown(float 基数, int 指数);
float2 pown(float2 を底とする, int2 指数);
float3 pown(float3 の底, int3 の指数);
float4 pown(float4 を底数, int4 の指数);
half 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 base, float exponent);
float2 powr(float2 を底辺, float2 の指数にするか);
float3 powr(float3 を底部, float3 の指数にするか);
float4 powr(float4 を底部, float4 の指数にするか);
半分のべき乗(半分を底とする、半分の指数) 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 ラジアン(float2 v);
float3 ラジアン(float3 v);
float4 ラジアン(float4 v);
ハーフ ラジアン(ハーフ v) API レベル 24 で追加されました
half2 ラジアン(half2 v) API レベル 24 で追加されました
half3 ラジアン(half3 v) API レベル 24 で追加されました
half4 ラジアン(half4 v) API レベル 24 で追加されました

角度をラジアンに変換します。

remainder : 除算の余り

浮動小数点数(浮動小数点数の分子, 浮動小数点数の分母);
float2 Renomy(float2 の分子、float2 分母);
float3 REST(float3 の分子, float3 分母);
float4期限切れ(float4 の分子、float4 分母);
半分の余り(半分の分子、半分の分母) API レベル 24 で追加されました
half2 余り(half2 分子、half2 分母) API レベル 24 で追加されました
half3 余り(half3 の分子、half3 の分母) API レベル 24 で追加されました
half4 の余り(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* quotient);
float2 remquo(float2 の分子, float2 分母, int2* 商);
float3 remquo(float3 の分子, float3 分母, int3* 商);
float4 remquo(float4 の分子, float4 分母, int4* 商);
half remquo(half 分子, 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 で追加されました
パラメータ
分子分子。
分母分母。
*商は整数の商に設定されます。
戻り値
残りは、下位の 3 ビットについてのみ正確です。

(分子 / 分母) の商と余りを返します。

正確であることが保証されるのは、符号の符号と下位 3 ビットのみです。

この関数は周期的な関数を実装する際に役立ちます。商の下位 3 ビットが象限に、余りが象限内の距離になります。たとえば、sin(x) の実装では、remquo(x, PI / 2.f, &quadrant) を呼び出して、x の非常に大きな値を制限された範囲内に削減できます。

例: remquo(-23.5f, 8.f, &quot) は、引用符の下位 3 ビットを 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() も同様ですが、0 から離れるように四捨五入します。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() もご覧ください。

round : ゼロから離れるように丸めます

float round(float v);
float2 round(float2 v);
float3 round(float3 v);
float4 round(float4 v);
half ラウンド(half v) API レベル 24 で追加されました
half2 ラウンド(half2 v) API レベル 24 で追加されました
half3 ラウンド(half3 v) API レベル 24 で追加されました
half4 ラウンド(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(char 量, 低消費量, 高低炭素数);
int rsClamp(int amount, int low, int high);
short rsClamp(short amount, short Low, short high);
uchar rsClamp(uchar 金額, uchar 低, uchar 高);
uint rsClamp(uint 量, uint low, uint high);
ushort rsClamp(ushort の金額、ushort の低、ushort の高)。
パラメータ
発売額クランプする値です。
下限。
上限。

非推奨。代わりに clamp() を使用してください。

低~高の値でクランプします。

rsFrac : float の小数部を返します

float rsFrac(float v);

非推奨。代わりに fract() を使用してください。

float 型の小数部を返します。

rsRand : 擬似乱数

float 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 : 値の符号

浮動小数点数記号(浮動小数点数 v)
float2 記号(float2 v);
float3 記号(float3 v);
float4 記号(float4 v);
半分記号(2 分の 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) return 1.f; else return 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 : 数値に円周率を乗じた正弦

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 step(float edge, float2 v); API レベル 21 で追加されました
float2 step(float2 edge, float v);
float2 step(float2 edge, float2 v);
float3 steps(float edge, float3 v); API レベル 21 で追加されました
float3 step(float3 edge, float v);
float3 step(float3 edge, float3 v);
float4 step(float 端, float4 v); API レベル 21 で追加されました
float4 step(float4 edge, float v);
float4 step(float4 edge, float4 v);
half ステップ(half edge, half v) API レベル 24 で追加されました
half2 ステップ(half edge, half2 v); API レベル 24 で追加されました
half2 ステップ(half2 edge, half v); API レベル 24 で追加されました
half2 ステップ(half2 edge, half2 v); API レベル 24 で追加されました
half3 ステップ(half edge, half3 v); API レベル 24 で追加されました
half3 ステップ(half3 edge, half v); API レベル 24 で追加されました
half3 ステップ(half3 edge, half3 v); API レベル 24 で追加されました
half4 ステップ(half edge, half4 v); API レベル 24 で追加されました
half4 ステップ(half4 edge, half v); API レベル 24 で追加されました
half4 ステップ(half4 edge, half4 v); API レベル 24 で追加されました

v < edge の場合は 0.f を返します。それ以外の場合は 1.f を返します。

これは、ループや分岐命令を使用せずに条件付き計算を作成する場合に便利です。たとえば、ベクトルの対応する要素の (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) を計算する代わりに、step(a, b) * atan2(a, b) を使用できます。

tan : タンジェント

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 : 数値に円周率を乗じたタンジェント

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 : ガンマ関数

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 で追加されました

値のガンマ関数を返します。

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() をご覧ください。