Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
symmetric_lanczos.hpp File Reference
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/krylov/dense_subspace.hpp>
#include <uni20/krylov/matrix_free.hpp>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <limits>
#include <numeric>
#include <optional>
#include <span>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for symmetric_lanczos.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  uni20::krylov::SymmetricCompressedLanczosFactorization< Scalar, Vector >
 Compressed symmetric Lanczos factorization after implicit restart. More...
 
struct  uni20::krylov::SymmetricQrShiftResult< Scalar >
 Result of applying implicit QR shifts to a symmetric tridiagonal projection. More...
 
struct  uni20::krylov::SymmetricRestartPlan< Scalar >
 Restart dimensions after implicit-restart edge-case adjustment. More...
 
struct  uni20::krylov::SymmetricRestartSelection< Scalar >
 Ritz-value selection state used by symmetric implicit restart logic. More...
 

Namespaces

namespace  uni20
 
namespace  uni20::krylov
 

Functions

template<uni20::Real Scalar>
SymmetricQrShiftResult< Scalar > uni20::krylov::apply_symmetric_qr_shifts (std::vector< Scalar > diagonal, std::vector< Scalar > subdiagonal, std::vector< Scalar > const &shifts)
 Apply implicit shifted QR sweeps to a symmetric tridiagonal matrix.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops>
SymmetricCompressedLanczosFactorization< uni20::make_real_t< Scalar >, Vector > uni20::krylov::compress_symmetric_lanczos_restart (Ops &ops, std::vector< Vector > const &basis, Vector const &residual, SymmetricQrShiftResult< uni20::make_real_t< Scalar > > const &shifted, std::size_t retained_count)
 Compress a Lanczos factorization with the accumulated restart transform.
 
template<uni20::Real Scalar>
Scalar uni20::krylov::map_symmetric_transformed_eigenvalue (Scalar transformed_value, SymmetricSpectralTransformOptions< Scalar > const &options)
 Map a native symmetric transformed Ritz value back to the original eigenvalue scale.
 
template<uni20::Real Scalar>
SymmetricRestartPlan< Scalar > uni20::krylov::plan_symmetric_restart (SymmetricEigenParams< Scalar > const &params, std::vector< Scalar > const &values, std::vector< Scalar > const &residual_bounds, int converged_count)
 Adjust restart dimensions for implicit-restart edge cases.
 
template<uni20::Real Scalar>
SymmetricRestartSelection< Scalar > uni20::krylov::select_symmetric_restart (std::vector< Scalar > const &values, std::vector< Scalar > const &residual_bounds, SymmetricEigenParams< Scalar > const &params, std::size_t shift_count, std::span< std::size_t const > protected_shift_indices={})
 Select wanted Ritz values and exact-shift candidates for symmetric restart.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > OpOps, KrylovMatrixFreeOperator< Vector, Scalar > BOps, typename MetricOps >
EigenResult< uni20::make_real_t< Scalar >, Vector > uni20::krylov::symmetric_lanczos_restarted_generalized_transformed (OpOps &op_ops, BOps &b_ops, MetricOps &metric_ops, Vector const &initial, SymmetricEigenParams< uni20::make_real_t< Scalar > > const &params, SymmetricSpectralTransformOptions< uni20::make_real_t< Scalar > > const &options)
 Run restarted symmetric Lanczos on a transformed generalized operator with a B metric.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > OpOps, KrylovMatrixFreeOperator< Vector, Scalar > BOps>
EigenResult< uni20::make_real_t< Scalar >, Vector > uni20::krylov::symmetric_lanczos_restarted_generalized_transformed (OpOps &op_ops, BOps &b_ops, Vector const &initial, SymmetricEigenParams< uni20::make_real_t< Scalar > > const &params, SymmetricSpectralTransformOptions< uni20::make_real_t< Scalar > > const &options)
 Run restarted symmetric Lanczos on a transformed generalized operator with default metric handling.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops>
EigenResult< uni20::make_real_t< Scalar >, Vector > uni20::krylov::symmetric_lanczos_restarted_standard (Ops &ops, Vector const &initial, SymmetricEigenParams< uni20::make_real_t< Scalar > > const &params)
 Run a native symmetric/Hermitian Lanczos solve with implicit restarts.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops>
EigenResult< uni20::make_real_t< Scalar >, Vector > uni20::krylov::symmetric_lanczos_restarted_transformed (Ops &op_ops, Vector const &initial, SymmetricEigenParams< uni20::make_real_t< Scalar > > const &params, SymmetricSpectralTransformOptions< uni20::make_real_t< Scalar > > const &options)
 Run restarted symmetric Lanczos on a caller-supplied transformed operator.
 
template<uni20::LapackRealOrComplex Scalar, typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops>
EigenResult< uni20::make_real_t< Scalar >, Vector > uni20::krylov::symmetric_lanczos_standard (Ops &ops, Vector const &initial, SymmetricEigenParams< uni20::make_real_t< Scalar > > const &params)
 Run the native symmetric/Hermitian Lanczos full-projection solver.