RT-AICHIP-sample
tinyMathFunction.h ファイル
被依存関係図:

[ソースコード]

マクロ定義

#define PI   (3.1415926f)
 
#define ABS(IN)   ((IN) < 0 ? - (IN) : (IN))
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define SWAP(a, b)   ((a != b) && (a += b,b = a - b,a -= b))
 
#define MAX3(a, b, c)   ((a) > (MAX(b, c)) ? (a) : (MAX(b, c)))
 
#define MAX4(a, b, c, d)   ((a) > (MAX3(b, c, d)) ? (a) : (MAX3(b, c, d)))
 
#define MIN3(a, b, c)   ((a) < (MIN(b, c)) ? (a) : (MIN(b, c)))
 
#define MIN4(a, b, c, d)   ((a) < (MIN3(b, c, d)) ? (a) : (MIN3(b, c, d)))
 
#define SIGN(x)   ((x<0)?(-1):((x>0)?1:0))
 
#define DEG2RAD(deg)   (((deg) * PI) / 180.0)
 
#define RAD2DEG(rad)   (((rad) * 180.0) / 3.1415926535)
 

関数

float tInvSqrt (float x)
 
float tSqrt (float x)
 
void quickSort (int numbers[], int left, int right)
 

マクロ定義詳解

#define ABS (   IN)    ((IN) < 0 ? - (IN) : (IN))

tinyMathFunction.h12 行目に定義があります。

#define DEG2RAD (   deg)    (((deg) * PI) / 180.0)

tinyMathFunction.h21 行目に定義があります。

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

tinyMathFunction.h13 行目に定義があります。

#define MAX3 (   a,
  b,
 
)    ((a) > (MAX(b, c)) ? (a) : (MAX(b, c)))

tinyMathFunction.h16 行目に定義があります。

#define MAX4 (   a,
  b,
  c,
 
)    ((a) > (MAX3(b, c, d)) ? (a) : (MAX3(b, c, d)))

tinyMathFunction.h17 行目に定義があります。

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

tinyMathFunction.h14 行目に定義があります。

#define MIN3 (   a,
  b,
 
)    ((a) < (MIN(b, c)) ? (a) : (MIN(b, c)))

tinyMathFunction.h18 行目に定義があります。

#define MIN4 (   a,
  b,
  c,
 
)    ((a) < (MIN3(b, c, d)) ? (a) : (MIN3(b, c, d)))

tinyMathFunction.h19 行目に定義があります。

#define PI   (3.1415926f)

tinyMathFunction.h4 行目に定義があります。

#define RAD2DEG (   rad)    (((rad) * 180.0) / 3.1415926535)

tinyMathFunction.h22 行目に定義があります。

#define SIGN (   x)    ((x<0)?(-1):((x>0)?1:0))

tinyMathFunction.h20 行目に定義があります。

#define SWAP (   a,
 
)    ((a != b) && (a += b,b = a - b,a -= b))

tinyMathFunction.h15 行目に定義があります。

関数詳解

void quickSort ( int  numbers[],
int  left,
int  right 
)

クイックソートの実装

引数
numbers[]配列
leftクイックソートする区間の左端
rightクイックソートする区間の右端
戻り値
acosの値

tinyMathFunctions.c79 行目に定義があります。

被呼び出し関係図:

float tInvSqrt ( float  x)

高速なinvSqrt(x)の実装.
ニュートン法を一回実行するごとにfloatの乗算が3回必要
INVSQRT_NEWTON_METHOD_NUMでニュートン法の適用回数を決める
math.hのsqrt()に対して
0:誤差は ±0.05以下
1:誤差は ±0.005以下
2:誤差は ±0.000005以下
3:誤差は ほぼなし

引数
x定義域は[-1.0,1.0]
戻り値
acosの値

tinyMathFunctions.c26 行目に定義があります。

float tSqrt ( float  x)

高速なsqrt(x)の実装.
invSqrt(x)*xでsqrt(x)を計算
invSqrt(x)のニュートン法ステップ3回でほぼ誤差なしになる.

引数
x定義域は[-1.0,1.0]
戻り値
acosの値

tinyMathFunctions.c47 行目に定義があります。

被呼び出し関係図: