consteig
Compile-time eigenvalue and eigenvector computation for C++17
Loading...
Searching...
No Matches
consteig_options.hpp
1#ifndef CONSTEIG_OPTIONS_HPP
2#define CONSTEIG_OPTIONS_HPP
3
12
20#ifndef CONSTEIG_MAX_ITER
21#define CONSTEIG_MAX_ITER 500
22#endif
23
32#ifndef CONSTEIG_DEFAULT_SYMMETRIC_TOLERANCE
33#define CONSTEIG_DEFAULT_SYMMETRIC_TOLERANCE 1e-6
34#endif
35
43#ifndef CONSTEIG_BALANCE_CONVERGENCE_THRESHOLD
44#define CONSTEIG_BALANCE_CONVERGENCE_THRESHOLD 0.95
45#endif
46
49#ifndef E_CONST
50#define E_CONST 2.71828182845904523536028747135266249775724709369995
51#endif
52
55#ifndef PI_CONST
56#define PI_CONST 3.14159265358979323846264338327950288419716939937510
57#endif
58
66#ifndef CONSTEIG_TRIG_MAX_ITER
67// 14 iterations suffices for double precision (worst case x=pi: pi^29/29! ~
68// 3e-17 < machine epsilon). 20 gives a comfortable margin.
69#define CONSTEIG_TRIG_MAX_ITER 20
70#endif
71
80// Uncomment to force all internal constexpr eigenvalue calculations to use long
81// double. This improves numerical stability for large/pathological matrices but
82// is very resource intensive for the compiler.
83// #define CONSTEIG_USE_LONG_DOUBLE
84
98// #define CONSTEIG_USE_GCEM
99
111// #define CONSTEIG_GCEM_USE_STDLIB
112
137// #define CONSTEIG_GCEM_USE_CUSTOM_TRAITS
138
140
141#endif