LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
sparse_solvers.h
浏览该文件的文档.
1
2#ifndef LMMC_SPARSE_SOLVERS_H
3#define LMMC_SPARSE_SOLVERS_H
4
5#include "lmmc/sparse_types.h"
6#include "lmmc/dense_types.h"
7#include "lmmc/status.h"
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
32 const lmmc_sparse_mat_t* a,
33 lmmc_sparse_lu_t** out_lu
34);
35
55 const lmmc_sparse_mat_t* a,
57);
58
80 const lmmc_sparse_lu_t* lu,
81 const lmmc_vec_t* b,
82 lmmc_vec_t* x
83);
84
87
90 const lmmc_sparse_mat_t* a,
91 lmmc_sparse_chol_t** out_chol
92);
93
100 const lmmc_sparse_mat_t* a,
102);
103
106 const lmmc_sparse_chol_t* chol,
107 const lmmc_vec_t* b,
108 lmmc_vec_t* x
109);
110
113
114#ifdef __cplusplus
115}
116#endif
117
118#endif
一维稠密向量。
稀疏 Cholesky 分解上下文(不透明类型,要求 A 对称正定)。
稀疏 LU 分解上下文(不透明类型)。
lmmc_status_t lmmc_sparse_chol_numeric(const lmmc_sparse_mat_t *a, lmmc_sparse_chol_t *chol)
使用稠密列工作区的左看稀疏 Cholesky 数值分解。
lmmc_status_t lmmc_sparse_lu_solve(const lmmc_sparse_lu_t *lu, const lmmc_vec_t *b, lmmc_vec_t *x)
使用已分解的稀疏 LU 因子求解 A*x = b。
void lmmc_sparse_lu_destroy(lmmc_sparse_lu_t *lu)
销毁稀疏 LU 上下文。
lmmc_status_t lmmc_sparse_lu_numeric(const lmmc_sparse_mat_t *a, lmmc_sparse_lu_t *lu)
稀疏 LU 数值分解:稠密列工作区左看算法与部分主元法。
void lmmc_sparse_chol_destroy(lmmc_sparse_chol_t *chol)
销毁稀疏 Cholesky 上下文。
lmmc_status_t lmmc_sparse_chol_solve(const lmmc_sparse_chol_t *chol, const lmmc_vec_t *b, lmmc_vec_t *x)
使用已分解的 Cholesky 因子求解 A*x = b。
lmmc_status_t lmmc_sparse_lu_symbolic(const lmmc_sparse_mat_t *a, lmmc_sparse_lu_t **out_lu)
稀疏 LU 符号分析:去重简单图与贪心残余度重排序。
lmmc_status_t lmmc_sparse_chol_symbolic(const lmmc_sparse_mat_t *a, lmmc_sparse_chol_t **out_chol)
稀疏 Cholesky 符号分析:去重简单图和贪心残余度重排序。
通用稀疏矩阵(CSR / CSC 共用同一结构)。
LMMC 通用状态码定义.
lmmc_status_t
LMMC 库统一返回的状态码.