Options for syevx(): algorithm family, convergence controls, preconditioning and which part of the spectrum to compute.
Every field has a default, so designated initialisers name only what changes. The range fields (select, il, iu, vl, vu, abstol, order) mirror LAPACK ?syevx's RANGE, IL/IU, VL/VU and ABSTOL arguments.
| T | scalar type of the matrix (real or complex); tolerances on the real type |
Definition at line 41 of file extensions.hh.
#include <batchlas/blas/extensions.hh>
| using batchlas::SyevxParams< T >::float_type = typename base_type<T>::type |
Definition at line 42 of file extensions.hh.
| SyevxAlgorithm batchlas::SyevxParams< T >::method = SyevxAlgorithm::Auto |
Algorithm family; Auto defers to syevx_select_algorithm().
Definition at line 43 of file extensions.hh.
| OrthoAlgorithm batchlas::SyevxParams< T >::algorithm = OrthoAlgorithm::Chol2 |
Orthogonalisation used inside the iterative solvers.
Definition at line 44 of file extensions.hh.
| size_t batchlas::SyevxParams< T >::ortho_iterations = 2 |
Orthogonalisation passes per use.
Definition at line 45 of file extensions.hh.
| size_t batchlas::SyevxParams< T >::iterations = 100 |
Cap on outer iterations of LOBPCG / Filtered.
Definition at line 46 of file extensions.hh.
| size_t batchlas::SyevxParams< T >::extra_directions = 0 |
Extra search directions carried beyond neigs.
Definition at line 47 of file extensions.hh.
| bool batchlas::SyevxParams< T >::find_largest = true |
Extremal selection: largest (true) or smallest (false) eigenpairs.
Definition at line 48 of file extensions.hh.
| T batchlas::SyevxParams< T >::absolute_tolerance = T(std::numeric_limits<float_type>::epsilon()) |
Absolute residual tolerance of the iterative paths.
Definition at line 49 of file extensions.hh.
| T batchlas::SyevxParams< T >::relative_tolerance = T(std::numeric_limits<float_type>::epsilon()) |
Relative residual tolerance of the iterative paths.
Definition at line 50 of file extensions.hh.
| const ILUKPreconditioner<T>* batchlas::SyevxParams< T >::preconditioner = nullptr |
Caller-owned ILU(k) factor used as preconditioner, or nullptr.
ILU(k) approximates \( A^{-1} \), so it is valid only for the SMALLEST eigenpairs: find_largest = true with a preconditioner is rejected, not ignored.
Definition at line 54 of file extensions.hh.
| SyevxPreconditioner batchlas::SyevxParams< T >::preconditioner_type = SyevxPreconditioner::Auto |
Preconditioner family.
Auto: ILU(k) when a factor is supplied or requested, otherwise none (unless BATCHLAS_SYEVX_PRECONDITIONER names a default).
Definition at line 57 of file extensions.hh.
| bool batchlas::SyevxParams< T >::build_preconditioner = false |
Build the ILU(k) factor inside syevx from the caller's workspace.
Requires a CSR A and find_largest = false; mutually exclusive with preconditioner.
Definition at line 60 of file extensions.hh.
| ILUKParams<T> batchlas::SyevxParams< T >::iluk_params {} |
Parameters of the factor built under build_preconditioner.
Definition at line 61 of file extensions.hh.
| size_t batchlas::SyevxParams< T >::filter_degree = 0 |
Chebyshev degree for SyevxAlgorithm::Filtered; 0 selects a default.
Definition at line 62 of file extensions.hh.
| int batchlas::SyevxParams< T >::init_power_iterations = -1 |
LOBPCG only: power-iteration steps on the random start block; -1 selects the default, 0 disables.
Ignored unless find_largest is true.
Definition at line 65 of file extensions.hh.
| const SyevxInstrumentation<T>* batchlas::SyevxParams< T >::instrumentation = nullptr |
Optional convergence-history sink; nullptr records nothing.
Definition at line 66 of file extensions.hh.
| SyevxSelect batchlas::SyevxParams< T >::select = SyevxSelect::Extremal |
Range kind: Extremal (with find_largest), Index or Value.
Definition at line 68 of file extensions.hh.
| int64_t batchlas::SyevxParams< T >::il = 0 |
select == Index: first wanted index, 0-based and inclusive, into the ASCENDING spectrum.
il > iu is an empty request and is rejected.
Definition at line 72 of file extensions.hh.
| int64_t batchlas::SyevxParams< T >::iu = -1 |
select == Index: last wanted index, inclusive; iu < 0 means n-1.
Definition at line 73 of file extensions.hh.
| float_type batchlas::SyevxParams< T >::vl = float_type(0) |
select == Value: lower end of the half-open interval (vl, vu], as in LAPACK.
The count is data-dependent per item and is reported through syevx's m output.
Definition at line 76 of file extensions.hh.
| float_type batchlas::SyevxParams< T >::vu = float_type(0) |
select == Value: upper end (inclusive).
Definition at line 77 of file extensions.hh.
| float_type batchlas::SyevxParams< T >::abstol = float_type(0) |
Absolute tolerance per eigenvalue; non-positive means \( \varepsilon \|T\| \).
Forwarded to StebzParams::abstol; ignored by paths that use a full decomposition.
Definition at line 81 of file extensions.hh.
| SortOrder batchlas::SyevxParams< T >::order = SortOrder::Ascending |
Output order for Index and Value; for Extremal it follows find_largest.
Definition at line 83 of file extensions.hh.