Tatooine
base.h
Go to the documentation of this file.
1#ifndef TATOOINE_LAPACK_BASE_H
2#define TATOOINE_LAPACK_BASE_H
3//==============================================================================
5//==============================================================================
6namespace tatooine::lapack {
7//==============================================================================
41using blas::diag;
42using blas::format;
43using blas::op;
44using blas::uplo;
45using blas::side;
46
47// like blas::side, but adds Both for trevc
48enum class sides : char {
49 left = 'L',
50 right = 'R',
51 both = 'B',
52};
53// Job for computing eigenvectors and singular vectors
54// # needs custom map
55enum class job : char {
56 no_vec = 'N',
57 vec = 'V', // geev, syev, ...
58 update_vec = 'U', // gghrd#, hbtrd, hgeqz#, hseqr#, ... (many compq or compz)
59
60 all_vec = 'A', // gesvd, gesdd, gejsv#
61 some_vec = 'S', // gesvd, gesdd, gejsv#, gesvj#
62 overwrite_vec = 'O', // gesvd, gesdd
63
64 compact_vec = 'P', // bdsdc
65 some_vec_tol = 'C', // gesvj
66 vec_jacobi = 'J', // gejsv
67 workspace = 'W', // gejsv
68};
69
70enum class norm : char {
71 one = '1', // or 'O'
72 two = '2',
73 inf = 'I',
74 fro = 'F', // or 'E'
75 max = 'M',
76};
77// hseqr
78enum class job_schur : char {
79 eigenvalues = 'E',
80 schur = 'S',
81};
82// gees
83// todo: generic yes/no
84enum class sort {
85 not_sorted = 'N',
86 sorted = 'S',
87};
88// syevx
89enum class range {
90 all = 'A',
91 value = 'V',
92 index = 'I',
93};
94enum class vect {
95 q = 'Q', // orgbr, ormbr
96 p = 'P', // orgbr, ormbr
97 none = 'N', // orgbr, ormbr, gbbrd
98 both = 'B', // orgbr, ormbr, gbbrd
99};
100// larfb
101enum class direction {
102 forward = 'F',
103 backward = 'B',
104};
105// larfb
106enum class store_v {
107 column_wise = 'C',
108 row_wise = 'R',
109};
110// lascl, laset
111enum class matrix_type {
112 general = 'G',
113 lower = 'L',
114 upper = 'U',
115 hessenberg = 'H',
116 lower_band = 'B',
117 upper_band = 'Q',
118 band = 'Z',
119};
120// trevc
121enum class how_many {
122 all = 'A',
123 backtransform = 'B',
124 select = 'S',
125};
126// *svx, *rfsx
127enum class equed {
128 none = 'N',
129 row = 'R',
130 col = 'C',
131 both = 'B',
132 yes = 'Y', // porfsx
133};
134// *svx
135// todo: what's good name for this?
136enum class factored {
137 factored = 'F',
138 notFactored = 'N',
139 equilibrate = 'E',
140};
141// geesx, trsen
142enum class sense {
143 none = 'N',
144 eigenvalues = 'E',
145 subspace = 'V',
146 both = 'B',
147};
148// disna
149enum class job_cond {
150 eigen_vec = 'E',
151 left_singular_vec = 'L',
152 right_singular_vec = 'R',
153};
154// {ge,gg}{bak,bal}
155enum class balance {
156 none = 'N',
157 permute = 'P',
158 scale = 'S',
159 both = 'B',
160};
161// stebz, larrd, stein docs
162enum class order {
163 block = 'B',
164 entire = 'E',
165};
166// check_ortho (LAPACK testing zunt01)
167enum class row_col {
168 col = 'C',
169 row = 'R',
170};
171//==============================================================================
172} // namespace tatooine::lapack
173//==============================================================================
174#endif
Definition: concepts.h:84
format
Definition: base.h:54
uplo
Definition: base.h:51
side
Definition: base.h:53
diag
Definition: base.h:52
op
Definition: base.h:46
Definition: base.h:6
factored
Definition: base.h:136
job_schur
Definition: base.h:78
sense
Definition: base.h:142
how_many
Definition: base.h:121
sort
Definition: base.h:84
order
Definition: base.h:162
direction
Definition: base.h:101
matrix_type
Definition: base.h:111
store_v
Definition: base.h:106
sides
Definition: base.h:48
balance
Definition: base.h:155
job_cond
Definition: base.h:149
row_col
Definition: base.h:167
norm
Definition: base.h:70
job
Definition: base.h:55
vect
Definition: base.h:94
equed
Definition: base.h:127
Definition: vec.h:12