LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
quadrature_fixed.c 文件参考
quadrature_fixed.c 的引用(Include)关系图:

浏览该文件的源代码.

函数

lmmc_status_t lmmc_quad_trapezoid (lmmc_quad_func_t func, void *user_data, lmmc_real_t a, lmmc_real_t b, size_t n, lmmc_real_t *out_result)
 复合梯形公式:将 \([a,b]\) 等分为 n 段。
lmmc_status_t lmmc_quad_simpson (lmmc_quad_func_t func, void *user_data, lmmc_real_t a, lmmc_real_t b, size_t n, lmmc_real_t *out_result)
 复合 Simpson 公式:将 \([a,b]\) 等分为 n 段(要求偶数)。

函数说明

◆ lmmc_quad_trapezoid()

lmmc_status_t lmmc_quad_trapezoid ( lmmc_quad_func_t func,
void * user_data,
lmmc_real_t a,
lmmc_real_t b,
size_t n,
lmmc_real_t * out_result )

复合梯形公式:将 \([a,b]\) 等分为 n 段。

采样点在 [-1,1] 的归一化坐标中生成,并通过溢出安全的中心和半长度 映射到 [a,b];不会直接形成可能溢出的 b-a。

参数
[in]func被积函数回调。
[in]user_data传递给 func 的用户上下文。
[in]a积分下限。
[in]b积分上限。
[in]n子区间数(>= 1)。
[out]out_result输出积分近似值。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若端点非有限、顺序无效、 n == 0 或指针为 NULL。
副作用
  • 回调 func 被调用 n+1 次。
  • 不分配堆内存。

在文件 quadrature_fixed.c 第 24 行定义.

引用了 lmmc_quad_center_half_length(), lmmc_quad_trapezoid(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_quad_trapezoid().

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

◆ lmmc_quad_simpson()

lmmc_status_t lmmc_quad_simpson ( lmmc_quad_func_t func,
void * user_data,
lmmc_real_t a,
lmmc_real_t b,
size_t n,
lmmc_real_t * out_result )

复合 Simpson 公式:将 \([a,b]\) 等分为 n 段(要求偶数)。

采样点先在 [-1,1] 的归一化坐标中生成,再通过溢出安全的中心和半长度 映射到 [a,b];不会直接形成可能溢出的 b-a。

参数
[in]func被积函数回调。
[in]user_data传递给 func 的用户上下文。
[in]a积分下限。
[in]b积分上限。
[in]n子区间数(必须为偶数且 >= 2)。
[out]out_result输出积分近似值。
返回
LMMC_STATUS_OK 成功; LMMC_STATUS_INVALID_ARGUMENT 若 n 为奇数、n == 0 或指针为 NULL。
副作用
  • 回调 func 被调用 n+1 次。
  • 不分配堆内存。

在文件 quadrature_fixed.c 第 58 行定义.

引用了 lmmc_quad_center_half_length(), lmmc_quad_simpson(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE , 以及 LMMC_STATUS_OK.

被这些函数引用 lmmc_quad_simpson().

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