|
LMMC
Lamina Mathematic core
|
#include "itersolve_internal.h"结构体 | |
| struct | lmmc_gmres_state_t |
函数 | |
| lmmc_status_t | lmmc_gmres_workspace (size_t n, size_t restart, lmmc_gmres_state_t *s) |
| lmmc_status_t | lmmc_gmres_arnoldi (const lmmc_sparse_mat_t *a, const lmmc_precond_t *precond, lmmc_gmres_state_t *s, size_t j, lmmc_real_t *h_next) |
| lmmc_status_t | lmmc_gmres_rotate (lmmc_gmres_state_t *s, size_t j, int *breakdown) |
| lmmc_status_t | lmmc_gmres_back_substitute (lmmc_gmres_state_t *s, size_t dim) |
| lmmc_status_t | lmmc_gmres_trial (lmmc_gmres_state_t *s, size_t j) |
| lmmc_status_t | lmmc_gmres_normalize (lmmc_vec_t *out, const lmmc_vec_t *in, lmmc_real_t norm) |
| struct lmmc_gmres_state_t |
在文件 itersolve_gmres_internal.h 第 6 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_vec_t | r | |
| lmmc_vec_t | z | |
| lmmc_vec_t | w | |
| lmmc_vec_t | ax | |
| lmmc_vec_t | x_base | |
| lmmc_vec_t | x_trial | |
| lmmc_vec_t * | basis | |
| lmmc_real_t * | h | |
| lmmc_real_t * | cs | |
| lmmc_real_t * | sn | |
| lmmc_real_t * | g | |
| lmmc_real_t * | y | |
| size_t | restart | |
| size_t | h_count | |
| lmmc_real_t | norm | |
| lmmc_real_t | threshold | |
| lmmc_status_t lmmc_gmres_workspace | ( | size_t | n, |
| size_t | restart, | ||
| lmmc_gmres_state_t * | s ) |
在文件 itersolve_gmres_support.c 第 46 行定义.
引用了 lmmc_gmres_state_t::ax, lmmc_gmres_state_t::basis, lmmc_gmres_state_t::cs, lmmc_gmres_state_t::g, lmmc_gmres_state_t::h, lmmc_gmres_state_t::h_count, lmmc_gmres_workspace(), lmmc_memory_alloc(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_gmres_state_t::r, lmmc_gmres_state_t::restart, lmmc_gmres_state_t::sn, lmmc_gmres_state_t::w, lmmc_gmres_state_t::x_base, lmmc_gmres_state_t::x_trial, lmmc_gmres_state_t::y , 以及 lmmc_gmres_state_t::z.
被这些函数引用 lmmc_gmres_solve() , 以及 lmmc_gmres_workspace().
| lmmc_status_t lmmc_gmres_arnoldi | ( | const lmmc_sparse_mat_t * | a, |
| const lmmc_precond_t * | precond, | ||
| lmmc_gmres_state_t * | s, | ||
| size_t | j, | ||
| lmmc_real_t * | h_next ) |
在文件 itersolve_gmres_support.c 第 92 行定义.
引用了 lmmc_gmres_state_t::ax, lmmc_gmres_state_t::basis, lmmc_gmres_state_t::h, lmmc_apply_precond_or_identity(), lmmc_gmres_arnoldi(), lmmc_sparse_mat_vec_mul(), LMMC_STATUS_OK, lmmc_vec_axpy(), lmmc_vec_dot_checked(), lmmc_vec_norm2_checked(), lmmc_gmres_state_t::restart , 以及 lmmc_gmres_state_t::w.
被这些函数引用 lmmc_gmres_arnoldi().
| lmmc_status_t lmmc_gmres_rotate | ( | lmmc_gmres_state_t * | s, |
| size_t | j, | ||
| int * | breakdown ) |
在文件 itersolve_gmres_support.c 第 135 行定义.
引用了 lmmc_gmres_state_t::cs, lmmc_gmres_state_t::g, lmmc_gmres_state_t::h, lmmc_gmres_rotate(), LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_gmres_state_t::restart , 以及 lmmc_gmres_state_t::sn.
被这些函数引用 lmmc_gmres_rotate().
| lmmc_status_t lmmc_gmres_back_substitute | ( | lmmc_gmres_state_t * | s, |
| size_t | dim ) |
在文件 itersolve_gmres_support.c 第 165 行定义.
引用了 lmmc_gmres_state_t::g, lmmc_gmres_state_t::h, lmmc_gmres_back_substitute(), LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_gmres_state_t::restart , 以及 lmmc_gmres_state_t::y.
被这些函数引用 lmmc_gmres_back_substitute().
| lmmc_status_t lmmc_gmres_trial | ( | lmmc_gmres_state_t * | s, |
| size_t | j ) |
在文件 itersolve_gmres_support.c 第 185 行定义.
引用了 lmmc_gmres_state_t::basis, lmmc_vec_t::data, lmmc_gmres_trial(), LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_vec_t::size, lmmc_gmres_state_t::x_base, lmmc_gmres_state_t::x_trial , 以及 lmmc_gmres_state_t::y.
被这些函数引用 lmmc_gmres_trial().
| lmmc_status_t lmmc_gmres_normalize | ( | lmmc_vec_t * | out, |
| const lmmc_vec_t * | in, | ||
| lmmc_real_t | norm ) |
在文件 itersolve_gmres_support.c 第 200 行定义.
引用了 lmmc_vec_t::data, lmmc_gmres_normalize(), LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 lmmc_vec_t::size.
被这些函数引用 lmmc_gmres_normalize().