LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
itersolve.h
浏览该文件的文档.
1
10#ifndef LMMC_ITERSOLVE_H
11#define LMMC_ITERSOLVE_H
12
13#include <stddef.h>
14#include "lmmc/numeric.h"
15#include "lmmc/diagnostic.h"
16#include "lmmc/precond.h"
17#include "lmmc/sparse.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
32
44 const lmmc_vec_t* x, lmmc_vec_t* y, void* user_data);
45
63
80
104 const lmmc_sparse_mat_t* a,
105 const lmmc_vec_t* b,
106 const lmmc_precond_t* precond,
107 const lmmc_itersolve_config_t* cfg,
108 lmmc_vec_t* x,
109 lmmc_itersolve_result_t* out_result
110);
111
130 const lmmc_sparse_mat_t* a,
131 const lmmc_vec_t* b,
132 const lmmc_precond_t* precond,
133 const lmmc_itersolve_config_t* cfg,
134 lmmc_vec_t* x,
135 lmmc_itersolve_result_t* out_result
136);
137
158 const lmmc_sparse_mat_t* a,
159 const lmmc_vec_t* b,
160 const lmmc_precond_t* precond,
161 const lmmc_itersolve_config_t* cfg,
162 lmmc_vec_t* x,
163 lmmc_itersolve_result_t* out_result
164);
165
184 const lmmc_sparse_mat_t* a,
185 const lmmc_vec_t* b,
186 const lmmc_precond_t* precond,
187 const lmmc_itersolve_config_t* cfg,
188 lmmc_vec_t* x,
189 lmmc_itersolve_result_t* out_result
190);
191
212 const lmmc_sparse_mat_t* a,
213 const lmmc_vec_t* b,
214 const lmmc_itersolve_config_t* cfg,
215 lmmc_vec_t* x,
216 lmmc_itersolve_result_t* out_result
217);
218
219#ifdef __cplusplus
220}
221#endif
222
223#endif
double lmmc_real_t
Public and internal LMMC real type.
一维稠密向量。
Unified diagnostic events for LMMC operations.
lmmc_diagnostic_sink_t diagnostics
lmmc_matvec_op_t apply_transpose_op
lmmc_status_t lmmc_gmres_solve(const lmmc_sparse_mat_t *a, const lmmc_vec_t *b, const lmmc_precond_t *precond, const lmmc_itersolve_config_t *cfg, lmmc_vec_t *x, lmmc_itersolve_result_t *out_result)
重启型 GMRES 求解一般非对称稀疏系统 A*x = b。
lmmc_status_t lmmc_minres_solve(const lmmc_sparse_mat_t *a, const lmmc_vec_t *b, const lmmc_precond_t *precond, const lmmc_itersolve_config_t *cfg, lmmc_vec_t *x, lmmc_itersolve_result_t *out_result)
MINRES 求解对称(可能不定)稀疏系统 A x = b 。
lmmc_status_t(*) lmmc_matvec_op_t(const lmmc_vec_t *x, lmmc_vec_t *y, void *user_data)
矩阵-向量乘法算子回调类型(matrix-free 模式)。
lmmc_status_t lmmc_itersolve_default_config(size_t problem_size, lmmc_itersolve_config_t *out_cfg)
根据问题规模生成迭代求解器默认配置。
lmmc_real_t initial_residual_norm
lmmc_status_t lmmc_cg_solve(const lmmc_sparse_mat_t *a, const lmmc_vec_t *b, const lmmc_precond_t *precond, const lmmc_itersolve_config_t *cfg, lmmc_vec_t *x, lmmc_itersolve_result_t *out_result)
共轭梯度法(CG)求解对称正定稀疏系统 A*x = b。
lmmc_matvec_op_t apply_op
lmmc_status_t lmmc_bicgstab_solve(const lmmc_sparse_mat_t *a, const lmmc_vec_t *b, const lmmc_precond_t *precond, const lmmc_itersolve_config_t *cfg, lmmc_vec_t *x, lmmc_itersolve_result_t *out_result)
稳定双共轭梯度法(BiCGSTAB)求解一般非对称稀疏系统 A*x = b。
lmmc_status_t lmmc_lsqr_solve(const lmmc_sparse_mat_t *a, const lmmc_vec_t *b, const lmmc_itersolve_config_t *cfg, lmmc_vec_t *x, lmmc_itersolve_result_t *out_result)
LSQR 求解最小二乘问题 min ||Ax - b||_2 。
迭代求解器配置。
迭代求解的结果统计。
数值标量、特殊函数和 FFT 公共接口。
迭代求解器使用的预处理子接口。
通用预处理子句柄。
通用稀疏矩阵(CSR / CSC 共用同一结构)。
lmmc_status_t
LMMC 库统一返回的状态码.