概要
以下の数学関数は、スカラーとベクトルに適用できます。ベクトルに適用した場合、入力の各エントリに適用される関数のベクトルが返されます。
次に例を示します。
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 の指数に設定されます。 |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 : 自然対数
| 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 で追加されました |
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 が返されます。
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 で追加されました |
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 : 底を整数の指数に累乗する
| 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 で追加されました |
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 で追加されました |
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, ") は、引用符の下位 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 で追加されました |
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 で追加されました |
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() を使用してください。
低~高の値でクランプします。
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 で追加されました |
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 で追加されました |