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

浏览该文件的源代码.

结构体

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。

结构体说明

◆ lmmc_bicgstab_state_t

struct lmmc_bicgstab_state_t

在文件 itersolve_bicgstab.c 第 3 行定义.

lmmc_bicgstab_state_t 的协作图:
成员变量
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_bicgstab_solve()

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。
返回
同 ::lmmc_cg_solve。
副作用
  • 就地修改 x->data。分配并释放 9 个长度为 n 的临时向量。

在文件 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().

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