MATH ユーティリティ関数群

構文

#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 & を &amp; に修正
2004/12/14 初版