LMMC
Lamina Mathematic core
Toggle main menu visibility
载入中...
搜索中...
未找到
eigen.h
浏览该文件的文档.
1
5
#ifndef LMMC_EIGEN_H
6
#define LMMC_EIGEN_H
7
8
#include "
lmmc/dense.h
"
9
#include "
lmmc/status.h
"
10
11
#ifdef __cplusplus
12
extern
"C"
{
13
#endif
14
20
typedef
struct
{
21
lmmc_vec_t
eigenvalues
;
22
lmmc_mat_t
eigenvectors
;
23
}
lmmc_eigen_sym_result_t
;
24
28
typedef
struct
{
29
lmmc_vec_t
real_parts
;
30
lmmc_vec_t
imag_parts
;
31
}
lmmc_eigen_gen_result_t
;
32
42
typedef
struct
{
43
lmmc_vec_t
real_parts
;
44
lmmc_vec_t
imag_parts
;
45
lmmc_mat_t
vectors_real
;
46
lmmc_mat_t
vectors_imag
;
47
}
lmmc_eigen_gen_full_result_t
;
48
52
typedef
struct
{
53
lmmc_mat_t
U
;
54
lmmc_vec_t
sigma
;
55
lmmc_mat_t
Vt
;
56
}
lmmc_svd_result_t
;
57
78
lmmc_status_t
lmmc_eigen_symmetric
(
79
const
lmmc_mat_t
* a,
80
lmmc_eigen_sym_result_t
* out_result
81
);
82
103
lmmc_status_t
lmmc_eigen_general
(
104
const
lmmc_mat_t
* a,
105
lmmc_eigen_gen_result_t
* out_result
106
);
107
130
lmmc_status_t
lmmc_svd
(
131
const
lmmc_mat_t
* a,
132
lmmc_svd_result_t
* out_result
133
);
134
159
lmmc_status_t
lmmc_pinv
(
160
const
lmmc_mat_t
* a,
161
lmmc_real_t
tol,
162
lmmc_mat_t
* out_pinv
163
);
164
181
lmmc_status_t
lmmc_cond
(
182
const
lmmc_mat_t
* a,
183
lmmc_real_t
* out_cond
184
);
185
196
lmmc_status_t
lmmc_eigen_general_full
(
197
const
lmmc_mat_t
* a,
198
lmmc_eigen_gen_full_result_t
* out_result
199
);
200
202
void
lmmc_eigen_sym_result_destroy
(
lmmc_eigen_sym_result_t
* result);
204
void
lmmc_eigen_gen_result_destroy
(
lmmc_eigen_gen_result_t
* result);
206
void
lmmc_eigen_gen_full_result_destroy
(
lmmc_eigen_gen_full_result_t
* result);
208
void
lmmc_svd_result_destroy
(
lmmc_svd_result_t
* result);
209
210
#ifdef __cplusplus
211
}
212
#endif
213
214
#endif
lmmc_real_t
double lmmc_real_t
Public and internal LMMC real type.
定义
config.h:28
dense.h
lmmc_mat_t
行优先存储的稠密矩阵。
定义
dense_types.h:18
lmmc_vec_t
一维稠密向量。
定义
dense_types.h:31
lmmc_svd
lmmc_status_t lmmc_svd(const lmmc_mat_t *a, lmmc_svd_result_t *out_result)
计算奇异值分解:A = U * Σ * V^T.
定义
eigen_svd.c:75
lmmc_eigen_sym_result_t::eigenvectors
lmmc_mat_t eigenvectors
定义
eigen.h:22
lmmc_eigen_gen_full_result_t::imag_parts
lmmc_vec_t imag_parts
定义
eigen.h:44
lmmc_eigen_sym_result_destroy
void lmmc_eigen_sym_result_destroy(lmmc_eigen_sym_result_t *result)
释放 lmmc_eigen_symmetric 输出结果.
定义
eigen_symmetric.c:377
lmmc_eigen_symmetric
lmmc_status_t lmmc_eigen_symmetric(const lmmc_mat_t *a, lmmc_eigen_sym_result_t *out_result)
计算实对称矩阵的全部特征值与特征向量.
定义
eigen_symmetric.c:334
lmmc_svd_result_t::sigma
lmmc_vec_t sigma
定义
eigen.h:54
lmmc_eigen_general
lmmc_status_t lmmc_eigen_general(const lmmc_mat_t *a, lmmc_eigen_gen_result_t *out_result)
计算一般实矩阵的特征值(不输出特征向量).
定义
eigen_general.c:138
lmmc_eigen_gen_full_result_t::vectors_real
lmmc_mat_t vectors_real
定义
eigen.h:45
lmmc_svd_result_t::Vt
lmmc_mat_t Vt
定义
eigen.h:55
lmmc_svd_result_t::U
lmmc_mat_t U
定义
eigen.h:53
lmmc_eigen_gen_result_t::imag_parts
lmmc_vec_t imag_parts
定义
eigen.h:30
lmmc_eigen_gen_full_result_t::real_parts
lmmc_vec_t real_parts
定义
eigen.h:43
lmmc_eigen_gen_full_result_t::vectors_imag
lmmc_mat_t vectors_imag
定义
eigen.h:46
lmmc_eigen_gen_result_t::real_parts
lmmc_vec_t real_parts
定义
eigen.h:29
lmmc_pinv
lmmc_status_t lmmc_pinv(const lmmc_mat_t *a, lmmc_real_t tol, lmmc_mat_t *out_pinv)
计算 Moore-Penrose 伪逆 A^+。
定义
eigen_svd.c:203
lmmc_cond
lmmc_status_t lmmc_cond(const lmmc_mat_t *a, lmmc_real_t *out_cond)
计算矩阵的 2-范数条件数:κ_2(A) = sigma_max / sigma_min.
定义
eigen_svd.c:237
lmmc_eigen_general_full
lmmc_status_t lmmc_eigen_general_full(const lmmc_mat_t *a, lmmc_eigen_gen_full_result_t *out_result)
计算一般实矩阵的特征值与特征向量.
定义
eigen_general_vectors.c:77
lmmc_svd_result_destroy
void lmmc_svd_result_destroy(lmmc_svd_result_t *result)
释放 lmmc_svd 输出结果.
定义
eigen_svd.c:262
lmmc_eigen_sym_result_t::eigenvalues
lmmc_vec_t eigenvalues
定义
eigen.h:21
lmmc_eigen_gen_result_destroy
void lmmc_eigen_gen_result_destroy(lmmc_eigen_gen_result_t *result)
释放 lmmc_eigen_general 输出结果.
定义
eigen_general.c:172
lmmc_eigen_gen_full_result_destroy
void lmmc_eigen_gen_full_result_destroy(lmmc_eigen_gen_full_result_t *result)
释放 lmmc_eigen_general_full 输出结果.
定义
eigen_general_vectors.c:14
lmmc_eigen_gen_full_result_t
一般实矩阵完整特征分解结果(特征值 + 特征向量).
定义
eigen.h:42
lmmc_eigen_gen_result_t
一般实矩阵特征分解结果(仅特征值,使用实部 / 虚部分别存储).
定义
eigen.h:28
lmmc_eigen_sym_result_t
对称矩阵特征分解结果.
定义
eigen.h:20
lmmc_svd_result_t
奇异值分解结果: .
定义
eigen.h:52
status.h
LMMC 通用状态码定义.
lmmc_status_t
lmmc_status_t
LMMC 库统一返回的状态码.
定义
status.h:22
lmmc
eigen.h
生成于
, 为 LMMC使用
1.18.0