|
LMMC
Lamina Mathematic core
|
结构体 | |
| struct | lmmc_sparse_mat_t |
| 通用稀疏矩阵(CSR / CSC 共用同一结构)。 更多... | |
| struct | lmmc_sparse_coo_t |
| 三元组 (COO) 形式的稀疏矩阵临时表示。 更多... | |
| struct | lmmc_sparse_bsr_t |
| 块稀疏行 (BSR) 格式矩阵。 更多... | |
| struct | lmmc_sparse_sym_csr_t |
| 对称半存储 CSR 格式矩阵。 更多... | |
枚举 | |
| enum | lmmc_sparse_format_t { LMMC_SPARSE_CSR = 0 , LMMC_SPARSE_CSC = 1 } |
| 稀疏矩阵存储格式。 更多... | |
| enum | lmmc_sparse_sym_half_t { LMMC_SPARSE_SYM_UPPER = 0 , LMMC_SPARSE_SYM_LOWER = 1 } |
| 对称半存储选择:上三角或下三角。 更多... | |
| struct lmmc_sparse_mat_t |
通用稀疏矩阵(CSR / CSC 共用同一结构)。
当 format = LMMC_SPARSE_CSR :
row_ptr 长度为 rows+1 ,col_idx 与 values 长度均为 nnz 。当 format = LMMC_SPARSE_CSC :
row_ptr 在此别名为 col_ptr,长度为 cols+1 ,col_idx 在此别名为 row_idx,长度为 nnz 。有效矩阵的 format 只能为 CSR 或 CSC, rows/cols 必须非零。 外指针从 0 单调递增到 nnz, 各段内索引必须在范围内且严格递增: 同一坐标仅存一项. 显式零保留, nnz 表示存储条目数而非数学非零数。 乱序或重复输入须通过 builder/COO 转换规范化。
在文件 sparse_types.h 第 34 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | rows |
行数。 |
| size_t | cols |
列数。 |
| size_t | nnz |
存储条目数,包括显式零。 |
| size_t * | row_ptr |
CSR 行指针 / CSC 列指针数组。 |
| size_t * | col_idx |
CSR 列索引 / CSC 行索引数组。 |
| lmmc_real_t * | values |
存储条目的数值数组,长度 |
| lmmc_sparse_format_t | format |
存储格式。 |
| int | owns_data |
是否拥有底层缓冲区。 |
| struct lmmc_sparse_coo_t |
| 成员变量 | ||
|---|---|---|
| size_t | rows |
行数。 |
| size_t | cols |
列数。 |
| size_t | nnz |
当前已插入的条目数。 |
| size_t | capacity |
当前容量。 |
| size_t * | row_idx |
行下标数组,长度 |
| size_t * | col_idx |
列下标数组,长度 |
| lmmc_real_t * | values |
数值数组,长度 |
| struct lmmc_sparse_bsr_t |
块稀疏行 (BSR) 格式矩阵。
每个非零块为 block_size x block_size 的稠密子矩阵, 按行优先存储在 values 中。
在文件 sparse_types.h 第 92 行定义.
| 成员变量 | ||
|---|---|---|
| size_t | rows |
块行数。 |
| size_t | cols |
块列数。 |
| size_t | block_size |
rxr 块维度。 |
| size_t | nnz_blocks |
非零块数量。 |
| size_t * | row_ptr |
块行指针数组,长度 rows+1 。 |
| size_t * | col_idx |
块列索引数组,长度 nnz_blocks 。 |
| lmmc_real_t * | values |
块数值数组,长度 nnz_blocks * block_size^2 。 |
| int | owns_data |
是否拥有底层缓冲区。 |
| struct lmmc_sparse_sym_csr_t |
| 成员变量 | ||
|---|---|---|
| size_t | n |
矩阵阶数(方阵)。 |
| size_t | nnz |
存储的非零元个数(仅半三角)。 |
| size_t * | row_ptr |
行指针数组,长度 n+1 。 |
| size_t * | col_idx |
列索引数组,长度 nnz 。 |
| lmmc_real_t * | values |
数值数组,长度 nnz 。 |
| lmmc_sparse_sym_half_t | half |
存储的半三角类型。 |
| int | owns_data |
是否拥有底层缓冲区。 |
| enum lmmc_sparse_format_t |
稀疏矩阵存储格式。
| 枚举值 | ||
|---|---|---|
| LMMC_SPARSE_CSR | 0 | 压缩行存储 (Compressed Sparse Row)。 |
| LMMC_SPARSE_CSC | 1 | 压缩列存储 (Compressed Sparse Column)。 |
在文件 sparse_types.h 第 13 行定义.
对称半存储选择:上三角或下三角。
| 枚举值 | ||
|---|---|---|
| LMMC_SPARSE_SYM_UPPER | 0 | 存储上三角(含对角线)。 |
| LMMC_SPARSE_SYM_LOWER | 1 | 存储下三角(含对角线)。 |
在文件 sparse_types.h 第 104 行定义.