|
LMMC
Lamina Mathematic core
|
#include "itersolve_internal.h"结构体 | |
| struct | lmmc_bicgstab_state_t |
函数 | |
| 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。 | |
| struct lmmc_bicgstab_state_t |
在文件 itersolve_bicgstab.c 第 3 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_vec_t | r | |
| lmmc_vec_t | r_hat | |
| lmmc_vec_t | p | |
| lmmc_vec_t | v | |
| lmmc_vec_t | s | |
| lmmc_vec_t | t | |
| lmmc_vec_t | y | |
| lmmc_vec_t | z | |
| lmmc_vec_t | ax | |
| lmmc_real_t | rho | |
| lmmc_real_t | rho_hat | |
| lmmc_real_t | alpha | |
| lmmc_real_t | omega | |
| lmmc_real_t | norm | |
| lmmc_real_t | norm_s | |
| lmmc_real_t | threshold | |
| 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。
适用于非对称或不定矩阵。x 作为初始猜测输入。
| [in] | a | 稀疏矩阵(不被修改)。 |
| [in] | b | 右端向量(不被修改)。 |
| [in] | precond | 预处理子,可为 NULL。 |
| [in] | cfg | 配置参数,可为 NULL。 |
| [in,out] | x | 初始猜测 / 输出解向量。 |
| [out] | out_result | 迭代统计结果,可为 NULL。 |
在文件 itersolve_bicgstab.c 第 186 行定义.
引用了 lmmc_bicgstab_state_t::alpha, lmmc_bicgstab_state_t::ax, lmmc_bicgstab_solve(), lmmc_itersolve_do_log(), lmmc_itersolve_finish(), lmmc_itersolve_initial(), lmmc_itersolve_validate(), lmmc_itersolve_workspace(), lmmc_memory_free(), LMMC_STATUS_OK, lmmc_bicgstab_state_t::norm, lmmc_bicgstab_state_t::omega, lmmc_bicgstab_state_t::p, lmmc_bicgstab_state_t::r, lmmc_bicgstab_state_t::r_hat, lmmc_bicgstab_state_t::rho, lmmc_bicgstab_state_t::s, lmmc_vec_t::size, lmmc_bicgstab_state_t::t, lmmc_bicgstab_state_t::threshold, lmmc_bicgstab_state_t::v, lmmc_bicgstab_state_t::y , 以及 lmmc_bicgstab_state_t::z.
被这些函数引用 lmmc_bicgstab_solve().