|
LMMC
Lamina Mathematic core
|
#include <math.h>#include <string.h>#include "memory_bridge.h"#include "internal.h"#include "lmmc/precond.h"#include "sparse_internal.h"结构体 | |
| struct | lmmc_precond_ilu_impl_t |
| struct | lmmc_ilu_row_t |
| 行工作区仅分配一次,以下指针均借用该内存。 更多... | |
函数 | |
| lmmc_status_t | lmmc_precond_validate_spd (const lmmc_precond_t *precond, size_t size) |
| int | lmmc_find_col_pos (const size_t *cols, size_t start, size_t end, size_t col, size_t *pos) |
| void | lmmc_ilu_impl_destroy (lmmc_precond_ilu_impl_t *impl) |
| lmmc_status_t | lmmc_ilu_impl_create (size_t size, lmmc_precond_ilu_impl_t **out) |
| lmmc_status_t | lmmc_ilu_impl_reserve (lmmc_precond_ilu_impl_t *impl, size_t required) |
| lmmc_status_t | lmmc_ilu_row_bytes (size_t n, size_t fill, size_t *bytes) |
| lmmc_status_t | lmmc_ilu_row_create (size_t n, size_t fill, size_t bytes, lmmc_ilu_row_t *row) |
| void | lmmc_ilu_row_reset (lmmc_ilu_row_t *row) |
| void | lmmc_ilu_select (const lmmc_ilu_row_t *row, size_t i, int lower, lmmc_real_t drop_tol, size_t max_keep, size_t *cols, size_t *count) |
| lmmc_status_t | lmmc_ilu_apply (const lmmc_precond_t *precond, const lmmc_vec_t *rhs, lmmc_vec_t *out) |
| struct lmmc_precond_ilu_impl_t |
在文件 precond_internal.h 第 11 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | size | |
| size_t | nnz | |
| size_t | capacity | |
| size_t * | row_ptr | |
| size_t * | col_idx | |
| lmmc_real_t * | lu_values | |
| size_t * | diag_pos | |
| lmmc_real_t * | y_arr | |
| struct lmmc_ilu_row_t |
行工作区仅分配一次,以下指针均借用该内存。
在文件 precond_internal.h 第 23 行定义.
| 成员变量 | ||
|---|---|---|
| lmmc_real_t * | values | |
| size_t * | active | |
| size_t * | lower | |
| size_t * | upper | |
| unsigned char * | present | |
| unsigned char * | processed | |
| size_t | count | |
| lmmc_status_t lmmc_precond_validate_spd | ( | const lmmc_precond_t * | precond, |
| size_t | size ) |
引用了 lmmc_precond_t::impl, LMMC_PRECOND_JACOBI, LMMC_PRECOND_NONE, lmmc_precond_validate_spd(), LMMC_STATUS_DIMENSION_MISMATCH, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NOT_POSITIVE_DEFINITE, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK, lmmc_precond_t::size , 以及 lmmc_precond_t::type.
被这些函数引用 lmmc_precond_validate_spd().
| int lmmc_find_col_pos | ( | const size_t * | cols, |
| size_t | start, | ||
| size_t | end, | ||
| size_t | col, | ||
| size_t * | pos ) |
在文件 precond_workspace.c 第 3 行定义.
引用了 lmmc_find_col_pos().
被这些函数引用 lmmc_find_col_pos().
| void lmmc_ilu_impl_destroy | ( | lmmc_precond_ilu_impl_t * | impl | ) |
在文件 precond_workspace.c 第 25 行定义.
引用了 lmmc_precond_ilu_impl_t::capacity, lmmc_precond_ilu_impl_t::col_idx, lmmc_precond_ilu_impl_t::diag_pos, lmmc_ilu_impl_destroy(), lmmc_memory_free(), LMMC_REAL_CLEAR, lmmc_precond_ilu_impl_t::lu_values, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.
被这些函数引用 lmmc_ilu_impl_create(), lmmc_ilu_impl_destroy(), lmmc_precond_create_ilu0(), lmmc_precond_create_ilut() , 以及 lmmc_precond_destroy().
| lmmc_status_t lmmc_ilu_impl_create | ( | size_t | size, |
| lmmc_precond_ilu_impl_t ** | out ) |
在文件 precond_workspace.c 第 115 行定义.
引用了 lmmc_precond_ilu_impl_t::diag_pos, lmmc_ilu_impl_create(), lmmc_ilu_impl_destroy(), lmmc_memory_alloc(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.
被这些函数引用 lmmc_ilu_impl_create() , 以及 lmmc_precond_create_ilut().
| lmmc_status_t lmmc_ilu_impl_reserve | ( | lmmc_precond_ilu_impl_t * | impl, |
| size_t | required ) |
在文件 precond_workspace.c 第 50 行定义.
引用了 lmmc_precond_ilu_impl_t::capacity, lmmc_precond_ilu_impl_t::col_idx, lmmc_ilu_impl_reserve(), lmmc_memory_alloc(), lmmc_memory_free(), LMMC_REAL_CLEAR, LMMC_REAL_INIT, LMMC_REAL_SET, LMMC_REAL_SET_D, LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::lu_values , 以及 lmmc_precond_ilu_impl_t::nnz.
被这些函数引用 lmmc_ilu_impl_reserve().
| lmmc_status_t lmmc_ilu_row_bytes | ( | size_t | n, |
| size_t | fill, | ||
| size_t * | bytes ) |
在文件 precond_row.c 第 3 行定义.
引用了 lmmc_ilu_row_bytes(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_ilu_row_bytes() , 以及 lmmc_precond_create_ilut().
| lmmc_status_t lmmc_ilu_row_create | ( | size_t | n, |
| size_t | fill, | ||
| size_t | bytes, | ||
| lmmc_ilu_row_t * | row ) |
在文件 precond_row.c 第 28 行定义.
引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_row_create(), lmmc_memory_alloc(), LMMC_STATUS_ALLOCATION_FAILED, LMMC_STATUS_OK, lmmc_ilu_row_t::lower, lmmc_ilu_row_t::present, lmmc_ilu_row_t::processed, lmmc_ilu_row_t::upper , 以及 lmmc_ilu_row_t::values.
被这些函数引用 lmmc_ilu_row_create() , 以及 lmmc_precond_create_ilut().
| void lmmc_ilu_row_reset | ( | lmmc_ilu_row_t * | row | ) |
在文件 precond_row.c 第 47 行定义.
引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_row_reset(), lmmc_ilu_row_t::present, lmmc_ilu_row_t::processed , 以及 lmmc_ilu_row_t::values.
被这些函数引用 lmmc_ilu_row_reset().
| void lmmc_ilu_select | ( | const lmmc_ilu_row_t * | row, |
| size_t | i, | ||
| int | lower, | ||
| lmmc_real_t | drop_tol, | ||
| size_t | max_keep, | ||
| size_t * | cols, | ||
| size_t * | count ) |
在文件 precond_row.c 第 83 行定义.
引用了 lmmc_ilu_row_t::active, lmmc_ilu_row_t::count, lmmc_ilu_select(), lmmc_ilu_row_t::present , 以及 lmmc_ilu_row_t::values.
被这些函数引用 lmmc_ilu_select().
| lmmc_status_t lmmc_ilu_apply | ( | const lmmc_precond_t * | precond, |
| const lmmc_vec_t * | rhs, | ||
| lmmc_vec_t * | out ) |
在文件 precond_apply.c 第 48 行定义.
引用了 lmmc_precond_ilu_impl_t::diag_pos, lmmc_precond_t::impl, lmmc_ilu_apply(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_precond_ilu_impl_t::row_ptr, lmmc_precond_ilu_impl_t::size, lmmc_precond_t::size , 以及 lmmc_precond_ilu_impl_t::y_arr.
被这些函数引用 lmmc_ilu_apply() , 以及 lmmc_precond_apply().