Collaboration diagram for Functions internal to LinAlg:
![]() |
Classes | |
class | FlexibleTable< T > |
FlexibleTable<T> is intended for reading a table of columnar data from a file. More... | |
Functions | |
template<typename T> | |
size_t | StringToVector (std::vector< T > &vec, const std::string line, size_t size_guess) |
Reads a string into a vector<T> (ignoring [,], and #-commented lines!) and return number of items read. Used by FlexibleTable. | |
std::istream & | eatwhite (std::istream &input) |
Fast-forward a stream pointer past all whitespace. Used by FlexibleTable. | |
template<class T> | |
std::istream & | ReadComplex (std::istream &input, std::complex< T > &Z) |
Reads a complex number from a stream, and stores it in Z . Used by FlexibleTable. | |
template<class T> | |
std::complex< T > | BuildComplex (T *real, bool *iflag, bool *negflag) |
Turns real into {+1,-1,+I,-I}*real , depending on flags. Used by FlexibleTable. | |
template<class T> | |
std::ostream & | PrettyOutput (std::ostream &os, const T &var) |
PrettyOutput outputs a variable of type T to a stream; defaults to <<, but can be specialized, e.g. for std::complex<T>. Used by FlexibleTable. | |
template<class T> | |
std::ostream & | PrettyOutput (std::ostream &output, const std::complex< T > &Z) |
(Template specialization) Prints a std::complex<T> to a stream, in "ai+b" form. | |
bool | internalEigenFactor (DenseMatrix< complex > *matrix, DenseMatrix< complex > *L_ev, DenseMatrix< complex > *R_ev, DenseVector< complex > *evals) |
Private (internal) routine that interfaces to LAPACK complex eigenfactoring routines. | |
bool | internalEigenFactor (DenseMatrix< double > *matrix, DenseMatrix< complex > *L_ev, DenseMatrix< complex > *R_ev, DenseVector< complex > *evals) |
Private (internal) routine that interfaces to LAPACK double eigenfactoring routines. | |
bool | internalSymmetricEigenFactor (DenseMatrix< double > *matrix, DenseMatrix< double > *ev, DenseVector< double > *evals) |
Private (internal) routine that interfaces to LAPACK Hermitian-complex eigenfactoring routines. | |
bool | internalHermitianEigenFactor (DenseMatrix< complex > *matrix, DenseMatrix< complex > *ev, DenseVector< double > *evals) |
Private (internal) routine that interfaces to LAPACK symmetric-double eigenfactoring routines. | |
int | c_zgeev (char *jobvl, char *jobvr, integer n, doublecomplex *a, integer lda, doublecomplex *w, doublecomplex *vl, integer ldvl, doublecomplex *vr, integer ldvr, doublecomplex *work, integer lwork, doublereal *rwork, integer *info) |
C interface to the LAPACK routine ZGEEV, which eigenfactors general complex matrices. | |
int | c_dgeev (char *jobvl, char *jobvr, integer n, doublereal *a, integer lda, doublereal *wr, doublereal *wi, doublereal *vl, integer ldvl, doublereal *vr, integer ldvr, doublereal *work, integer lwork, integer *info) |
C interface to the LAPACK routine DGEEV, which eigenfactors nonsymmmetric double matrices. | |
int | c_dsyev (char *jobz, char *uplo, integer n, doublereal *a, integer lda, doublereal *w, doublereal *work, integer lwork, integer *info) |
C interface to the LAPACK routine DSYEV, which eigenfactors real symmetric matrices. | |
int | c_zheev (char *jobz, char *uplo, integer n, doublecomplex *a, integer lda, doublereal *w, doublecomplex *work, integer lwork, doublereal *rwork, integer *info) |
C interface to the LAPACK routine ZHEEV, which eigenfactors Hermitian complex matrices. | |
int | c_dpotrf (char *uplo, integer n, doublereal *a, integer lda, integer *info) |
C interface to the LAPACK routine DPOTRF, which Cholesky factorizes real SPD matrices. | |
int | c_zpotrf (char *uplo, integer n, doublecomplex *a, integer lda, integer *info) |
C interface to the LAPACK routine ZPOTRF, which Cholesky factorizes complex HPD matrices. |
|
Reads a string into a vector<T> (ignoring [,], and #-commented lines!) and return number of items read. Used by FlexibleTable.
A good guess at the number of elements ( |
|
Reads a complex number from a stream, and stores it in ReadComplex essentially enhances operator>>(std::istream&, std::complex<T>), although if it gets the right input, "(a,b)", it calls operator>>. It adds the ability to parse "ai+b" and "a+bi" (with full negative generality), to the input mechanism. Complex input numbers must be contiguous -- "a + bi" is not permitted, and will be read as 2 numbers. Format is EITHER:
If and only if EXTRAWHITE is defined, it can be:
However, this will not generally work -- consider the stream "2 -3i -4". There are three ways to interpret this: {2, -3i, -4}, {2-3i, -4}, {2, -3i-4}. The only way to uniquely parse a stream of complex numbers seems to be if the numbers themselves are contiguous strings -- "3+i" instead of "3 + i". |
|
Private (internal) routine that interfaces to LAPACK complex eigenfactoring routines. The output is controlled by the pointers supplied -- a NULL pointer for any of the outputs implies that output should not be generated. |
|
Private (internal) routine that interfaces to LAPACK double eigenfactoring routines. The output is controlled by the pointers supplied -- a NULL pointer for any of the outputs implies that output should not be generated. |
|
Private (internal) routine that interfaces to LAPACK Hermitian-complex eigenfactoring routines. The output is controlled by the pointers supplied -- a NULL pointer for any of the outputs implies that output should not be generated. |
|
Private (internal) routine that interfaces to LAPACK symmetric-double eigenfactoring routines. The output is controlled by the pointers supplied -- a NULL pointer for any of the outputs implies that output should not be generated. |