1#ifndef LMMC_NUMERIC_SCALAR_H
2#define LMMC_NUMERIC_SCALAR_H
14#define LMMC_PI (3.14159265358979323846)
18#define LMMC_INV_PI (0.31830988618379067154)
22#define LMMC_SQRT2 (1.41421356237309504880)
26#define LMMC_INV_E (0.36787944117144232160)
29#ifndef LMMC_DEFAULT_ABS_TOL
31#define LMMC_DEFAULT_ABS_TOL 1e-12
33#ifndef LMMC_DEFAULT_REL_TOL
35#define LMMC_DEFAULT_REL_TOL 1e-10
LMMC binary real type and arithmetic spelling.
double lmmc_real_t
Public and internal LMMC real type.
lmmc_status_t lmmc_expm1(lmmc_real_t x, lmmc_real_t *out_res)
计算 ,对小 x 更精确.
lmmc_status_t lmmc_asin(lmmc_real_t x, lmmc_real_t *out)
实标量函数的公共状态约定。
lmmc_status_t lmmc_cosh(lmmc_real_t x, lmmc_real_t *out)
计算双曲余弦 .
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_status_t lmmc_log1p(lmmc_real_t x, lmmc_real_t *out_res)
计算 ,对小 x 更精确.
lmmc_status_t lmmc_atan2(lmmc_real_t y, lmmc_real_t x, lmmc_real_t *out_res)
计算 .
lmmc_status_t lmmc_sinh(lmmc_real_t x, lmmc_real_t *out)
计算双曲正弦 .
lmmc_status_t lmmc_fmod(lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out_res)
计算浮点余数,结果符号与 x 相同,幅值小于 y 的幅值.
lmmc_status_t lmmc_isfinite(lmmc_real_t x, int *out_isfinite)
检测是否为有限数(非 NaN 且非 +/-infinity).
lmmc_status_t lmmc_isnan(lmmc_real_t x, int *out_isnan)
检测是否为 NaN ,结果写入 *out_isnan (0/1).
lmmc_status_t lmmc_ceil(lmmc_real_t x, lmmc_real_t *out)
计算向上取整 .
lmmc_status_t lmmc_hypot(lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out_res)
缩放计算欧氏距离 。
lmmc_status_t lmmc_floor(lmmc_real_t x, lmmc_real_t *out)
计算向下取整 .
lmmc_status_t lmmc_signbit(lmmc_real_t x, int *out_signbit)
检测符号位(含 -0 ).
lmmc_status_t lmmc_asinh(lmmc_real_t x, lmmc_real_t *out)
计算反双曲正弦 .
lmmc_status_t lmmc_tanh(lmmc_real_t x, lmmc_real_t *out)
计算双曲正切 .
lmmc_status_t lmmc_inf(lmmc_real_t *out_inf)
写入 IEEE-754 正无穷.
lmmc_status_t lmmc_eps(lmmc_real_t *out_eps)
写入机器精度(1 与下一个可表示数的差).
lmmc_status_t lmmc_sincos(lmmc_real_t x, lmmc_real_t *out_sin, lmmc_real_t *out_cos)
计算同一有限弧度值的正弦和余弦.
lmmc_status_t lmmc_nextafter(lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out_res)
计算 x 朝 y 方向的下一个可表示浮点数.
lmmc_status_t lmmc_ldexp(lmmc_real_t x, int exp, lmmc_real_t *out_res)
计算 .
lmmc_status_t lmmc_round(lmmc_real_t x, lmmc_real_t *out)
计算四舍五入 .
lmmc_status_t lmmc_acos(lmmc_real_t x, lmmc_real_t *out)
计算反余弦 .
lmmc_status_t lmmc_exp2(lmmc_real_t x, lmmc_real_t *out_res)
计算 .
lmmc_status_t lmmc_log2(lmmc_real_t x, lmmc_real_t *out_res)
计算 .
lmmc_status_t lmmc_pow(lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out)
计算幂 .
lmmc_status_t lmmc_split_int_frac(lmmc_real_t x, lmmc_real_t *out_iptr, lmmc_real_t *out_frac)
拆分整数部分与小数部分: .
lmmc_status_t lmmc_atanh(lmmc_real_t x, lmmc_real_t *out)
计算反双曲正切 ,要求 .
lmmc_status_t lmmc_isinf(lmmc_real_t x, int *out_isinf)
检测是否为 +/-infinity .
lmmc_status_t lmmc_approx_eq(lmmc_real_t a, lmmc_real_t b, lmmc_real_t epsilon, int *out_equal)
按绝对容差比较: 。
lmmc_status_t lmmc_atan(lmmc_real_t x, lmmc_real_t *out)
计算反正切 .
lmmc_status_t lmmc_acosh(lmmc_real_t x, lmmc_real_t *out)
计算反双曲余弦 ,要求 .
lmmc_status_t lmmc_trunc(lmmc_real_t x, lmmc_real_t *out)
计算截断取整 (向零方向取整).
lmmc_status_t lmmc_nan(lmmc_real_t *out_nan)
写入 IEEE-754 NaN.
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 库统一返回的状态码.