# 数学関数(MATH) API 機能一覧

### ユーティリティ関数

MATH_IAbs |  | int型引数の絶対値を返します。(インライン関数)
MATH_IMin |  | 2つの int 同士を比較して小さいほうを返します。（インライン関数）
MATH_IMax |  | 2つの int 同士を比較して大きいほうを返します。（インライン関数）
MATH_ABS |  | 引数の絶対値を返します。(関数マクロ・副作用有り)
MATH_MIN |  | 2つの数値を比較して小さいほうを返します。（関数マクロ・副作用有り）
MATH_MAX |  | 2つの数値を比較して大きいほうを返します。（関数マクロ・副作用有り）
MATH_CLAMP |  | 第1引数をlowからhighの範囲に収めた値を返します。(関数マクロ・副作用有り)
MATH_ROUNDUP |  | 第1引数を第2引数の倍数に切り上げた値を返します。（関数マクロ）
MATH_ROUNDDOWN |  | 第1引数を第2引数の倍数に切り下げた値を返します。（関数マクロ）
MATH_ROUNDUP32 |  | 引数を32の倍数に切り上げた値を返します。（関数マクロ）
MATH_ROUNDDOWN32 |  | 引数を32の倍数に切り下げた値を返します。（関数マクロ）

### 整数演算

MATH_ILog2 |  | u32値に対し、2を底とした対数の整数部分を返します。

### ビット演算

MATH_CountLeadingZeros |  | 2進数32ビット表現で先頭からの0の個数を求めます。
MATH_CLZ |  | MATH_CountLeadingZeros の別名です。
MATH_CountTrailingZeros |  | 2進数32ビット表現で末尾からの0の個数を求めます。
MATH_CTZ |  | MATH_CountTrailingZeros の別名です。
MATH_GetLeastSignificantBit |  | 2進数32ビット表現で1になっている最下位ビットを求めます。
MATH_LSB |  | MATH_GetLeastSignificantBit の別名です。
MATH_GetMostSignificantBit |  | 2進数32ビット表現で1になっている最上位ビットを求めます。
MATH_MSB |  | MATH_GetMostSignificantBit の別名です。
MATH_CountPopulation |  | 2進数32ビット表現で1が立っている個数を求めます。

### 乱数関連

MATH_InitRand* |  | 線形合同法による乱数の初期化を行ないます。
MATH_Rand* |  | 線形合同法による乱数を取得します。
MATHRandContext* |  | 線形合同法による乱数のコンテキスト構造体です。

### ソート関連

MATH_QSort |  | クイックソートをおこないます。
MATH_QSortStackSize |  | クイックソートの際に必要なバッファサイズを取得します。
MATHCompareFunc |  | クイックソートの際に設定する比較関数型です。

### 高速フーリエ変換関連

MATH_MakeFFTSinTable |  | 高速フーリエ変換のための sin 値のテーブルを作成します。
MATH_FFT |  | 複素数列の高速フーリエ変換をおこないます。
MATH_IFFT |  | 複素数列の高速フーリエ変換の逆変換をおこないます。
MATH_FFTReal |  | 実数列の高速フーリエ変換をおこないます。
MATH_IFFTReal |  | 実数列の高速フーリエ変換の逆変換をおこないます。

### ハッシュ値関連

MATH_Checksum*Init |  | 各種 Checksum によるハッシュ計算を行うためのコンテキスト構造体を初期化します。
MATH_Checksum*Update |  | 各種 Checksum によるハッシュ値を入力データで更新します。
MATH_Checksum*GetHash |  | 各種 Checksum によるハッシュ値をコンテキスト構造体から取り出します。
MATHChecksum*Context |  | 各種 Checksum によるハッシュ計算を行うためのコンテキスト構造体です。
MATH_CalcChecksum* |  | 各種 Checksum によるハッシュ値を1関数で計算する関数です。
MATH_CRC*InitTable |  | 各種 CRC によるハッシュ計算を行うためのテーブルを初期化します。
MATH_CRC*Init |  | 各種 CRC によるハッシュ計算を行うためのコンテキスト構造体を初期化します。
MATH_CRC*Update |  | 各種 CRC によるハッシュ値を入力データで更新します。
MATH_CRC*GetHash |  | 各種 CRC によるハッシュ値をコンテキスト構造体から取り出します。
MATHCRC*Table |  | 各種 CRC によるハッシュ計算を行うためのテーブルの構造体です。
MATHCRC*Context |  | 各種 CRC によるハッシュ計算を行うためのコンテキスト構造体です。
MATH_CalcCRC* |  | 各種 CRC によるハッシュ値を1関数で計算するユーティリティ関数です。

### メッセージダイジェスト関連

MATH_SHA1Init |  | SHA1 によるメッセージダイジェスト計算を行うためのコンテキスト構造体を初期化します。
MATH_SHA1Update |  | SHA1 によるメッセージダイジェスト値を入力データで更新します。
MATH_SHA1GetHash |  | SHA1 によるメッセージダイジェスト値をコンテキスト構造体から取り出します。
MATHSHA1Context |  | SHA1 によるメッセージダイジェスト計算を行うためのコンテキスト構造体です。
MATH_CalcSHA1 |  | SHA1 によるメッセージダイジェスト値を1関数で計算するユーティリティ関数です。
MATH_CalcHMACSHA1 |  | HMAC-SHA1 による鍵付ハッシュ値を計算します。
MATH_SHA256Init |  | SHA256 によるメッセージダイジェスト計算を行うためのコンテキスト構造体を初期化します。
MATH_SHA256Update |  | SHA256 によるメッセージダイジェスト値を入力データで更新します。
MATH_SHA256GetHash |  | SHA256 によるメッセージダイジェスト値をコンテキスト構造体から取り出します。
MATHSHA256Context |  | SHA256 によるメッセージダイジェスト計算を行うためのコンテキスト構造体です。
MATH_CalcSHA256 |  | SHA256 によるメッセージダイジェスト値を1関数で計算するユーティリティ関数です。
MATH_CalcHMACSHA256 |  | HMAC-SHA256 による鍵付ハッシュ値を計算します。