|
LMMC
Lamina Mathematic core
|
数值常量、标量分类与近似比较。 更多...
函数 | |
| lmmc_status_t | lmmc_inf (lmmc_real_t *out_inf) |
| 写入 IEEE-754 正无穷. | |
| lmmc_status_t | lmmc_nan (lmmc_real_t *out_nan) |
| 写入 IEEE-754 NaN. | |
| lmmc_status_t | lmmc_eps (lmmc_real_t *out_eps) |
| 写入机器精度(1 与下一个可表示数的差). | |
| lmmc_status_t | lmmc_isnan (lmmc_real_t x, int *out_isnan) |
检测是否为 NaN ,结果写入 *out_isnan (0/1). | |
| lmmc_status_t | lmmc_isinf (lmmc_real_t x, int *out_isinf) |
| 检测是否为 +/-infinity . | |
| lmmc_status_t | lmmc_isfinite (lmmc_real_t x, int *out_isfinite) |
| 检测是否为有限数(非 NaN 且非 +/-infinity). | |
| lmmc_status_t | lmmc_signbit (lmmc_real_t x, int *out_signbit) |
| 检测符号位(含 -0 ). | |
| lmmc_status_t | lmmc_approx_eq (lmmc_real_t a, lmmc_real_t b, lmmc_real_t epsilon, int *out_equal) |
| 按绝对容差比较: \(|a-b| \le \epsilon\)。 | |
| lmmc_status_t | lmmc_double_nearly_equal_tol (lmmc_real_t a, lmmc_real_t b, lmmc_real_t abs_tol, lmmc_real_t rel_tol, int *out_equal) |
| 同时考虑绝对与相对容差的近似相等判定. | |
| lmmc_status_t | lmmc_double_nearly_equal (lmmc_real_t a, lmmc_real_t b, int *out_equal) |
| 使用默认容差的近似相等比较,等价于以 LMMC_DEFAULT_ABS_TOL / LMMC_DEFAULT_REL_TOL 调用 lmmc_double_nearly_equal_tol . | |
数值常量、标量分类与近似比较。
在文件 numeric.c 中定义.
| lmmc_status_t lmmc_inf | ( | lmmc_real_t * | out_inf | ) |
写入 IEEE-754 正无穷.
引用了 lmmc_inf(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_inf().
| lmmc_status_t lmmc_nan | ( | lmmc_real_t * | out_nan | ) |
写入 IEEE-754 NaN.
引用了 lmmc_nan(), LMMC_REAL_CLEAR, LMMC_REAL_DIV, LMMC_REAL_INIT, LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_nan().
| lmmc_status_t lmmc_eps | ( | lmmc_real_t * | out_eps | ) |
写入机器精度(1 与下一个可表示数的差).
引用了 lmmc_eps(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_eps().
| lmmc_status_t lmmc_isnan | ( | lmmc_real_t | x, |
| int * | out_isnan ) |
检测是否为 NaN ,结果写入 *out_isnan (0/1).
引用了 lmmc_isnan(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_isnan().
| lmmc_status_t lmmc_isinf | ( | lmmc_real_t | x, |
| int * | out_isinf ) |
检测是否为 +/-infinity .
引用了 lmmc_isinf(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_isinf().
| lmmc_status_t lmmc_isfinite | ( | lmmc_real_t | x, |
| int * | out_isfinite ) |
检测是否为有限数(非 NaN 且非 +/-infinity).
引用了 lmmc_isfinite(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_isfinite().
| lmmc_status_t lmmc_signbit | ( | lmmc_real_t | x, |
| int * | out_signbit ) |
检测符号位(含 -0 ).
引用了 lmmc_signbit(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_signbit().
| lmmc_status_t lmmc_approx_eq | ( | lmmc_real_t | a, |
| lmmc_real_t | b, | ||
| lmmc_real_t | epsilon, | ||
| int * | out_equal ) |
按绝对容差比较: \(|a-b| \le \epsilon\)。
| [in] | a | 第一个比较值. |
| [in] | b | 第二个比较值. |
| [in] | epsilon | 有限且非负的绝对容差. |
| [out] | out_equal | 输出比较结果. |
引用了 lmmc_approx_eq(), LMMC_REAL_CLEAR, LMMC_REAL_CMP, LMMC_REAL_INIT, LMMC_REAL_SET, LMMC_REAL_SET_D, LMMC_REAL_SUB, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_approx_eq().
| lmmc_status_t lmmc_double_nearly_equal_tol | ( | lmmc_real_t | a, |
| lmmc_real_t | b, | ||
| lmmc_real_t | abs_tol, | ||
| lmmc_real_t | rel_tol, | ||
| int * | out_equal ) |
同时考虑绝对与相对容差的近似相等判定.
判定条件: \(|a-b| \le \max(\mathrm{abs\_tol},\; \mathrm{rel\_tol}\cdot\max(|a|,|b|))\) .
| [in] | a | 第一个比较值. |
| [in] | b | 第二个比较值. |
| [in] | abs_tol | 绝对容差(>= 0). |
| [in] | rel_tol | 相对容差(>= 0). |
| [out] | out_equal | 输出比较结果:1 表示近似相等,0 表示不等. |
引用了 lmmc_double_nearly_equal_tol(), LMMC_REAL_ABS, LMMC_REAL_CLEAR, LMMC_REAL_CMP, LMMC_REAL_INIT, LMMC_REAL_IS_FINITE, LMMC_REAL_MUL, LMMC_REAL_SET_D, LMMC_REAL_SUB, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_double_nearly_equal() , 以及 lmmc_double_nearly_equal_tol().
| lmmc_status_t lmmc_double_nearly_equal | ( | lmmc_real_t | a, |
| lmmc_real_t | b, | ||
| int * | out_equal ) |
使用默认容差的近似相等比较,等价于以 LMMC_DEFAULT_ABS_TOL / LMMC_DEFAULT_REL_TOL 调用 lmmc_double_nearly_equal_tol .
引用了 LMMC_DEFAULT_ABS_TOL, LMMC_DEFAULT_REL_TOL, lmmc_double_nearly_equal(), lmmc_double_nearly_equal_tol(), LMMC_REAL_CLEAR, LMMC_REAL_INIT , 以及 LMMC_REAL_SET_D.
被这些函数引用 lmmc_double_nearly_equal().