RT-AICHIP-sample
|
マクロ定義 | |
#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.h の 12 行目に定義があります。
#define DEG2RAD | ( | deg | ) | (((deg) * PI) / 180.0) |
tinyMathFunction.h の 21 行目に定義があります。
#define MAX | ( | a, | |
b | |||
) | ((a) > (b) ? (a) : (b)) |
tinyMathFunction.h の 13 行目に定義があります。
tinyMathFunction.h の 16 行目に定義があります。
tinyMathFunction.h の 17 行目に定義があります。
#define MIN | ( | a, | |
b | |||
) | ((a) < (b) ? (a) : (b)) |
tinyMathFunction.h の 14 行目に定義があります。
tinyMathFunction.h の 18 行目に定義があります。
tinyMathFunction.h の 19 行目に定義があります。
#define PI (3.1415926f) |
tinyMathFunction.h の 4 行目に定義があります。
#define RAD2DEG | ( | rad | ) | (((rad) * 180.0) / 3.1415926535) |
tinyMathFunction.h の 22 行目に定義があります。
#define SIGN | ( | x | ) | ((x<0)?(-1):((x>0)?1:0)) |
tinyMathFunction.h の 20 行目に定義があります。
#define SWAP | ( | a, | |
b | |||
) | ((a != b) && (a += b,b = a - b,a -= b)) |
tinyMathFunction.h の 15 行目に定義があります。
void quickSort | ( | int | numbers[], |
int | left, | ||
int | right | ||
) |
クイックソートの実装
numbers[] | 配列 |
left | クイックソートする区間の左端 |
right | クイックソートする区間の右端 |
tinyMathFunctions.c の 79 行目に定義があります。
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] |
tinyMathFunctions.c の 26 行目に定義があります。
float tSqrt | ( | float | x | ) |
高速なsqrt(x)の実装.
invSqrt(x)*xでsqrt(x)を計算
invSqrt(x)のニュートン法ステップ3回でほぼ誤差なしになる.
x | 定義域は[-1.0,1.0] |
tinyMathFunctions.c の 47 行目に定義があります。