Program listing for file numerics/src/tools/JordanAlgebra.h#
Return to documentation for this file
1#ifndef JORDAN_ALGEBRA_H
2#define JORDAN_ALGEBRA_H
3
4
5
6#include "NumericsMatrix.h"
7
8typedef long double float_type;
9
10
11
12NumericsMatrix* Arrow_repr(const double* const vec, const unsigned int vecSize,
13 const size_t varsCount);
14
15
16NumericsMatrix* Reflect_mat(const unsigned int size, NM_types type);
17
18
19NumericsMatrix* Quad_repr(const double* const vec, const unsigned int vecSize,
20 const size_t varsCount);
21
22void NesterovToddVector(const double* const vec1, const double* const vec2,
23 const unsigned int vecSize, const size_t varsCount, double* out);
24
25
26double* JA_iden(const unsigned int vecSize, const size_t varsCount);
27
28
29void JA_prod(const double* const vec1, const double* const vec2, const unsigned int vecSize,
30 const int varsCount, double* out);
31
32
33void JA_eigenvals(const double* const vec, const unsigned int vecSize, const size_t varsCount,
34 double* out);
35
36
37void JA_eigenvecs(const double* const vec, const unsigned int vecSize, const size_t varsCount,
38 double** out);
39
40
41void JA_sqrt(const double* const vec, const unsigned int vecSize, const size_t varsCount,
42 double* out);
43
44
45void JA_sqrt_inv(const double* const vec, const unsigned int vecSize, const size_t varsCount,
46 double* out);
47
48
49void JA_power2(const double* const vec, const unsigned int vecSize, const size_t varsCount,
50 double* out);
51
52
53void JA_inv(const double* const vec, const unsigned int vecSize, const size_t varsCount,
54 double* out);
55
56
57void JA_det(const double* const vec, const unsigned int vecSize, const size_t varsCount,
58 double* out);
59
60
61float_type dnrm2l(const unsigned int n, const double* x);
62
63
64float_type dnrm2sqrl(const unsigned int n, const double* x);
65
66
67void Qx05y(const double* const x, const double* const y, const unsigned int vecSize,
68 const size_t varsCount, double* out);
69
70
71void Qx50y(const double* const x, const double* const y, const unsigned int vecSize,
72 const size_t varsCount, double* out);
73
74
75void Jinv(const double* const x, const unsigned int vecSize, const size_t varsCount,
76 double* out);
77
78
79void Jsqrt(const double* const x, const unsigned int vecSize, const size_t varsCount,
80 double* out);
81
82
83void Jsqrtinv(const double* const x, const unsigned int vecSize, const size_t varsCount,
84 double* out);
85
86
87void Nesterov_Todd_vector(short T, const double* const x, const double* const y,
88 const unsigned int vecSize, const size_t varsCount, double* p);
89
90
91void Nesterov_Todd_vector_b(const double* const x, const double* const y,
92 const unsigned int vecSize, const size_t varsCount, double* p);
93
94
95void Qxy(const double* const x, const double* const y, const unsigned int vecSize,
96 const size_t varsCount, double* z);
97
98
99void QNTpz(const double* const x, const double* const y, const double* const z,
100 const unsigned int vecSize, const size_t varsCount, double* out);
101
102
103void QNTpinvz(const double* const x, const double* const y, const double* const z,
104 const unsigned int vecSize, const size_t varsCount, double* out);
105
106
107void QNTpinv2z(const double* const x, const double* const y, const double* const z,
108 const unsigned int vecSize, const size_t varsCount, double* out);
109
110
111void Jxinvprody(const double* const x, const double* const y, const unsigned int vecSize,
112 const size_t varsCount, double* out);
113
114
115NumericsMatrix* QRmat(const double* const vec, const unsigned int vecSize,
116 const size_t varsCount);
117
118
119float_type ld_gammal(const double* const x, const size_t dimension);
120
121float_type dnrm2l(const unsigned int n, const double* x);
122
123
124NumericsMatrix* NTmat(const double* const x, const double* const z, const unsigned int vecSize,
125 const size_t varsCount);
126
127
128NumericsMatrix* NTmatinv(const double* const x, const double* const z,
129 const unsigned int vecSize, const size_t varsCount);
130
131
132NumericsMatrix* NTmatsqr(const double* const x, const double* const z,
133 const unsigned int vecSize, const size_t varsCount);
134
135#endif