LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
numeric_scalar.h 文件参考
#include <stddef.h>
#include "lmmc/config.h"
#include "lmmc/status.h"
numeric_scalar.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

宏定义

#define LMMC_PI   (3.14159265358979323846)
 \(\pi\) 常量.
#define LMMC_INV_PI   (0.31830988618379067154)
 \(1/\pi\) 常量.
#define LMMC_SQRT2   (1.41421356237309504880)
 \(\sqrt{2}\) 常量.
#define LMMC_INV_E   (0.36787944117144232160)
 \(1/e\) 常量,用于 Lambert W 函数域检查.
#define LMMC_DEFAULT_ABS_TOL   1e-12
 库默认的绝对容差.
#define LMMC_DEFAULT_REL_TOL   1e-10
 库默认的相对容差.

函数

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_atan2 (lmmc_real_t y, lmmc_real_t x, lmmc_real_t *out_res)
 计算 \(\mathrm{atan2}(y,x)\) .
lmmc_status_t lmmc_sincos (lmmc_real_t x, lmmc_real_t *out_sin, lmmc_real_t *out_cos)
 计算同一有限弧度值的正弦和余弦.
lmmc_status_t lmmc_hypot (lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out_res)
 缩放计算欧氏距离 \(\sqrt{x^2+y^2}\)。
lmmc_status_t lmmc_exp2 (lmmc_real_t x, lmmc_real_t *out_res)
 计算 \(2^x\) .
lmmc_status_t lmmc_log2 (lmmc_real_t x, lmmc_real_t *out_res)
 计算 \(\log_2 x\) .
lmmc_status_t lmmc_expm1 (lmmc_real_t x, lmmc_real_t *out_res)
 计算 \(e^x-1\) ,对小 x 更精确.
lmmc_status_t lmmc_log1p (lmmc_real_t x, lmmc_real_t *out_res)
 计算 \(\log(1+x)\) ,对小 x 更精确.
lmmc_status_t lmmc_split_int_frac (lmmc_real_t x, lmmc_real_t *out_iptr, lmmc_real_t *out_frac)
 拆分整数部分与小数部分: \(x=\mathrm{iptr}+\mathrm{frac}\) .
lmmc_status_t lmmc_fmod (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)
 计算 \(x \cdot 2^{exp}\) .
lmmc_status_t lmmc_nextafter (lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out_res)
 计算 x 朝 y 方向的下一个可表示浮点数.
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 .
lmmc_status_t lmmc_asin (lmmc_real_t x, lmmc_real_t *out)
 实标量函数的公共状态约定。
lmmc_status_t lmmc_acos (lmmc_real_t x, lmmc_real_t *out)
 计算反余弦 \(\arccos(x)\) .
lmmc_status_t lmmc_atan (lmmc_real_t x, lmmc_real_t *out)
 计算反正切 \(\arctan(x)\) .
lmmc_status_t lmmc_sinh (lmmc_real_t x, lmmc_real_t *out)
 计算双曲正弦 \(\sinh(x)\) .
lmmc_status_t lmmc_cosh (lmmc_real_t x, lmmc_real_t *out)
 计算双曲余弦 \(\cosh(x)\) .
lmmc_status_t lmmc_tanh (lmmc_real_t x, lmmc_real_t *out)
 计算双曲正切 \(\tanh(x)\) .
lmmc_status_t lmmc_asinh (lmmc_real_t x, lmmc_real_t *out)
 计算反双曲正弦 \(\mathrm{asinh}(x)\) .
lmmc_status_t lmmc_acosh (lmmc_real_t x, lmmc_real_t *out)
 计算反双曲余弦 \(\mathrm{acosh}(x)\) ,要求 \(x \ge 1\) .
lmmc_status_t lmmc_atanh (lmmc_real_t x, lmmc_real_t *out)
 计算反双曲正切 \(\mathrm{atanh}(x)\) ,要求 \(|x| < 1\) .
lmmc_status_t lmmc_pow (lmmc_real_t x, lmmc_real_t y, lmmc_real_t *out)
 计算幂 \(x^y\) .
lmmc_status_t lmmc_ceil (lmmc_real_t x, lmmc_real_t *out)
 计算向上取整 \(\lceil x \rceil\) .
