LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
stdlib_linalg.h
浏览该文件的文档.
1
2#ifndef LMMC_STDLIB_LINALG_H
3#define LMMC_STDLIB_LINALG_H
4
5#include "lmmc/stdlib_types.h"
6#include "lmmc/eigen.h"
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
22
24 size_t* out_rows,
25 size_t* out_cols);
27 lmmc_vec_t* out);
30 lmmc_mat_t* out);
32 const lmmc_vec_t* b,
33 lmmc_real_t* out);
35 const lmmc_vec_t* b,
36 lmmc_vec_t* out);
38 lmmc_real_t* out);
40 const lmmc_vec_t* b,
41 lmmc_vec_t* out);
43 lmmc_real_t scalar,
44 lmmc_vec_t* out);
46 const lmmc_vec_t* b,
47 lmmc_vec_t* out);
49 lmmc_real_t scalar,
50 lmmc_vec_t* out);
52 const lmmc_vec_t* x,
53 lmmc_vec_t* out);
55 const lmmc_vec_t* b,
56 lmmc_vec_t* out);
58 lmmc_real_t scalar,
59 lmmc_vec_t* out);
61 const lmmc_vec_t* b,
62 lmmc_vec_t* out);
64 lmmc_real_t scalar,
65 lmmc_vec_t* out);
67 const lmmc_vec_t* x,
68 lmmc_vec_t* out);
70 const lmmc_vec_t* exponent,
71 lmmc_vec_t* out);
73 lmmc_real_t exponent,
74 lmmc_vec_t* out);
76 lmmc_real_t alpha,
77 lmmc_vec_t* out);
79 const lmmc_mat_t* b,
80 lmmc_mat_t* out);
82 lmmc_real_t scalar,
83 lmmc_mat_t* out);
85 const lmmc_mat_t* b,
86 lmmc_mat_t* out);
88 lmmc_real_t scalar,
89 lmmc_mat_t* out);
91 const lmmc_mat_t* a,
92 lmmc_mat_t* out);
94 const lmmc_mat_t* b,
95 lmmc_mat_t* out);
97 lmmc_real_t scalar,
98 lmmc_mat_t* out);
100 const lmmc_mat_t* b,
101 lmmc_mat_t* out);
103 lmmc_real_t scalar,
104 lmmc_mat_t* out);
106 const lmmc_mat_t* a,
107 lmmc_mat_t* out);
109 const lmmc_mat_t* exponent,
110 lmmc_mat_t* out);
112 lmmc_real_t exponent,
113 lmmc_mat_t* out);
115 int64_t exponent,
116 lmmc_mat_t* out);
118 lmmc_real_t alpha,
119 lmmc_mat_t* out);
121 const lmmc_vec_t* b,
126 lmmc_real_t scalar,
129 const lmmc_mat_t* b,
134 lmmc_real_t scalar,
139 const lmmc_mat_t* b,
140 lmmc_mat_t* out);
142 const lmmc_vec_t* x,
143 lmmc_vec_t* out);
145 lmmc_mat_t* out);
147 lmmc_mat_t* out);
149 lmmc_real_t* out);
151 lmmc_mat_t* out);
153 size_t* out_rank);
155 lmmc_real_t* out);
157 const lmmc_mat_t* b,
158 lmmc_mat_t* out);
160 const lmmc_mat_t* a,
161 lmmc_mat_t* out);
165 lmmc_svd_result_t* out);
166
170const char* lmmc_std_eig_table_key(const lmmc_std_eig_table_t* table,
171 size_t index);
173 const char* key);
175
179const char* lmmc_std_svd_table_key(const lmmc_std_svd_table_t* table,
180 size_t index);
182 const char* key);
184
185#ifdef __cplusplus
186}
187#endif
188
189#endif
double lmmc_real_t
Public and internal LMMC real type.
行优先存储的稠密矩阵。
一维稠密向量。
特征值 / 奇异值分解,伪逆与条件数接口.
一般实矩阵完整特征分解结果(特征值 + 特征向量).
定义 eigen.h:42
奇异值分解结果: .
定义 eigen.h:52
lmmc_status_t
LMMC 库统一返回的状态码.
lmmc_status_t lmmc_std_linalg_mat_add(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_mat_sub_scalar(const lmmc_mat_t *a, lmmc_real_t scalar, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_norm(const lmmc_vec_t *x, lmmc_real_t *out)
const lmmc_mat_t * lmmc_std_svd_table_get(const lmmc_std_svd_table_t *table, const char *key)
lmmc_status_t lmmc_std_linalg_mat_div_scalar(const lmmc_mat_t *a, lmmc_real_t scalar, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_mat_scale(const lmmc_mat_t *a, lmmc_real_t alpha, lmmc_mat_t *out)
const char * lmmc_std_svd_table_key(const lmmc_std_svd_table_t *table, size_t index)
lmmc_status_t lmmc_std_linalg_mat_compare_scalar(const lmmc_mat_t *a, lmmc_std_compare_op_t op, lmmc_real_t scalar, lmmc_std_bool_mat_t *out)
lmmc_status_t lmmc_std_linalg_svd_table(const lmmc_mat_t *a, lmmc_std_svd_table_t *out)
lmmc_status_t lmmc_std_linalg_eig_table(const lmmc_mat_t *a, lmmc_std_eig_table_t *out)
lmmc_status_t lmmc_std_linalg_mat_mul_scalar(const lmmc_mat_t *a, lmmc_real_t scalar, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_scalar_div_mat(lmmc_real_t scalar, const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_inv(const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_scalar_sub_vec(lmmc_real_t scalar, const lmmc_vec_t *x, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_mat_add_scalar(const lmmc_mat_t *a, lmmc_real_t scalar, lmmc_mat_t *out)
const char * lmmc_std_eig_table_key(const lmmc_std_eig_table_t *table, size_t index)
lmmc_status_t lmmc_std_linalg_adjoint(const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_scalar_div_vec(lmmc_real_t scalar, const lmmc_vec_t *x, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_matvec(const lmmc_mat_t *a, const lmmc_vec_t *x, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_vec_scale(const lmmc_vec_t *x, lmmc_real_t alpha, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_mat_compare(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_std_compare_op_t op, lmmc_std_bool_mat_t *out)
lmmc_status_t lmmc_std_linalg_solve_left(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_pow_scalar(const lmmc_vec_t *base, lmmc_real_t exponent, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_vec_pow(const lmmc_vec_t *base, const lmmc_vec_t *exponent, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_det(const lmmc_mat_t *a, lmmc_real_t *out)
const lmmc_mat_t * lmmc_std_eig_table_get(const lmmc_std_eig_table_t *table, const char *key)
lmmc_status_t lmmc_std_linalg_dot(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_real_t *out)
lmmc_status_t lmmc_std_linalg_shape_vec(const lmmc_mat_t *a, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_mat_pow_int(const lmmc_mat_t *base, int64_t exponent, lmmc_mat_t *out)
void lmmc_std_bool_vec_destroy(lmmc_std_bool_vec_t *vec)
lmmc_status_t lmmc_std_linalg_vec_sub(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_mat_pow_elem(const lmmc_mat_t *base, const lmmc_mat_t *exponent, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_shape(const lmmc_mat_t *a, size_t *out_rows, size_t *out_cols)
lmmc_status_t lmmc_std_linalg_vec_mul_scalar(const lmmc_vec_t *x, lmmc_real_t scalar, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_transpose(const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_trace(const lmmc_mat_t *a, lmmc_real_t *out)
lmmc_status_t lmmc_std_linalg_svd(const lmmc_mat_t *a, lmmc_svd_result_t *out)
lmmc_status_t lmmc_std_linalg_mat_mul_elem(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_div_scalar(const lmmc_vec_t *x, lmmc_real_t scalar, lmmc_vec_t *out)
void lmmc_std_bool_mat_destroy(lmmc_std_bool_mat_t *mat)
lmmc_status_t lmmc_std_linalg_matmul(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_mat_div(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_sub_scalar(const lmmc_vec_t *x, lmmc_real_t scalar, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_vec_mul(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *out)
size_t lmmc_std_eig_table_count(const lmmc_std_eig_table_t *table)
lmmc_status_t lmmc_std_linalg_eig(const lmmc_mat_t *a, lmmc_eigen_gen_full_result_t *out)
lmmc_status_t lmmc_std_linalg_scalar_sub_mat(lmmc_real_t scalar, const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_compare(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_std_compare_op_t op, lmmc_std_bool_vec_t *out)
void lmmc_std_eig_table_destroy(lmmc_std_eig_table_t *table)
lmmc_status_t lmmc_std_linalg_vec_div(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_vec_compare_scalar(const lmmc_vec_t *a, lmmc_std_compare_op_t op, lmmc_real_t scalar, lmmc_std_bool_vec_t *out)
lmmc_status_t lmmc_std_linalg_cross(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *out)
size_t lmmc_std_svd_table_count(const lmmc_std_svd_table_t *table)
lmmc_status_t lmmc_std_linalg_solve_right(const lmmc_mat_t *b, const lmmc_mat_t *a, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_add_scalar(const lmmc_vec_t *x, lmmc_real_t scalar, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_rank(const lmmc_mat_t *a, size_t *out_rank)
lmmc_status_t lmmc_std_linalg_mat_sub(const lmmc_mat_t *a, const lmmc_mat_t *b, lmmc_mat_t *out)
void lmmc_std_svd_table_destroy(lmmc_std_svd_table_t *table)
lmmc_status_t lmmc_std_linalg_eye(size_t n, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_vec_add(const lmmc_vec_t *a, const lmmc_vec_t *b, lmmc_vec_t *out)
lmmc_status_t lmmc_std_linalg_diag(const lmmc_vec_t *diagonal, lmmc_mat_t *out)
lmmc_status_t lmmc_std_linalg_mat_pow_scalar(const lmmc_mat_t *base, lmmc_real_t exponent, lmmc_mat_t *out)
lmmc_std_compare_op_t
std.linalg.eig 使用的 LSR 标准 table<text, matrix> 视图。
std.linalg.svd 使用的 LSR 标准 table<text, matrix> 视图。