|
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 行目に定義があります。
