LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
sparse_direct_internal.h 文件参考
#include "lmmc/sparse.h"
sparse_direct_internal.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

结构体

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)

结构体说明

◆ lmmc_sparse_lu_t

struct lmmc_sparse_lu_t

稀疏 LU 分解上下文(不透明类型)。

符号阶段在 A+A^T 的去重对称简单图上执行确定性的贪心残余度排序。 排序仅删除已消元顶点的关联边,不建模消元填充(区别于 AMD)。 分解按符号分析、数值分解与求解三个阶段执行。

在文件 sparse_direct_internal.h 第 6 行定义.

lmmc_sparse_lu_t 的协作图:
成员变量
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

◆ lmmc_sparse_chol_t

struct lmmc_sparse_chol_t

稀疏 Cholesky 分解上下文(不透明类型,要求 A 对称正定)。

符号阶段在去重对称简单图上执行确定性的贪心残余度排序; 数值阶段使用稠密列工作区的左看 Cholesky。排序不建模填充(区别于 AMD)。 分解按符号分析、数值分解与求解三个阶段执行。

在文件 sparse_direct_internal.h 第 23 行定义.

lmmc_sparse_chol_t 的协作图:
成员变量
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_sparse_direct_csc()

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_sparse_factor_capacity()

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_sparse_residual_reorder()

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().

函数调用图:
这是这个函数的调用关系图: