pairinteraction
A Rydberg Interaction Calculator
pairinteraction::DiagonalizerInterface< Scalar > Class Template Referenceabstract

#include <DiagonalizerInterface.hpp>

+ Inheritance diagram for pairinteraction::DiagonalizerInterface< Scalar >:
+ Collaboration diagram for pairinteraction::DiagonalizerInterface< Scalar >:

Public Types

using real_t = typename traits::NumTraits< Scalar >::real_t
 

Public Member Functions

 DiagonalizerInterface (FloatType float_type)
 
virtual ~DiagonalizerInterface ()=default
 
virtual EigenSystemH< Scalar > eigh (const Eigen::SparseMatrix< Scalar, Eigen::RowMajor > &matrix, double rtol) const =0
 
virtual EigenSystemH< Scalar > eigh (const Eigen::SparseMatrix< Scalar, Eigen::RowMajor > &matrix, std::optional< real_t > min_eigenvalue, std::optional< real_t > max_eigenvalue, double rtol) const
 
template<typename RealLim >
Eigen::VectorX< typename DiagonalizerInterface< Scalar >::real_tadd_mean (const Eigen::VectorX< RealLim > &shifted_eigenvalues, real_t shift) const
 

Protected Member Functions

template<typename ScalarLim >
Eigen::MatrixX< ScalarLim > subtract_mean (const Eigen::MatrixX< Scalar > &matrix, real_t &shift, double rtol) const
 
template<typename RealLim >
Eigen::VectorX< real_tadd_mean (const Eigen::VectorX< RealLim > &eigenvalues, real_t shift) const
 

Protected Attributes

FloatType float_type
 

Detailed Description

template<typename Scalar>
class pairinteraction::DiagonalizerInterface< Scalar >

Definition at line 26 of file DiagonalizerInterface.hpp.

Member Typedef Documentation

◆ real_t

template<typename Scalar >
using pairinteraction::DiagonalizerInterface< Scalar >::real_t = typename traits::NumTraits<Scalar>::real_t

Definition at line 30 of file DiagonalizerInterface.hpp.

Constructor & Destructor Documentation

◆ DiagonalizerInterface()

template<typename Scalar >
pairinteraction::DiagonalizerInterface< Scalar >::DiagonalizerInterface ( FloatType  float_type)

Definition at line 17 of file DiagonalizerInterface.cpp.

◆ ~DiagonalizerInterface()

template<typename Scalar >
virtual pairinteraction::DiagonalizerInterface< Scalar >::~DiagonalizerInterface ( )
virtualdefault

Member Function Documentation

◆ add_mean() [1/2]

template<typename Scalar >
template<typename RealLim >
template Eigen::VectorX< double > pairinteraction::DiagonalizerInterface< Scalar >::add_mean ( const Eigen::VectorX< RealLim > &  eigenvalues,
real_t  shift 
) const
protected

◆ add_mean() [2/2]

template<typename Scalar >
template<typename RealLim >
Eigen::VectorX< typename DiagonalizerInterface< Scalar >::real_t > pairinteraction::DiagonalizerInterface< Scalar >::add_mean ( const Eigen::VectorX< RealLim > &  shifted_eigenvalues,
real_t  shift 
) const

Definition at line 86 of file DiagonalizerInterface.cpp.

◆ eigh() [1/2]

template<typename Scalar >
virtual EigenSystemH< Scalar > pairinteraction::DiagonalizerInterface< Scalar >::eigh ( const Eigen::SparseMatrix< Scalar, Eigen::RowMajor > &  matrix,
double  rtol 
) const
pure virtual

◆ eigh() [2/2]

template<typename Scalar >
EigenSystemH< Scalar > pairinteraction::DiagonalizerInterface< Scalar >::eigh ( const Eigen::SparseMatrix< Scalar, Eigen::RowMajor > &  matrix,
std::optional< real_t min_eigenvalue,
std::optional< real_t max_eigenvalue,
double  rtol 
) const
virtual

◆ subtract_mean()

template<typename Scalar >
template<typename ScalarLim >
template Eigen::MatrixX< std::complex< double > > pairinteraction::DiagonalizerInterface< Scalar >::subtract_mean ( const Eigen::MatrixX< Scalar > &  matrix,
real_t shift,
double  rtol 
) const
protected

Definition at line 23 of file DiagonalizerInterface.cpp.

Field Documentation

◆ float_type

template<typename Scalar >
FloatType pairinteraction::DiagonalizerInterface< Scalar >::float_type
protected

Definition at line 41 of file DiagonalizerInterface.hpp.


The documentation for this class was generated from the following files: