Spectral Integral Suite in C++
|
This class represents a block matrix operator. It is a matrix of operators. More...
#include <sis.hpp>
Public Member Functions | |
LinopMat () | |
This holds a vector of boundary conditions. There should be as many boundary conditions as there are columns, for example consider a (2,3) LinopMat: \[ \left[ \begin{array}{ccc} L & M & O\\ Q & R & S \end{array} \right]\left[ \begin{array}{c} u\\ v\\ w \end{array} \right] \] One needs to specify the boundary conditions for three dependent variables, i.e., \(u\), \(v\) and \(w\). More... | |
LinopMat (int r_, int c_) | |
Initializes a Linop Matrix of r_ rows and c_ columns. More... | |
LinopMat (const LinopMat< T > &in) | |
Copy constructor. More... | |
void | operator= (const LinopMat &in) |
Assignment operator. More... | |
LinopMat< T > & | operator<< (T b) |
Use this to input multiple Linops to the LinopMat using comma separators. Input type of constant. More... | |
Linop< T > & | operator[] (int i) |
Use this to to refer to Linops. For 1D Matrices, we use the Row major format when refering to [i]. See wiki for row-major format. More... | |
Linop< T > & | operator() (int i, int j) |
Use this to to refer to Linop. For 2D Matrices, refer to matrix element Linop by (i,j) with the row and column index. Indices start from 0. More... | |
LinopMat< T > & | operator<< (Eigen::Array< T, Eigen::Dynamic, 1 > b) |
Use this to input multiple Linops to the LinopMat using comma separators. Input type Eigen array. More... | |
LinopMat< T > & | operator<< (Linop< T > b) |
Use this to input multiple Linops to the LinopMat using comma. More... | |
void | resize (int r_, int c_) |
This clears all contents in the LinopMat, and then creates a fresh LinopMat of size r_ x c_. More... | |
LinopMat< T > & | operator, (T b) |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type constant. More... | |
LinopMat< T > & | operator, (Eigen::Array< T, Eigen::Dynamic, 1 > b) |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type Eigen array. More... | |
LinopMat< T > & | operator, (Linop< T > b) |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type Chebfun. More... | |
ChebfunMat< T > | solve (const ChebfunMat< T > &in) |
Solves an input ChebfunMat, Dimensions of ChebfunMat have to be (c,1) More... | |
LinopMat< T > & | operator<< (LinopMat< T > b) |
Use this to input multiple LinopMats to the LinopMat using comma separators. Call at after initializing a LinopMat, or after calling resize, , similar to Eigen's << operator. CAREFUL: If dimensions are not compatible, it will not throw an error, and could end up in segv. More... | |
LinopMat< T > & | operator, (LinopMat< T > b) |
LinopMat< T > | cTranspose () |
void | setConstant (T in) |
Sets every member in LinopMat to constant. More... | |
void | setIdentity () |
Sets LinopMat to identity. More... | |
Public Attributes | |
int | r |
Number of rows. More... | |
int | c |
Number of columns. More... | |
std::valarray< Linop< T > > | LinopVec |
This 1D vector of Linops holds all Linops of the LinopMat in the row-major format. More... | |
int | countc |
int | countr |
bool | go_to_next_row |
This class represents a block matrix operator. It is a matrix of operators.
|
inline |
This holds a vector of boundary conditions. There should be as many boundary conditions as there are columns, for example consider a (2,3) LinopMat:
\[ \left[ \begin{array}{ccc} L & M & O\\ Q & R & S \end{array} \right]\left[ \begin{array}{c} u\\ v\\ w \end{array} \right] \]
One needs to specify the boundary conditions for three dependent variables, i.e., \(u\), \(v\) and \(w\).
Null constructor
|
inline |
Initializes a Linop Matrix of r_ rows and c_ columns.
Definition at line 8146 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::LinopVec, and sis::LinopMat< T >::r.
|
inline |
Copy constructor.
Definition at line 8154 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::LinopVec, sis::LinopMat< T >::r, and sis::LinopMat< T >::resize().
|
inline |
Definition at line 8325 of file sis.hpp.
References sis::LinopMat< T >::c, sis::conj(), and sis::LinopMat< T >::r.
|
inline |
Use this to to refer to Linop. For 2D Matrices, refer to matrix element Linop by (i,j) with the row and column index. Indices start from 0.
Definition at line 8193 of file sis.hpp.
References sis::LinopMat< T >::c, and sis::LinopMat< T >::LinopVec.
Referenced by sis::LinopMat< std::complex< T > >::operator()(), sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), sis::LinopMat< std::complex< T > >::operator<<(), sis::LinopMat< T >::setConstant(), sis::LinopMat< std::complex< T > >::setConstant(), sis::LinopMat< T >::setIdentity(), and sis::LinopMat< std::complex< T > >::setIdentity().
|
inline |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type constant.
Definition at line 8223 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type Eigen array.
Definition at line 8230 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Overloads comma separator to input Chebfuns into a ChebfunMat. Input type Chebfun.
Definition at line 8237 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Definition at line 8282 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::countc, sis::LinopMat< T >::countr, sis::LinopMat< T >::go_to_next_row, and sis::LinopMat< T >::operator()().
|
inline |
Use this to input multiple Linops to the LinopMat using comma separators. Input type of constant.
Definition at line 8176 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Use this to input multiple Linops to the LinopMat using comma separators. Input type Eigen array.
Definition at line 8197 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Use this to input multiple Linops to the LinopMat using comma.
Definition at line 8205 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
Use this to input multiple LinopMats to the LinopMat using comma separators. Call at after initializing a LinopMat, or after calling resize, , similar to Eigen's << operator. CAREFUL: If dimensions are not compatible, it will not throw an error, and could end up in segv.
Definition at line 8251 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::countc, sis::LinopMat< T >::countr, sis::LinopMat< T >::go_to_next_row, sis::LinopMat< T >::operator()(), sis::LinopMat< T >::r, and sis::LinopMat< T >::setConstant().
|
inline |
Assignment operator.
Definition at line 8164 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::LinopVec, sis::LinopMat< T >::r, and sis::LinopMat< T >::resize().
|
inline |
Use this to to refer to Linops. For 1D Matrices, we use the Row major format when refering to [i]. See wiki for row-major format.
Definition at line 8185 of file sis.hpp.
References sis::LinopMat< T >::LinopVec.
|
inline |
This clears all contents in the LinopMat, and then creates a fresh LinopMat of size r_ x c_.
Definition at line 8214 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::LinopVec, and sis::LinopMat< T >::r.
Referenced by sis::SingularValueDecomposition< T >::Adjoint(), sis::SingularValueDecomposition< std::complex< T > >::Adjoint(), sis::GeneralizedEigenSolver< T >::compute_with_constraints(), sis::LinopMat< T >::LinopMat(), sis::LinopMat< std::complex< T > >::LinopMat(), main(), sis::LinopMat< T >::operator=(), and sis::LinopMat< std::complex< T > >::operator=().
|
inline |
Sets every member in LinopMat to constant.
Definition at line 8337 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::operator()(), and sis::LinopMat< T >::r.
Referenced by sis::GeneralizedEigenSolver< T >::compute_with_constraints(), sis::LinopMat< T >::operator<<(), sis::LinopMat< std::complex< T > >::operator<<(), sis::LinopMat< T >::setIdentity(), and sis::LinopMat< std::complex< T > >::setIdentity().
|
inline |
Sets LinopMat to identity.
Definition at line 8346 of file sis.hpp.
References sis::LinopMat< T >::c, sis::LinopMat< T >::operator()(), sis::LinopMat< T >::r, and sis::LinopMat< T >::setConstant().
Referenced by sis::GeneralizedEigenSolver< std::complex< T > >::compute().
|
inline |
Solves an input ChebfunMat, Dimensions of ChebfunMat have to be (c,1)
int sis::LinopMat< T >::c |
Number of columns.
Definition at line 8118 of file sis.hpp.
Referenced by sis::GeneralizedEigenSolver< T >::compute(), sis::GeneralizedEigenSolver< std::complex< T > >::compute(), sis::GeneralizedEigenSolver< T >::compute_with_constraints(), sis::GeneralizedEigenSolver< std::complex< T > >::computeAppend(), sis::LinopMat< T >::cTranspose(), sis::LinopMat< std::complex< T > >::cTranspose(), sis::LinopMat< T >::LinopMat(), sis::LinopMat< std::complex< T > >::LinopMat(), sis::LinopMat< T >::operator()(), sis::LinopMat< std::complex< T > >::operator()(), sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), sis::LinopMat< std::complex< T > >::operator<<(), sis::LinopMat< T >::operator=(), sis::LinopMat< std::complex< T > >::operator=(), sis::LinopMat< T >::resize(), sis::LinopMat< std::complex< T > >::resize(), sis::LinopMat< T >::setConstant(), sis::LinopMat< std::complex< T > >::setConstant(), sis::LinopMat< T >::setIdentity(), and sis::LinopMat< std::complex< T > >::setIdentity().
int sis::LinopMat< T >::countc |
Definition at line 8122 of file sis.hpp.
Referenced by sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), and sis::LinopMat< std::complex< T > >::operator<<().
int sis::LinopMat< T >::countr |
Definition at line 8123 of file sis.hpp.
Referenced by sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), and sis::LinopMat< std::complex< T > >::operator<<().
bool sis::LinopMat< T >::go_to_next_row |
Definition at line 8124 of file sis.hpp.
Referenced by sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), and sis::LinopMat< std::complex< T > >::operator<<().
std::valarray<Linop<T> > sis::LinopMat< T >::LinopVec |
This 1D vector of Linops holds all Linops of the LinopMat in the row-major format.
Definition at line 8121 of file sis.hpp.
Referenced by sis::LinopMat< T >::LinopMat(), sis::LinopMat< std::complex< T > >::LinopMat(), sis::LinopMat< T >::operator()(), sis::LinopMat< std::complex< T > >::operator()(), sis::LinopMat< T >::operator,(), sis::LinopMat< std::complex< T > >::operator,(), sis::LinopMat< T >::operator<<(), sis::LinopMat< std::complex< T > >::operator<<(), sis::LinopMat< T >::operator=(), sis::LinopMat< std::complex< T > >::operator=(), sis::LinopMat< T >::operator[](), sis::LinopMat< std::complex< T > >::operator[](), sis::LinopMat< T >::resize(), and sis::LinopMat< std::complex< T > >::resize().
int sis::LinopMat< T >::r |
Number of rows.
Definition at line 8116 of file sis.hpp.
Referenced by sis::GeneralizedEigenSolver< T >::compute(), sis::GeneralizedEigenSolver< std::complex< T > >::compute(), sis::GeneralizedEigenSolver< T >::compute_with_constraints(), sis::GeneralizedEigenSolver< std::complex< T > >::computeAppend(), sis::LinopMat< T >::cTranspose(), sis::LinopMat< std::complex< T > >::cTranspose(), sis::LinopMat< T >::LinopMat(), sis::LinopMat< std::complex< T > >::LinopMat(), sis::LinopMat< std::complex< T > >::operator()(), sis::LinopMat< T >::operator<<(), sis::LinopMat< std::complex< T > >::operator<<(), sis::LinopMat< T >::operator=(), sis::LinopMat< std::complex< T > >::operator=(), sis::LinopMat< T >::resize(), sis::LinopMat< std::complex< T > >::resize(), sis::LinopMat< T >::setConstant(), sis::LinopMat< std::complex< T > >::setConstant(), sis::LinopMat< T >::setIdentity(), and sis::LinopMat< std::complex< T > >::setIdentity().