Spectra  1.0.1 Header-only C++ Library for Large Scale Eigenvalue Problems
Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags > Class Template Reference

#include <Spectra/MatOp/DenseSymShiftSolve.h>

## Public Types

using Scalar = Scalar_

## Public Member Functions

template<typename Derived >
DenseSymShiftSolve (const Eigen::MatrixBase< Derived > &mat)

Index rows () const

Index cols () const

void set_shift (const Scalar &sigma)

void perform_op (const Scalar *x_in, Scalar *y_out) const

## Detailed Description

### template<typename Scalar_, int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor> class Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >

This class defines the shift-solve operation on a real symmetric matrix $$A$$, i.e., calculating $$y=(A-\sigma I)^{-1}x$$ for any real $$\sigma$$ and vector $$x$$. It is mainly used in the SymEigsShiftSolver eigen solver.

Template Parameters
 Scalar_ The element type of the matrix, for example, float, double, and long double. Uplo Either Eigen::Lower or Eigen::Upper, indicating which triangular part of the matrix is used. Flags Either Eigen::ColMajor or Eigen::RowMajor, indicating the storage format of the input matrix.

Definition at line 33 of file DenseSymShiftSolve.h.

## ◆ Scalar

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
 using Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::Scalar = Scalar_

Element type of the matrix.

Definition at line 39 of file DenseSymShiftSolve.h.

## ◆ DenseSymShiftSolve()

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
template<typename Derived >
 Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::DenseSymShiftSolve ( const Eigen::MatrixBase< Derived > & mat )
inline

Constructor to create the matrix operation object.

Parameters
 mat An Eigen matrix object, whose type can be Eigen::Matrix (e.g. Eigen::MatrixXd and Eigen::MatrixXf), or its mapped version (e.g. Eigen::Map).

Definition at line 63 of file DenseSymShiftSolve.h.

## ◆ rows()

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
 Index Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::rows ( ) const
inline

Return the number of rows of the underlying matrix.

Definition at line 77 of file DenseSymShiftSolve.h.

## ◆ cols()

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
 Index Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::cols ( ) const
inline

Return the number of columns of the underlying matrix.

Definition at line 81 of file DenseSymShiftSolve.h.

## ◆ set_shift()

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
 void Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::set_shift ( const Scalar & sigma )
inline

Set the real shift $$\sigma$$.

Definition at line 86 of file DenseSymShiftSolve.h.

## ◆ perform_op()

template<typename Scalar_ , int Uplo = Eigen::Lower, int Flags = Eigen::ColMajor>
 void Spectra::DenseSymShiftSolve< Scalar_, Uplo, Flags >::perform_op ( const Scalar * x_in, Scalar * y_out ) const
inline

Perform the shift-solve operation $$y=(A-\sigma I)^{-1}x$$.

Parameters
 x_in Pointer to the $$x$$ vector. y_out Pointer to the $$y$$ vector.

Definition at line 100 of file DenseSymShiftSolve.h.

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