LMMC
Lamina Mathematic core
Toggle main menu visibility
载入中...
搜索中...
未找到
eigen_internal.h
浏览该文件的文档.
1
7
#ifndef LMMC_EIGEN_INTERNAL_H
8
#define LMMC_EIGEN_INTERNAL_H
9
10
#include <stddef.h>
11
#include "
lmmc/config.h
"
12
#include "
lmmc/dense.h
"
13
14
#define EIGEN_MAX_ITER 30
15
#define MAT_ELEM(mat, i, j) ((mat)->data[(i) * (mat)->stride + (j)])
16
17
lmmc_status_t
lmmc_eigen_matrix_scale
(
const
lmmc_mat_t
* a,
18
lmmc_real_t
* scale);
19
20
/* Apply Householder reflector helpers shared by symmetric eigensolver,
21
* general eigensolver and SVD code paths. Defined once in eigen_internal.c;
22
* deliberately not part of the public API. */
23
void
householder_make
(
lmmc_real_t
*x,
size_t
len,
lmmc_real_t
*tau_out,
24
lmmc_real_t
*beta_out);
25
void
householder_apply_left
(
lmmc_mat_t
*M,
size_t
i0,
size_t
len,
26
size_t
j0,
size_t
j1,
27
const
lmmc_real_t
*v,
lmmc_real_t
tau);
28
void
householder_apply_right
(
lmmc_mat_t
*M,
size_t
i0,
size_t
i1,
29
size_t
j0,
size_t
len,
30
const
lmmc_real_t
*v,
lmmc_real_t
tau);
31
32
/* Givens rotation helpers shared by the SVD code path. */
33
34
void
givens_right
(
lmmc_mat_t
*M,
size_t
rows,
size_t
p,
size_t
q,
35
lmmc_real_t
c,
lmmc_real_t
s);
36
void
givens_compute
(
lmmc_real_t
a,
lmmc_real_t
b,
37
lmmc_real_t
*c,
lmmc_real_t
*s,
lmmc_real_t
*r);
38
39
#endif
/* LMMC_EIGEN_INTERNAL_H */
config.h
LMMC binary real type and arithmetic spelling.
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
givens_right
void givens_right(lmmc_mat_t *M, size_t rows, size_t p, size_t q, lmmc_real_t c, lmmc_real_t s)
定义
eigen_internal.c:100
householder_apply_left
void householder_apply_left(lmmc_mat_t *M, size_t i0, size_t len, size_t j0, size_t j1, const lmmc_real_t *v, lmmc_real_t tau)
定义
eigen_internal.c:72
householder_make
void householder_make(lmmc_real_t *x, size_t len, lmmc_real_t *tau_out, lmmc_real_t *beta_out)
定义
eigen_internal.c:37
givens_compute
void givens_compute(lmmc_real_t a, lmmc_real_t b, lmmc_real_t *c, lmmc_real_t *s, lmmc_real_t *r)
定义
eigen_internal.c:111
householder_apply_right
void householder_apply_right(lmmc_mat_t *M, size_t i0, size_t i1, size_t j0, size_t len, const lmmc_real_t *v, lmmc_real_t tau)
定义
eigen_internal.c:86
lmmc_eigen_matrix_scale
lmmc_status_t lmmc_eigen_matrix_scale(const lmmc_mat_t *a, lmmc_real_t *scale)
定义
eigen_internal.c:16
lmmc_status_t
lmmc_status_t
LMMC 库统一返回的状态码.
定义
status.h:22
src
eigen_internal.h
生成于
, 为 LMMC使用
1.18.0