Tatooine
tensor
include
tatooine
lapack
base.h
Go to the documentation of this file.
1
#ifndef TATOOINE_LAPACK_BASE_H
2
#define TATOOINE_LAPACK_BASE_H
3
//==============================================================================
4
#include <
tatooine/blas/base.h
>
5
//==============================================================================
6
namespace
tatooine::lapack
{
7
//==============================================================================
41
using
blas::diag
;
42
using
blas::format
;
43
using
blas::op
;
44
using
blas::uplo
;
45
using
blas::side
;
46
47
// like blas::side, but adds Both for trevc
48
enum 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
55
enum 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
70
enum 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
78
enum class
job_schur
:
char
{
79
eigenvalues
=
'E'
,
80
schur
=
'S'
,
81
};
82
// gees
83
// todo: generic yes/no
84
enum class
sort
{
85
not_sorted
=
'N'
,
86
sorted
=
'S'
,
87
};
88
// syevx
89
enum class
range
{
90
all
=
'A'
,
91
value
=
'V'
,
92
index
=
'I'
,
93
};
94
enum 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
101
enum class
direction
{
102
forward
=
'F'
,
103
backward
=
'B'
,
104
};
105
// larfb
106
enum class
store_v
{
107
column_wise
=
'C'
,
108
row_wise
=
'R'
,
109
};
110
// lascl, laset
111
enum 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
121
enum class
how_many
{
122
all
=
'A'
,
123
backtransform
=
'B'
,
124
select
=
'S'
,
125
};
126
// *svx, *rfsx
127
enum 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?
136
enum class
factored
{
137
factored
=
'F'
,
138
notFactored
=
'N'
,
139
equilibrate
=
'E'
,
140
};
141
// geesx, trsen
142
enum class
sense
{
143
none
=
'N'
,
144
eigenvalues
=
'E'
,
145
subspace
=
'V'
,
146
both
=
'B'
,
147
};
148
// disna
149
enum class
job_cond
{
150
eigen_vec
=
'E'
,
151
left_singular_vec
=
'L'
,
152
right_singular_vec
=
'R'
,
153
};
154
// {ge,gg}{bak,bal}
155
enum class
balance
{
156
none
=
'N'
,
157
permute
=
'P'
,
158
scale
=
'S'
,
159
both
=
'B'
,
160
};
161
// stebz, larrd, stein docs
162
enum class
order
{
163
block
=
'B'
,
164
entire
=
'E'
,
165
};
166
// check_ortho (LAPACK testing zunt01)
167
enum class
row_col
{
168
col
=
'C'
,
169
row
=
'R'
,
170
};
171
//==============================================================================
172
}
// namespace tatooine::lapack
173
//==============================================================================
174
#endif
tatooine::range
Definition:
concepts.h:84
tatooine::blas::format
format
Definition:
base.h:54
tatooine::blas::uplo
uplo
Definition:
base.h:51
tatooine::blas::side
side
Definition:
base.h:53
tatooine::blas::diag
diag
Definition:
base.h:52
tatooine::blas::op
op
Definition:
base.h:46
tatooine::lapack
Definition:
base.h:6
tatooine::lapack::factored
factored
Definition:
base.h:136
tatooine::lapack::factored::equilibrate
@ equilibrate
tatooine::lapack::factored::notFactored
@ notFactored
tatooine::lapack::job_schur
job_schur
Definition:
base.h:78
tatooine::lapack::job_schur::eigenvalues
@ eigenvalues
tatooine::lapack::job_schur::schur
@ schur
tatooine::lapack::sense
sense
Definition:
base.h:142
tatooine::lapack::sense::subspace
@ subspace
tatooine::lapack::how_many
how_many
Definition:
base.h:121
tatooine::lapack::how_many::backtransform
@ backtransform
tatooine::lapack::how_many::select
@ select
tatooine::lapack::sort
sort
Definition:
base.h:84
tatooine::lapack::sort::sorted
@ sorted
tatooine::lapack::sort::not_sorted
@ not_sorted
tatooine::lapack::order
order
Definition:
base.h:162
tatooine::lapack::order::block
@ block
tatooine::lapack::order::entire
@ entire
tatooine::lapack::direction
direction
Definition:
base.h:101
tatooine::lapack::direction::backward
@ backward
tatooine::lapack::direction::forward
@ forward
tatooine::lapack::matrix_type
matrix_type
Definition:
base.h:111
tatooine::lapack::matrix_type::upper
@ upper
tatooine::lapack::matrix_type::upper_band
@ upper_band
tatooine::lapack::matrix_type::hessenberg
@ hessenberg
tatooine::lapack::matrix_type::band
@ band
tatooine::lapack::matrix_type::lower_band
@ lower_band
tatooine::lapack::matrix_type::lower
@ lower
tatooine::lapack::matrix_type::general
@ general
tatooine::lapack::store_v
store_v
Definition:
base.h:106
tatooine::lapack::store_v::row_wise
@ row_wise
tatooine::lapack::store_v::column_wise
@ column_wise
tatooine::lapack::sides
sides
Definition:
base.h:48
tatooine::lapack::sides::right
@ right
tatooine::lapack::sides::left
@ left
tatooine::lapack::sides::both
@ both
tatooine::lapack::balance
balance
Definition:
base.h:155
tatooine::lapack::balance::scale
@ scale
tatooine::lapack::balance::permute
@ permute
tatooine::lapack::range::value
@ value
tatooine::lapack::range::index
@ index
tatooine::lapack::range::all
@ all
tatooine::lapack::job_cond
job_cond
Definition:
base.h:149
tatooine::lapack::job_cond::eigen_vec
@ eigen_vec
tatooine::lapack::job_cond::right_singular_vec
@ right_singular_vec
tatooine::lapack::job_cond::left_singular_vec
@ left_singular_vec
tatooine::lapack::row_col
row_col
Definition:
base.h:167
tatooine::lapack::norm
norm
Definition:
base.h:70
tatooine::lapack::norm::max
@ max
tatooine::lapack::norm::fro
@ fro
tatooine::lapack::norm::two
@ two
tatooine::lapack::norm::inf
@ inf
tatooine::lapack::norm::one
@ one
tatooine::lapack::job
job
Definition:
base.h:55
tatooine::lapack::job::overwrite_vec
@ overwrite_vec
tatooine::lapack::job::workspace
@ workspace
tatooine::lapack::job::some_vec_tol
@ some_vec_tol
tatooine::lapack::job::all_vec
@ all_vec
tatooine::lapack::job::some_vec
@ some_vec
tatooine::lapack::job::vec_jacobi
@ vec_jacobi
tatooine::lapack::job::update_vec
@ update_vec
tatooine::lapack::job::no_vec
@ no_vec
tatooine::lapack::job::compact_vec
@ compact_vec
tatooine::lapack::vect
vect
Definition:
base.h:94
tatooine::lapack::vect::none
@ none
tatooine::lapack::vect::q
@ q
tatooine::lapack::vect::p
@ p
tatooine::lapack::equed
equed
Definition:
base.h:127
tatooine::lapack::equed::yes
@ yes
tatooine::lapack::equed::col
@ col
tatooine::lapack::equed::row
@ row
tatooine::vec
Definition:
vec.h:12
base.h
Generated by
1.9.5