LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
dense_storage.h
浏览该文件的文档.
1
2#ifndef LMMC_DENSE_STORAGE_H
3#define LMMC_DENSE_STORAGE_H
4
5#include "lmmc/dense_types.h"
6#include "lmmc/status.h"
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
28lmmc_status_t lmmc_mat_create(size_t rows, size_t cols, lmmc_mat_t* out_mat);
29
46lmmc_status_t lmmc_mat_wrap(size_t rows, size_t cols, size_t stride, lmmc_real_t* data, lmmc_mat_t* out_mat);
47
57
69
83
98
110lmmc_status_t lmmc_vec_create(size_t size, lmmc_vec_t* out_vec);
111
126lmmc_status_t lmmc_vec_wrap(size_t size, lmmc_real_t* data, lmmc_vec_t* out_vec);
127
137
149
162
175
187lmmc_status_t lmmc_mat_identity(size_t n, lmmc_mat_t* out_mat);
188
189#ifdef __cplusplus
190}
191#endif
192
193#endif
double lmmc_real_t
Public and internal LMMC real type.
lmmc_status_t lmmc_mat_copy(const lmmc_mat_t *src, lmmc_mat_t *dst)
逐元素复制矩阵内容:dst = src。
lmmc_status_t lmmc_mat_create(size_t rows, size_t cols, lmmc_mat_t *out_mat)
创建 rows x cols 的零矩阵。
lmmc_status_t lmmc_vec_fill(lmmc_vec_t *vec, lmmc_real_t value)
就地将向量所有元素设为 value。
lmmc_status_t lmmc_mat_wrap(size_t rows, size_t cols, size_t stride, lmmc_real_t *data, lmmc_mat_t *out_mat)
创建引用调用方连续缓冲区的矩阵视图。
lmmc_status_t lmmc_vec_swap(lmmc_vec_t *x, lmmc_vec_t *y)
就地交换两个等长向量的全部元素。
lmmc_status_t lmmc_vec_wrap(size_t size, lmmc_real_t *data, lmmc_vec_t *out_vec)
创建引用调用方连续缓冲区的向量视图。
lmmc_status_t lmmc_mat_fill(lmmc_mat_t *mat, lmmc_real_t value)
就地将矩阵所有元素设为 value。
lmmc_status_t lmmc_mat_transpose_to(const lmmc_mat_t *src, lmmc_mat_t *dst)
计算矩阵转置:dst = src^T。
lmmc_status_t lmmc_vec_create(size_t size, lmmc_vec_t *out_vec)
创建长度为 size 的零向量。
lmmc_status_t lmmc_vec_copy(const lmmc_vec_t *src, lmmc_vec_t *dst)
逐元素复制向量内容:dst = src。
lmmc_status_t lmmc_mat_identity(size_t n, lmmc_mat_t *out_mat)
创建 nxn 单位矩阵,对角线为 1,其余元素为 0。
void lmmc_mat_destroy(lmmc_mat_t *mat)
销毁矩阵,释放其拥有的缓冲区并清零结构体字段。
void lmmc_vec_destroy(lmmc_vec_t *vec)
销毁向量,释放其拥有的缓冲区并清零字段。
行优先存储的稠密矩阵。
一维稠密向量。
LMMC 通用状态码定义.
lmmc_status_t
LMMC 库统一返回的状态码.