|
LMMC
Lamina Mathematic core
|
#include "lmmc/sparse.h"结构体 | |
| struct | lmmc_sparse_lu_t |
| 稀疏 LU 分解上下文(不透明类型)。 更多... | |
| struct | lmmc_sparse_chol_t |
稀疏 Cholesky 分解上下文(不透明类型,要求 A 对称正定)。 更多... | |
函数 | |
| lmmc_status_t | lmmc_sparse_direct_csc (const lmmc_sparse_mat_t *a, lmmc_sparse_mat_t *csc_out, int *needs_free) |
| lmmc_status_t | lmmc_sparse_factor_capacity (size_t **idx, lmmc_real_t **vals, size_t *capacity, size_t needed) |
| lmmc_status_t | lmmc_sparse_residual_reorder (const lmmc_sparse_mat_t *csc, size_t *perm) |
| struct lmmc_sparse_lu_t |
稀疏 LU 分解上下文(不透明类型)。
符号阶段在 A+A^T 的去重对称简单图上执行确定性的贪心残余度排序。 排序仅删除已消元顶点的关联边,不建模消元填充(区别于 AMD)。 分解按符号分析、数值分解与求解三个阶段执行。
在文件 sparse_direct_internal.h 第 6 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | n | |
| size_t * | col_perm |
残余度列置换:新索引 -> 原索引。 |
| size_t * | row_perm |
部分主元法产生的行置换。 |
| size_t * | L_col_ptr | |
| size_t * | U_col_ptr | |
| size_t * | L_row_idx | |
| lmmc_real_t * | L_values | |
| size_t * | U_row_idx | |
| lmmc_real_t * | U_values | |
| size_t | L_nnz | |
| size_t | U_nnz | |
| size_t | L_capacity | |
| size_t | U_capacity | |
| struct lmmc_sparse_chol_t |
稀疏 Cholesky 分解上下文(不透明类型,要求 A 对称正定)。
符号阶段在去重对称简单图上执行确定性的贪心残余度排序; 数值阶段使用稠密列工作区的左看 Cholesky。排序不建模填充(区别于 AMD)。 分解按符号分析、数值分解与求解三个阶段执行。
在文件 sparse_direct_internal.h 第 23 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | n | |
| size_t * | perm |
残余度置换:新索引 -> 原索引。 |
| size_t * | perm_inv |
逆置换:原索引 -> 新索引。 |
| size_t * | L_col_ptr | |
| size_t * | L_row_idx | |
| lmmc_real_t * | L_values | |
| size_t | L_nnz | |
| size_t | L_capacity | |
| lmmc_status_t lmmc_sparse_direct_csc | ( | const lmmc_sparse_mat_t * | a, |
| lmmc_sparse_mat_t * | csc_out, | ||
| int * | needs_free ) |
在文件 sparse_direct.c 第 9 行定义.
引用了 lmmc_sparse_mat_t::format, LMMC_SPARSE_CSC, lmmc_sparse_direct_csc(), lmmc_sparse_to_csc(), LMMC_STATUS_INVALID_ARGUMENT , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_sparse_chol_numeric(), lmmc_sparse_chol_symbolic(), lmmc_sparse_direct_csc(), lmmc_sparse_lu_numeric() , 以及 lmmc_sparse_lu_symbolic().
| lmmc_status_t lmmc_sparse_factor_capacity | ( | size_t ** | idx, |
| lmmc_real_t ** | vals, | ||
| size_t * | capacity, | ||
| size_t | needed ) |
在文件 sparse_direct.c 第 26 行定义.
引用了 lmmc_memory_realloc(), lmmc_sparse_factor_capacity(), LMMC_STATUS_ALLOCATION_FAILED , 以及 LMMC_STATUS_OK.
被这些函数引用 lmmc_sparse_factor_capacity().
| lmmc_status_t lmmc_sparse_residual_reorder | ( | const lmmc_sparse_mat_t * | csc, |
| size_t * | perm ) |
在文件 sparse_reordering.c 第 322 行定义.
引用了 lmmc_sparse_mat_t::col_idx, lmmc_memory_free(), lmmc_sparse_residual_reorder(), LMMC_STATUS_OK, lmmc_sparse_mat_t::row_ptr , 以及 lmmc_sparse_mat_t::rows.
被这些函数引用 lmmc_sparse_chol_symbolic(), lmmc_sparse_lu_symbolic() , 以及 lmmc_sparse_residual_reorder().