batchlas::SyevxParams< T > Struct Template Reference

Overview

template<typename T>
struct batchlas::SyevxParams< T >

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.

Template Parameters
Tscalar type of the matrix (real or complex); tolerances on the real type
See also
syevx range selection: design record for the range semantics, SYEVX for routing

Definition at line 41 of file extensions.hh.

#include <batchlas/blas/extensions.hh>

Types

◆ float_type

template<typename T>
using batchlas::SyevxParams< T >::float_type = typename base_type<T>::type

Definition at line 42 of file extensions.hh.

Variables

◆ method

template<typename T>
SyevxAlgorithm batchlas::SyevxParams< T >::method = SyevxAlgorithm::Auto

Algorithm family; Auto defers to syevx_select_algorithm().

Definition at line 43 of file extensions.hh.

◆ algorithm

template<typename T>
OrthoAlgorithm batchlas::SyevxParams< T >::algorithm = OrthoAlgorithm::Chol2

Orthogonalisation used inside the iterative solvers.

Definition at line 44 of file extensions.hh.

◆ ortho_iterations

template<typename T>
size_t batchlas::SyevxParams< T >::ortho_iterations = 2

Orthogonalisation passes per use.

Definition at line 45 of file extensions.hh.

◆ iterations

template<typename T>
size_t batchlas::SyevxParams< T >::iterations = 100

Cap on outer iterations of LOBPCG / Filtered.

Definition at line 46 of file extensions.hh.

◆ extra_directions

template<typename T>
size_t batchlas::SyevxParams< T >::extra_directions = 0

Extra search directions carried beyond neigs.

Definition at line 47 of file extensions.hh.

◆ find_largest

template<typename T>
bool batchlas::SyevxParams< T >::find_largest = true

Extremal selection: largest (true) or smallest (false) eigenpairs.

Definition at line 48 of file extensions.hh.

◆ absolute_tolerance

template<typename T>
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.

◆ relative_tolerance

template<typename T>
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.

◆ preconditioner

template<typename T>
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.

◆ preconditioner_type

template<typename T>
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.

◆ build_preconditioner

template<typename T>
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.

◆ iluk_params

template<typename T>
ILUKParams<T> batchlas::SyevxParams< T >::iluk_params {}

Parameters of the factor built under build_preconditioner.

Definition at line 61 of file extensions.hh.

◆ filter_degree

template<typename T>
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.

◆ init_power_iterations

template<typename T>
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.

◆ instrumentation

template<typename T>
const SyevxInstrumentation<T>* batchlas::SyevxParams< T >::instrumentation = nullptr

Optional convergence-history sink; nullptr records nothing.

Definition at line 66 of file extensions.hh.

◆ select

template<typename T>
SyevxSelect batchlas::SyevxParams< T >::select = SyevxSelect::Extremal

Range kind: Extremal (with find_largest), Index or Value.

Definition at line 68 of file extensions.hh.

◆ il

template<typename T>
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.

◆ iu

template<typename T>
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.

◆ vl

template<typename T>
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.

◆ vu

template<typename T>
float_type batchlas::SyevxParams< T >::vu = float_type(0)

select == Value: upper end (inclusive).

Definition at line 77 of file extensions.hh.

◆ abstol

template<typename T>
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.

◆ order

template<typename T>
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.