lmmc_status_t lmmc_floor (lmmc_real_t x, lmmc_real_t *out)
 计算向下取整 \(\lfloor x \rfloor\) .
lmmc_status_t lmmc_round (lmmc_real_t x, lmmc_real_t *out)
 计算四舍五入 \(\mathrm{round}(x)\) .
lmmc_status_t lmmc_trunc (lmmc_real_t x, lmmc_real_t *out)
 计算截断取整 \(\mathrm{trunc}(x)\) (向零方向取整).

宏定义说明

◆ LMMC_PI

#define LMMC_PI   (3.14159265358979323846)

\(\pi\) 常量.

在文件 numeric_scalar.h 第 14 行定义.

被这些函数引用 lmmc_lgamma().

◆ LMMC_INV_PI

#define LMMC_INV_PI   (0.31830988618379067154)

\(1/\pi\) 常量.

在文件 numeric_scalar.h 第 18 行定义.

◆ LMMC_SQRT2

#define LMMC_SQRT2   (1.41421356237309504880)

\(\sqrt{2}\) 常量.

在文件 numeric_scalar.h 第 22 行定义.

◆ LMMC_INV_E

#define LMMC_INV_E   (0.36787944117144232160)

\(1/e\) 常量,用于 Lambert W 函数域检查.

在文件 numeric_scalar.h 第 26 行定义.

◆ LMMC_DEFAULT_ABS_TOL

#define LMMC_DEFAULT_ABS_TOL   1e-12

库默认的绝对容差.

在文件 numeric_scalar.h 第 31 行定义.

被这些函数引用 lmmc_double_nearly_equal(), lmmc_itersolve_default_config(), lmmc_nonlinear_default_config() , 以及 lmmc_ode_default_config().

◆ LMMC_DEFAULT_REL_TOL

#define LMMC_DEFAULT_REL_TOL   1e-10

库默认的相对容差.

在文件 numeric_scalar.h 第 35 行定义.

被这些函数引用 lmmc_cholesky_decompose_inplace(), lmmc_double_nearly_equal(), lmmc_nonlinear_default_config() , 以及 lmmc_ode_default_config().

函数说明

◆ lmmc_inf()

lmmc_status_t lmmc_inf ( lmmc_real_t * out_inf)

写入 IEEE-754 正无穷.

在文件 numeric.c 第 17 行定义.

