固定小数関連 API 機能一覧

データ型

固定小数型

fx16 s3.12形式の固定小数を表す型です。s16のtypedefです。
fx32 s19.12形式の固定小数を表す型です。s32のtypedefです。
fx64 s41.12形式の固定小数を表す型です。s64のtypedefです。
fx64c s31.32形式の固定小数を表す型です。s64のtypedefです。

行列・ベクトル型

MtxFx22 2x2行列で要素の型はfx32です。
MtxFx33 3x3行列で要素の型はfx32です。
MtxFx43 4x3行列で要素の型はfx32です。
MtxFx44 4x4行列で要素の型はfx32です。
VecFx32 3次元ベクトルで要素の型はfx32です。

初期化

初期化

FX_Init 固定小数APIの初期化です。

計算

固定小数の計算

FX_Whole 小数点以下を切り捨て結果を整数として返します。
FX_Floor 小数点以下を切り捨てます。
FX_Mul fx32型同士の乗算を行います。
FX_Mul32x64c fx32型とfx64c型の乗算を行います。
FX_Div fx32型同士の除算を行います。
FX_DivFx64c fx32型同士の除算を行い、結果をfx64c型で返します。
FX_Sqrt fx32型の平方根を計算します。
FX_InvSqrt fx32型の平方根の逆数を計算します。
FX_Inv fx32型の逆数を計算します。
FX_InvFx64c fx32型の逆数を計算し、結果をfx64c型で返します。
FX_SinIdx 正弦を計算します。16ビットのインデックスを受け取り、結果をfx16型で返します(テーブル引き)。
FX_CosIdx 余弦を計算します。16ビットのインデックスを受け取り、結果をfx16型で返します(テーブル引き)。
FX_SinFx64c 正弦を計算します。fx32型でラジアンを受け取り、結果をfx64c型で返します(精度が必要な場合)。
FX_CosFx64c 余弦を計算します。fx32型でラジアンを受け取り、結果をfx64c型で返します(精度が必要な場合)。
FX_Atan 逆正接を計算します。fx32型を受け取り、結果をfx16型で返します(テーブル引き)
FX_Atan2 逆正接を計算します。(y,x)をfx32型で受け取り、結果をfx16型で返します(テーブル引き)

固定小数の計算(非同期版)

FX_DivAsync 非同期の除算を行います。
FX_DivAsyncImm 非同期の除算を行います。除算モードの設定も行いません。
FX_GetDivResultFx64c 非同期除算の計算結果をfx64型で取得します。
FX_GetDivResult 非同期除算の計算結果をfx32型で取得します。
FX_InvAsync 非同期で逆数の計算を行います。
FX_InvAsyncImm 非同期で逆数の計算を行います。除算モードの設定も行いません。
FX_GetInvResultFx64c FX_GetDivResultAsyncFx64cと同様です。
FX_GetInvResult FX_GetDivResultAsyncと同様です。
FX_SqrtAsync 非同期で平方根計算を行います。
FX_SqrtAsyncImm 非同期で平方根計算を行います。SQRT演算モードの設定も行いません。
FX_GetSqrtResult 非同期平方根計算の結果をfx32型で取得します。

3x3行列計算

MTX_Identity33 単位行列をセットします。
MTX_Copy33To43 行列をコピーします。
MTX_Copy33To44 行列をコピーします。
MTX_Transpose33 転置行列をセットします。
MTX_Scale33 スケール行列をセットします。
MTX_ScaleApply33 スケール行列を左から乗じます。
MTX_RotX33 X軸に関する回転行列をセットします。
MTX_RotY33 Y軸に関する回転行列をセットします。
MTX_RotZ33 Z軸に関する回転行列をセットします。
MTX_RotAxis33 任意の軸に関する回転行列を左から乗じます。
MTX_Inverse33 逆行列を求めます。
MTX_Concat33 行列の乗算を行います。
MTX_MultVec33 行列にベクトルを左から乗じます。

4x3行列計算

MTX_Identity43 単位行列をセットします。
MTX_Copy43To33 行列をコピーします。
MTX_Copy43To44 行列をコピーします。
MTX_Transpose43 転置行列をセットします。
MTX_Scale43 スケール行列をセットします。
MTX_ScaleApply43 スケール行列を左から乗じます。
MTX_RotX43 X軸に関する回転行列をセットします。
MTX_RotY43 Y軸に関する回転行列をセットします。
MTX_RotZ43 Z軸に関する回転行列をセットします。
MTX_RotAxis43 任意の軸に関する回転行列を左から乗じます。
MTX_Inverse43 逆行列を求めます。
MTX_Concat43 行列の乗算を行います。
MTX_MultVec43 行列にベクトルを左から乗じます。

4x4行列計算

MTX_Identity44 単位行列をセットします。
MTX_Copy44To33 行列をコピーします。
MTX_Copy44To43 行列をコピーします。
MTX_Transpose44 転置行列をセットします。
MTX_Scale44 スケール行列をセットします。
MTX_ScaleApply44 スケール行列を左から乗じます。
MTX_RotX44 X軸に関する回転行列をセットします。
MTX_RotY44 Y軸に関する回転行列をセットします。
MTX_RotZ44 Z軸に関する回転行列をセットします。
MTX_RotAxis44 任意の軸に関する回転行列を左から乗じます。
MTX_Concat44 行列の乗算を行います。

ベクトル計算

