LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
quadrature.h
浏览该文件的文档.
1
5#ifndef LMMC_QUADRATURE_H
6#define LMMC_QUADRATURE_H
7
8#include "lmmc/config.h"
9#include "lmmc/status.h"
10#include <stddef.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
19typedef lmmc_real_t (*lmmc_quad_func_t)(lmmc_real_t x, void* user_data);
20
29
53 void* user_data,
56 size_t n,
57 lmmc_real_t* out_result
58);
59
82 void* user_data,
85 size_t n,
86 lmmc_real_t* out_result
87);
88
111 lmmc_quad_func_t func,
112 void* user_data,
113 lmmc_real_t a,
114 lmmc_real_t b,
115 size_t order,
116 lmmc_real_t* out_result
117);
118
156 lmmc_quad_func_t func,
157 void* user_data,
158 lmmc_real_t a,
159 lmmc_real_t b,
160 lmmc_real_t abs_tol,
161 lmmc_real_t rel_tol,
162 size_t max_depth,
163 lmmc_quad_result_t* out_result
164);
165
193 void* ud,
194 lmmc_real_t a,
195 lmmc_real_t b,
196 lmmc_real_t abs_tol,
197 size_t max_iter,
199);
200
232 void* ud,
233 lmmc_real_t a,
234 lmmc_real_t b,
235 lmmc_real_t abs_tol,
236 size_t max_nodes,
238);
239
260 void* ud,
261 size_t order,
262 lmmc_real_t* out
263);
264
285 void* ud,
286 size_t order,
287 lmmc_real_t* out
288);
289
290#ifdef __cplusplus
291}
292#endif
293
294#endif
LMMC binary real type and arithmetic spelling.
double lmmc_real_t
Public and internal LMMC real type.
lmmc_status_t lmmc_quad_romberg(lmmc_quad_func_t f, void *ud, lmmc_real_t a, lmmc_real_t b, lmmc_real_t abs_tol, size_t max_iter, lmmc_quad_result_t *out)
Romberg 积分(Richardson 外推加速梯形法则)。
lmmc_real_t(*) lmmc_quad_func_t(lmmc_real_t x, void *user_data)
被积函数签名 。
lmmc_status_t lmmc_quad_tanh_sinh(lmmc_quad_func_t f, void *ud, lmmc_real_t a, lmmc_real_t b, lmmc_real_t abs_tol, size_t max_nodes, lmmc_quad_result_t *out)
Tanh-Sinh(双指数)积分,适用于端点奇异性。
lmmc_status_t lmmc_quad_adaptive(lmmc_quad_func_t func, void *user_data, lmmc_real_t a, lmmc_real_t b, lmmc_real_t abs_tol, lmmc_real_t rel_tol, size_t max_depth, lmmc_quad_result_t *out_result)
自适应 Simpson 积分,使用最大误差堆控制全局误差。
lmmc_status_t lmmc_quad_gauss_hermite(lmmc_quad_func_t f, void *ud, size_t order, lmmc_real_t *out)
Gauss-Hermite 求积:权函数 ,积分域 。
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)
复合梯形公式:将 等分为 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 公式:将 等分为 n 段(要求偶数)。
lmmc_status_t lmmc_quad_gauss_laguerre(lmmc_quad_func_t f, void *ud, size_t order, lmmc_real_t *out)
Gauss-Laguerre 求积:权函数 ,积分域 。
lmmc_status_t lmmc_quad_gauss_legendre(lmmc_quad_func_t func, void *user_data, lmmc_real_t a, lmmc_real_t b, size_t order, lmmc_real_t *out_result)
Gauss-Legendre 求积:将 仿射映射到 后使用正交节点。
自适应积分输出结果。
LMMC 通用状态码定义.
lmmc_status_t
LMMC 库统一返回的状态码.