

#include <nitro/math.h>
static inline int MATH_IAbs( int a );
static inline int MATH_IMin( int a, int b );
static inline int MATH_IMax( int a, int b );
MATH_ABS( a );
MATH_MIN( a, b );
MATH_MAX( a, b );
MATH_CLAMP( x, low, high );
MATH_ROUNDUP( x, base );
MATH_ROUNDDOWN( x, base );
MATH_ROUNDUP32( x );
MATH_ROUNDDOWN32( x );
ユーティリティ関数群です。
| MATH_IAbs | int 型の引数の絶対値を返すインライン関数です。 |
| MATH_IMin | 2つの int 型の引数のうち、小さいほうを返すインライン関数です。 |
| MATH_IMax | 2つの int 型の引数のうち、大きいほうを返すインライン関数です。 |
| MATH_ABS | 引数の絶対値を返す関数マクロです。 各引数が2回評価される場合がありますので、副作用のある式を引数に入れてはいけません。 |
| MATH_MIN | 2 引数のうち、小さいほうを返す関数マクロです。 各引数が2回評価される場合がありますので、副作用のある式を引数に入れてはいけません。 |
| MATH_MAX | 2 引数のうち、大きいほうを返す関数マクロです。 各引数が2回評価される場合がありますので、副作用のある式を引数に入れてはいけません。 |
| MATH_CLAMP | 引数をlowからhighの範囲に収めた値を返す関数マクロです。 各引数が2回評価される場合がありますので、副作用のある式を引数に入れてはいけません。 |
| MATH_ROUNDUP | 第1引数 x を第2引数 base の倍数に切り上げた値を返す関数マクロです。すなわち x 以上の最小の base の倍数を返します。base は 2 のべき乗でなければなりません。 |
| MATH_ROUNDDOWN | 第1引数 x を第2引数 base の倍数に切り下げた値を返す関数マクロです。すなわち x 以下の最大の base の倍数を返します。base は 2 のべき乗でなければなりません。 |
| MATH_ROUNDUP32 | 引数を32の倍数に切り上げた値を返す関数マクロです。MATH_ROUNDUP(x, 32) と等価です。 |
| MATH_ROUNDDOWN32 | 引数を32の倍数に切り下げた値を返す関数マクロです。MATH_ROUNDDOWN(x, 32) と等価です。 |
#define MATH_ABS(a) ( ( (a) < 0 ) ? (-(a)) : (a) ) #define MATH_MIN(a,b) (((a) <= (b)) ? (a) : (b)) #define MATH_MAX(a,b) (((a) >= (b)) ? (a) : (b)) #define MATH_CLAMP(x, low, high) ( ( (x) > (high) ) ? (high) : ( ( (x) < (low) ) ? (low) : (x) ) ) #define MATH_ROUNDUP(x, base) (((x) + ((base)-1)) & ~((base)-1)) #define MATH_ROUNDDOWN(x, base) ((x) & ~((base)-1)) #define MATH_ROUNDUP32(x) MATH_ROUNDUP(x, 32) #define MATH_ROUNDDOWN32(x) MATH_ROUNDDOWN(x, 32)
なし
2005/06/02 & を & に修正
2004/12/14 初版