数学モジュール
[詳解]
#include <complex.h>
#include <stdbool.h>
[ソースコード]
|
#define | invlerp(from, to, value) |
| 逆線形補間を行う。
|
#define | clamp(value, low, high) |
| 値を範囲内に収める。
|
◆ clamp
#define clamp |
( |
| value, |
|
|
| low, |
|
|
| high ) |
値: ((value) < (low) ? (low) : (high) < (value) ? (high) : (value))
値を範囲内に収める。
valueを[low, high]に収める。
- 引数
-
[in] | value | 値 |
[in] | low | 下限 |
[in] | high | 上限 |
- 戻り値
-
low | valueがlowより小さい |
high | valueがhighより大きい |
value | valueが[low, high]に収まっていた |
- 事前条件
- low ≤ highでなければならない。
◆ invlerp
#define invlerp |
( |
| from, |
|
|
| to, |
|
|
| value ) |
値:(((value) - (from)) / ((to) - (from)))
逆線形補間を行う。
fromからtoまでの区間のうち、割合valueの地点の値を返す。
- 引数
-
[in] | from | 始点 |
[in] | to | 終点 |
[in] | value | 割合 |
- 戻り値
- その地点の値
◆ approx()
bool approx |
( |
double | a, |
|
|
double | b ) |
2つの浮動小数点数の近似等価比較を行う。
- 引数
-
- 戻り値
-
true | 近似的に等価である |
false | 近似的に不等である |
◆ approxf()
bool approxf |
( |
float | a, |
|
|
float | b ) |
◆ approxl()
bool approxl |
( |
long double | a, |
|
|
long double | b ) |
◆ cart2pol()
polar_t cart2pol |
( |
SL_FP_T | x, |
|
|
SL_FP_T | y ) |
直交座標を極座標へ変換する。
- 引数
-
[in] | x | X座標(右が正) |
[in] | y | Y座標(上が正) |
- 戻り値
- 極座標
◆ create_cart()
cart_t create_cart |
( |
SL_FP_T | x, |
|
|
SL_FP_T | y ) |
直交座標型を作成する。
- 引数
-
[in] | x | X座標(右が正) |
[in] | y | Y座標(上が正) |
- 戻り値
- 直交座標型
◆ create_polar()
polar_t create_polar |
( |
SL_FP_T | r, |
|
|
SL_FP_T | theta ) |
極座標型を作成する。
- 引数
-
[in] | r | 動径 |
[in] | theta | 角度(右0・反時計回り) [rad] |
- 戻り値
- 極座標型
◆ dot()
二次元ベクトルの内積を計算する。
- 引数
-
- 戻り値
- aとbの内積
◆ pol2cart()
cart_t pol2cart |
( |
SL_FP_T | r, |
|
|
SL_FP_T | theta ) |
極座標を直交座標へ変換する。
- 引数
-
[in] | r | 動径 |
[in] | theta | 角度(右0・反時計回り) [rad] |
- 戻り値
- 直交座標
◆ vec_scale()
ベクトルをスカラー倍する。
- 引数
-
- 戻り値
- vecの各成分をscaler倍したベクトル