引用了 lmmc_inf(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_inf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nan()

lmmc_status_t lmmc_nan ( lmmc_real_t * out_nan)

写入 IEEE-754 NaN.

在文件 numeric.c 第 27 行定义.

引用了 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_eps()

lmmc_status_t lmmc_eps ( lmmc_real_t * out_eps)

写入机器精度(1 与下一个可表示数的差).

在文件 numeric.c 第 41 行定义.

引用了 lmmc_eps(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_eps().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_isnan()

lmmc_status_t lmmc_isnan ( lmmc_real_t x,
int * out_isnan )

检测是否为 NaN ,结果写入 *out_isnan (0/1).

在文件 numeric.c 第 47 行定义.

引用了 lmmc_isnan(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_isnan().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_isinf()

lmmc_status_t lmmc_isinf ( lmmc_real_t x,
int * out_isinf )

检测是否为 +/-infinity .

在文件 numeric.c 第 53 行定义.

引用了 lmmc_isinf(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_isinf().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_isfinite()

lmmc_status_t lmmc_isfinite ( lmmc_real_t x,
int * out_isfinite )

检测是否为有限数(非 NaN 且非 +/-infinity).

在文件 numeric.c 第 59 行定义.

引用了 lmmc_isfinite(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_isfinite().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_signbit()

lmmc_status_t lmmc_signbit ( lmmc_real_t x,
int * out_signbit )

检测符号位(含 -0 ).

在文件 numeric.c 第 65 行定义.

引用了 lmmc_signbit(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_signbit().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_atan2()

lmmc_status_t lmmc_atan2 ( lmmc_real_t y,
lmmc_real_t x,
lmmc_real_t * out_res )

计算 \(\mathrm{atan2}(y,x)\) .

在文件 numeric_scalar.c 第 4 行定义.

引用了 lmmc_atan2(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_atan2().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_sincos()

lmmc_status_t lmmc_sincos ( lmmc_real_t x,
lmmc_real_t * out_sin,
lmmc_real_t * out_cos )

计算同一有限弧度值的正弦和余弦.

参数
[in]x有限输入弧度.
[out]out_sinx 的正弦.
[out]out_cosx 的余弦.
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空、两个输出相同或 x 非有限; LMMC_STATUS_NUMERICAL_FAILURE 若任一计算结果超出有限值范围. 两个输出仅在参数与结果验证均成功后写入.
参见
POSIX.1-2024, sin https://pubs.opengroup.org/onlinepubs/9799919799/functions/sin.html

在文件 numeric_scalar.c 第 10 行定义.

引用了 LMMC_REAL_SET_D, lmmc_sincos(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_sincos().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_hypot()

lmmc_status_t lmmc_hypot ( lmmc_real_t x,
lmmc_real_t y,
lmmc_real_t * out_res )

缩放计算欧氏距离 \(\sqrt{x^2+y^2}\)。

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或任一输入非有限; LMMC_STATUS_NUMERICAL_FAILURE 若结果上溢为非有限值. 可表示的次正规结果正常返回;输出仅在成功时写入.

在文件 numeric_scalar.c 第 25 行定义.

引用了 lmmc_hypot(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_hypot().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_exp2()

lmmc_status_t lmmc_exp2 ( lmmc_real_t x,
lmmc_real_t * out_res )

计算 \(2^x\) .

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或 x 非有限; LMMC_STATUS_NUMERICAL_FAILURE 若结果上溢为非有限值. 输出仅在成功时写入。

在文件 numeric_scalar.c 第 38 行定义.

引用了 lmmc_exp2(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_exp2().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_log2()

lmmc_status_t lmmc_log2 ( lmmc_real_t x,
lmmc_real_t * out_res )

计算 \(\log_2 x\) .

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或 x 非有限; LMMC_STATUS_OUT_OF_RANGE 若 x 小于或等于零; LMMC_STATUS_NUMERICAL_FAILURE 若结果不可表示为有限值. 输出仅在成功时写入。

在文件 numeric_scalar.c 第 51 行定义.

引用了 lmmc_log2(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_log2().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_expm1()

lmmc_status_t lmmc_expm1 ( lmmc_real_t x,
lmmc_real_t * out_res )

计算 \(e^x-1\) ,对小 x 更精确.

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或 x 非有限; LMMC_STATUS_NUMERICAL_FAILURE 若结果上溢为非有限值. 输出仅在成功时写入.

在文件 numeric_scalar.c 第 67 行定义.

引用了 lmmc_expm1(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_expm1().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_log1p()

lmmc_status_t lmmc_log1p ( lmmc_real_t x,
lmmc_real_t * out_res )

计算 \(\log(1+x)\) ,对小 x 更精确.

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或 x 非有限; LMMC_STATUS_OUT_OF_RANGE 若 x 小于或等于 -1; LMMC_STATUS_NUMERICAL_FAILURE 若结果不可表示为有限值. 输出仅在成功时写入。

在文件 numeric_scalar.c 第 80 行定义.

引用了 lmmc_log1p(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_log1p().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_split_int_frac()

lmmc_status_t lmmc_split_int_frac ( lmmc_real_t x,
lmmc_real_t * out_iptr,
lmmc_real_t * out_frac )

拆分整数部分与小数部分: \(x=\mathrm{iptr}+\mathrm{frac}\) .

参数
[in]x待拆分值.
[out]out_iptr整数部分.
[out]out_frac带 x 符号的小数部分.
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或两个输出相同. 两个输出均在参数验证完成后写入.

在文件 numeric_scalar.c 第 96 行定义.

引用了 LMMC_REAL_SET_D, lmmc_split_int_frac(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_split_int_frac().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_fmod()

lmmc_status_t lmmc_fmod ( lmmc_real_t x,
lmmc_real_t y,
lmmc_real_t * out_res )

计算浮点余数,结果符号与 x 相同,幅值小于 y 的幅值.

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或任一输入为 NaN; LMMC_STATUS_OUT_OF_RANGE 若 x 为无穷或 y 为正零或负零; LMMC_STATUS_NUMERICAL_FAILURE 若结果超出有限值范围. 有限 x 与无穷 y 的余数为 x;零结果保留 x 的符号. 输出仅在成功时写入.
参见
POSIX.1-2024, fmod https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmod.html

在文件 numeric_scalar.c 第 109 行定义.

引用了 lmmc_fmod(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_fmod().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ldexp()

lmmc_status_t lmmc_ldexp ( lmmc_real_t x,
int exp,
lmmc_real_t * out_res )

计算 \(x \cdot 2^{exp}\) .

返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或 x 非有限; LMMC_STATUS_NUMERICAL_FAILURE 若结果上溢为非有限值,或非零结果下溢为零. 输出仅在成功时写入.

在文件 numeric_scalar.c 第 121 行定义.

引用了 lmmc_ldexp(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_ldexp().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nextafter()

lmmc_status_t lmmc_nextafter ( lmmc_real_t x,
lmmc_real_t y,
lmmc_real_t * out_res )

计算 x 朝 y 方向的下一个可表示浮点数.

在文件 numeric_scalar.c 第 134 行定义.

引用了 lmmc_nextafter(), LMMC_REAL_SET_D, LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_nextafter().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_approx_eq()

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_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输出为空或容差无效.

在文件 numeric.c 第 71 行定义.

引用了 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_double_nearly_equal_tol()

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_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out_equal 为 NULL 或容差为负.
注解
不分配内存,输入保持原值。

在文件 numeric.c 第 106 行定义.

引用了 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_double_nearly_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 第 181 行定义.

引用了 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().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_asin()

lmmc_status_t lmmc_asin ( lmmc_real_t x,
lmmc_real_t * out )

实标量函数的公共状态约定。

所有输入必须有限,否则返回 LMMC_STATUS_INVALID_ARGUMENT。定义域或极点 错误返回 LMMC_STATUS_OUT_OF_RANGE;有限输入产生不可表示结果时返回 LMMC_STATUS_NUMERICAL_FAILURE。输出仅在成功时写入。

计算反正弦 \(\arcsin(x)\) .

参数
[in]x输入值,必须满足 \(|x| \le 1\) .
[out]out输出 \(\arcsin(x)\) ,结果在 \([-\pi/2, \pi/2]\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL; LMMC_STATUS_OUT_OF_RANGE 若 \(|x| > 1\) .

在文件 numeric_scalar.c 第 146 行定义.

引用了 lmmc_asin(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_asin().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_acos()

lmmc_status_t lmmc_acos ( lmmc_real_t x,
lmmc_real_t * out )

计算反余弦 \(\arccos(x)\) .

参数
[in]x输入值,必须满足 \(|x| \le 1\) .
[out]out输出 \(\arccos(x)\) ,结果在 \([0, \pi]\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL; LMMC_STATUS_OUT_OF_RANGE 若 \(|x| > 1\) .

在文件 numeric_scalar.c 第 152 行定义.

引用了 lmmc_acos(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_acos().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_atan()

lmmc_status_t lmmc_atan ( lmmc_real_t x,
lmmc_real_t * out )

计算反正切 \(\arctan(x)\) .

参数
[in]x输入值,无定义域限制.
[out]out输出 \(\arctan(x)\) ,结果在 \((-\pi/2, \pi/2)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 158 行定义.

引用了 lmmc_atan() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_atan().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_sinh()

lmmc_status_t lmmc_sinh ( lmmc_real_t x,
lmmc_real_t * out )

计算双曲正弦 \(\sinh(x)\) .

参数
[in]x输入值,无定义域限制.
[out]out输出 \(\sinh(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输入非有限或 out 为 NULL; LMMC_STATUS_NUMERICAL_FAILURE 若结果溢出。

在文件 numeric_scalar.c 第 163 行定义.

引用了 lmmc_sinh() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_sinh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_cosh()

lmmc_status_t lmmc_cosh ( lmmc_real_t x,
lmmc_real_t * out )

计算双曲余弦 \(\cosh(x)\) .

参数
[in]x输入值,无定义域限制.
[out]out输出 \(\cosh(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输入非有限或 out 为 NULL; LMMC_STATUS_NUMERICAL_FAILURE 若结果溢出。

在文件 numeric_scalar.c 第 168 行定义.

引用了 lmmc_cosh() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_cosh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_tanh()

lmmc_status_t lmmc_tanh ( lmmc_real_t x,
lmmc_real_t * out )

计算双曲正切 \(\tanh(x)\) .

参数
[in]x输入值,无定义域限制.
[out]out输出 \(\tanh(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 173 行定义.

引用了 LMMC_STATUS_INVALID_ARGUMENT , 以及 lmmc_tanh().

被这些函数引用 lmmc_tanh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_asinh()

lmmc_status_t lmmc_asinh ( lmmc_real_t x,
lmmc_real_t * out )

计算反双曲正弦 \(\mathrm{asinh}(x)\) .

参数
[in]x输入值,无定义域限制.
[out]out输出 \(\mathrm{asinh}(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 178 行定义.

引用了 lmmc_asinh() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_asinh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_acosh()

lmmc_status_t lmmc_acosh ( lmmc_real_t x,
lmmc_real_t * out )

计算反双曲余弦 \(\mathrm{acosh}(x)\) ,要求 \(x \ge 1\) .

参数
[in]x输入值,必须满足 \(x \ge 1\) .
[out]out输出 \(\mathrm{acosh}(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL; LMMC_STATUS_OUT_OF_RANGE 若 \(x < 1\) .

在文件 numeric_scalar.c 第 183 行定义.

引用了 lmmc_acosh(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_acosh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_atanh()

lmmc_status_t lmmc_atanh ( lmmc_real_t x,
lmmc_real_t * out )

计算反双曲正切 \(\mathrm{atanh}(x)\) ,要求 \(|x| < 1\) .

参数
[in]x输入值,必须满足 \(|x| < 1\) .
[out]out输出 \(\mathrm{atanh}(x)\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL; LMMC_STATUS_OUT_OF_RANGE 若 \(|x| \ge 1\) .

在文件 numeric_scalar.c 第 189 行定义.

引用了 lmmc_atanh(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_atanh().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_pow()

lmmc_status_t lmmc_pow ( lmmc_real_t x,
lmmc_real_t y,
lmmc_real_t * out )

计算幂 \(x^y\) .

当 \(x = 0,y < 0\),或 \(x < 0\) 且 \(y\) 非整数时返回域错误。

参数
[in]x底数.
[in]y指数.
[out]out输出 \(x^y\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若输入非有限或 out 为 NULL; LMMC_STATUS_OUT_OF_RANGE 若参数位于实数幂定义域外; LMMC_STATUS_NUMERICAL_FAILURE 若结果不可表示。

在文件 numeric_scalar.c 第 195 行定义.

引用了 lmmc_pow(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OUT_OF_RANGE.

被这些函数引用 lmmc_pow().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_ceil()

lmmc_status_t lmmc_ceil ( lmmc_real_t x,
lmmc_real_t * out )

计算向上取整 \(\lceil x \rceil\) .

参数
[in]x输入值.
[out]out输出 \(\lceil x \rceil\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 204 行定义.

引用了 lmmc_ceil() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_ceil().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_floor()

lmmc_status_t lmmc_floor ( lmmc_real_t x,
lmmc_real_t * out )

计算向下取整 \(\lfloor x \rfloor\) .

参数
[in]x输入值.
[out]out输出 \(\lfloor x \rfloor\) .
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 209 行定义.

引用了 lmmc_floor() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_floor().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_round()

lmmc_status_t lmmc_round ( lmmc_real_t x,
lmmc_real_t * out )

计算四舍五入 \(\mathrm{round}(x)\) .

参数
[in]x输入值.
[out]out输出四舍五入结果.
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 214 行定义.

引用了 lmmc_round() , 以及 LMMC_STATUS_INVALID_ARGUMENT.

被这些函数引用 lmmc_round().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_trunc()

lmmc_status_t lmmc_trunc ( lmmc_real_t x,
lmmc_real_t * out )

计算截断取整 \(\mathrm{trunc}(x)\) (向零方向取整).

参数
[in]x输入值.
[out]out输出截断取整结果.
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 out 为 NULL.

在文件 numeric_scalar.c 第 219 行定义.

引用了 LMMC_STATUS_INVALID_ARGUMENT , 以及 lmmc_trunc().

被这些函数引用 lmmc_trunc().

函数调用图:
这是这个函数的调用关系图: