MyraMath
Public Types | Public Member Functions | List of all members
myra::ZLDLHSolver< Precision > Class Template Reference

Factors A = L*D*Lh, where D is a "sign matrix" of the form [I 0; 0 -I]. Presents solve methods. More...

#include <ZLDLHSolver.h>

Public Types

typedef std::complex< Precision > Number
 
typedef MatrixRange< Number > Range
 

Public Member Functions

 ZLDLHSolver (const LowerMatrix< Number > &A)
 Copies from A and factors A=L*D*L' in-place.
 
 ZLDLHSolver (LowerMatrix< Number > &&A)
 Moves from A and factors A=L*D*L' in-place.
 
 ZLDLHSolver (LowerMatrix< Number > &A)
 Swaps out of A and factors A = L*D*L' in-place.
 
 ZLDLHSolver (InputStream &in)
 Constructs from an InputStream.
 
void write (OutputStream &out) const
 Writes to an OutputStream.
 
void solve (const Range &B, char side='L', char op='N') const
 Solves op(A)*X=B or X*op(A)=B, overwrites B with X.
 
uint64_t solveL (const Range &B, char side, char op) const
 Solves op(L)*X = B or X*op(L) = B, overwriting B with X.
 
void solveD (const Range &B, char side) const
 Solves D*X=B or X*D=B, overwrites B with X.
 
std::pair< int, int > inertia () const
 Returns inertia, (n_plus, n_minus). Useful for schur downdates.
 
int size () const
 Size inspector.
 

Detailed Description

template<class Precision>
class myra::ZLDLHSolver< Precision >

Factors A = L*D*Lh, where D is a "sign matrix" of the form [I 0; 0 -I]. Presents solve methods.


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