LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
precond_internal.h
浏览该文件的文档.
1#ifndef LMMC_PRECOND_INTERNAL_H
2#define LMMC_PRECOND_INTERNAL_H
3
4#include <math.h>
5#include <string.h>
6#include "memory_bridge.h"
7#include "internal.h"
8#include "lmmc/precond.h"
9#include "sparse_internal.h"
10
11typedef struct {
12 size_t size;
13 size_t nnz;
14 size_t capacity;
15 size_t* row_ptr;
16 size_t* col_idx;
18 size_t* diag_pos;
21
23typedef struct {
25 size_t* active;
26 size_t* lower;
27 size_t* upper;
28 unsigned char* present;
29 unsigned char* processed;
30 size_t count;
32
33lmmc_status_t lmmc_precond_validate_spd(const lmmc_precond_t* precond, size_t size);
34int lmmc_find_col_pos(const size_t* cols, size_t start, size_t end,
35 size_t col, size_t* pos);
39lmmc_status_t lmmc_ilu_row_bytes(size_t n, size_t fill, size_t* bytes);
40lmmc_status_t lmmc_ilu_row_create(size_t n, size_t fill, size_t bytes,
41 lmmc_ilu_row_t* row);
43void lmmc_ilu_select(const lmmc_ilu_row_t* row, size_t i, int lower,
44 lmmc_real_t drop_tol, size_t max_keep, size_t* cols, size_t* count);
46 const lmmc_vec_t* rhs, lmmc_vec_t* out);
47
48#endif
double lmmc_real_t
Public and internal LMMC real type.
一维稠密向量。
LMMC 内部使用的公共工具(仅源文件可见).
Private recoverable allocator for persistent LMMC ownership.
lmmc_status_t lmmc_precond_validate_spd(const lmmc_precond_t *precond, size_t size)
迭代求解器使用的预处理子接口。
通用预处理子句柄。
lmmc_status_t lmmc_ilu_apply(const lmmc_precond_t *precond, const lmmc_vec_t *rhs, lmmc_vec_t *out)
lmmc_status_t lmmc_ilu_impl_reserve(lmmc_precond_ilu_impl_t *impl, size_t required)
lmmc_status_t lmmc_ilu_row_create(size_t n, size_t fill, size_t bytes, lmmc_ilu_row_t *row)
lmmc_status_t lmmc_ilu_impl_create(size_t size, lmmc_precond_ilu_impl_t **out)
unsigned char * processed
void lmmc_ilu_impl_destroy(lmmc_precond_ilu_impl_t *impl)
lmmc_status_t lmmc_ilu_row_bytes(size_t n, size_t fill, size_t *bytes)
int lmmc_find_col_pos(const size_t *cols, size_t start, size_t end, size_t col, size_t *pos)
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)
unsigned char * present
void lmmc_ilu_row_reset(lmmc_ilu_row_t *row)
行工作区仅分配一次,以下指针均借用该内存。
稀疏矩阵模块内部共享辅助函数(仅源文件可见)。
lmmc_status_t
LMMC 库统一返回的状态码.