VEC_Add 2つの3次元ベクトルを加算します。
VEC_Subtract 2つの3次元ベクトルを減算します。
VEC_DotProduct 3次元ベクトルの内積を計算します。
VEC_CrossProduct 3次元ベクトルの外積を計算します。
VEC_Mag 3次元ベクトルの長さを求めます。
VEC_Normalize 3次元ベクトルを正規化します。

マクロ

fx16型用のマクロ

FX16_SHIFT fx16型のためのシフト数(12)が定義されています。
FX16_INT_SIZE fx16型の整数部分のビット幅(3)が定義されています。
FX16_DEC_SIZE fx16型の小数部分のビット幅(12)が定義されています。
FX16_INT_MASK fx16型の整数部分のマスク(0x7000)が定義されています。
FX16_DEC_MASK fx16型の小数部分のマスク(0x0fff)が定義されています。
FX16_SIGN_MASK fx16型の符号部分のマスク(0x8000)が定義されています。
FX16_MAX fx16型が取りうる最大値(0x7fff)が定義されています。
FX16_MIN fx16型が取りうる最小値(0x8000)が定義されています。

fx32型用のマクロ

FX32_SHIFT fx32型のためのシフト数(12)が定義されています。
FX32_INT_SIZE fx32型の整数部分のビット幅(19)が定義されています。
FX32_DEC_SIZE fx32型の小数部分のビット幅(12)が定義されています。
FX32_INT_MASK fx32型の整数部分のマスク(0x7ffff000)が定義されています。
FX32_DEC_MASK fx32型の小数部分のマスク(0x0fff)が定義されています。
FX32_SIGN_MASK fx32型の符号部分のマスク(0x80000000)が定義されています。
FX32_MAX fx32型が取りうる最大値(0x7fffffff)が定義されています。
FX32_MIN fx32型が取りうる最小値(0x80000000)が定義されています。
FX_MUL fx32型同士の乗算マクロです。
FX_MUL32x64C fx32型とfx64c型の乗算マクロです。
FX_FX32_TO_F32 fx32型をf32型に変換します。
FX_F32_TO_FX32 f32型をfx32型に変換します。

fx64型用のマクロ

FX64_SHIFT fx64型のためのシフト数(12)が定義されています。
FX64_INT_SIZE fx64型の整数部分のビット幅(51)が定義されています。
FX64_DEC_SIZE fx64型の小数部分のビット幅(12)が定義されています。
FX64_INT_MASK fx64型の整数部分のマスクが定義されています。
FX64_DEC_MASK fx64型の小数部分のマスク(0x0fff)が定義されています。
FX64_SIGN_MASK fx64型の符号部分のマスクが定義されています。
FX64_MAX fx64型が取りうる最大値が定義されています。
FX64_MIN fx64型が取りうる最小値が定義されています。

fx64c型用のマクロ

FX64C_SHIFT fx64c型のためのシフト数(32)が定義されています。
FX64C_INT_SIZE fx64c型の整数部分のビット幅(31)が定義されています。
FX64C_DEC_SIZE fx64c型の小数部分のビット幅(32)が定義されています。
FX64C_INT_MASK fx64c型の整数部分のマスク(0x7fffffff00000000)が定義されています。
FX64C_DEC_MASK fx64c型の小数部分のマスク(0x00000000ffffffff)が定義されています。
FX64C_SIGN_MASK fx64c型の符号部分のマスク(0x8000000000000000)が定義されています。
FX64C_MAX fx64c型が取りうる最大値が定義されています。
FX64C_MIN fx64c型が取りうる最小値が定義されています。

定数

fx16型の定数

FX16_ONE 1です。
FX16_SQRT2 2の平方根です。
FX16_SQRT1_2 1/2の平方根です。
FX16_SQRT3 3の平方根です。
FX16_SQRT1_3 1/3の平方根です。

fx32型の定数

FX32_ONE 1です。
FX32_SQRT2 2の平方根です。
FX32_SQRT1_2 1/2の平方根です。
FX32_SQRT3 3の平方根です。
FX32_SQRT1_3 1/3の平方根です。
FX32_SIN[0-359] 0度から359度までの正弦です。
FX32_COS[0-359] 0度から359度までの余弦です。

fx64c型の定数

FX64C_E 自然対数の底です。
FX64C_LOG2E log2(e)です。
FX64C_LOG10E log10(e)です。
FX64C_LN2 ln(2)です。
FX64C_LN10 ln(10)です。
FX64C_PI πです。
FX64C_TWOPI 2πです。
FX64C_PI_2 π/2です。
FX64C_PI_4 π/4です。
FX64C_3PI_4 3π/4です。
FX64C_SQRTPI πの平方根です。
FX64C_1_PI 1/πです。
FX64C_2_PI 2/πです。
FX64C_2_SQRTPI 2/sqrt(π)です。
FX64C_SQRT2 2の平方根です。
FX64C_SQRT1_2 1/2の平方根です。
FX64C_SQRT3 3の平方根です。
FX64C_SQRT1_3 1/3の平方根です。
FX64C_IVLN10 1/ln(10)です。
FX64C_LOG2_E 1/log2(e)です。
FX64C_INVLN2 1/ln(2)です。
FX64C_1_360 1/360です。
FX64C_TWOPI_360 2π/360です。
FX64C_360_TWOPI 360/2πです。
FX64C_65536_TWOPI 65536/2πです。
FX64C_65536_360 65536/360です。
FX64C_TWOPI_65536 2π/65536です。
FX64C_360_65536 360/65536です。
FX64C_[1-99]_100 1/100から99/100です。