ergo
mat Namespace Reference

Namespaces

 arn
 

Classes

class  Acceptable
 
class  AcceptableMaxIter
 
struct  AccessMap
 
class  Allocator
 
class  AllocatorManager
 
struct  ATAMatrix
 
struct  CongrTransErrorMatrix
 
class  DebugLevelHigh
 
class  DebugLevelLow
 
class  DebugLevelMedium
 
struct  DiffMatrix
 
class  EuclTruncationBase
 
class  EuclTruncationCongrTransMeasure
 Truncation of general matrices with impact on matrix triple multiply as error measure. More...
 
class  EuclTruncationGeneral
 Truncation of general matrices. More...
 
class  EuclTruncationSymm
 Truncation of symmetric matrices. More...
 
class  EuclTruncationSymmElementLevel
 Truncation of symmetric matrices at the element level (used for mixed norm truncation) More...
 
class  EuclTruncationSymmWithZ
 Truncation of symmetric matrices with Z. More...
 
class  Failure
 
class  FileWritable
 Write and read objects to/from file. More...
 
struct  Gblas
 
class  Interval
 
class  Matrix
 Matrix class and heart of the matrix library. More...
 
class  Matrix< Treal >
 
class  MatrixBase
 Base class for matrix API. More...
 
class  MatrixGeneral
 Normal matrix. More...
 
class  MatrixHierarchicBase
 Base class for Matrix and Matrix specialization. More...
 
class  MatrixSymmetric
 Symmetric matrix. More...
 
class  MatrixTriangular
 Upper non-unit triangular matrix. More...
 
class  MemUsage
 
class  Params
 
class  SingletonForTimings
 
class  SizesAndBlocks
 Describes dimensions of matrix and its blocks on all levels. More...
 
class  TC2
 Trace correcting purification. More...
 
class  Time
 
struct  TripleMatrix
 
class  ValidPtr
 Smart pointer class to control access to object. More...
 
class  Vector
 Vector class. More...
 
class  Vector< Treal >
 
class  VectorGeneral
 
class  VectorHierarchicBase
 Base class for Vector and Vector specialization. More...
 
struct  XmY
 This proxy expresses the result of substraction of two objects, of possibly different types, TX and TY. More...
 
struct  XpY
 This proxy expresses the result of addition of two objects, of possibly different types, TX and TY. More...
 
struct  Xtrans
 This proxy expresses the result of transposition of an object of type TX. More...
 
struct  XY
 This proxy expresses the result of multiplication of two objects, of possibly different types, TX and TY. More...
 
struct  XYZ
 This proxy expresses the result of multiplication of three objects, of possibly different types, TX, TY, and TZ. More...
 
struct  XYZpUV
 This proxy expresses the result of multiplication of three objects added to two other multiplied objects. More...
 

Enumerations

enum  property { zero, ful }
 
enum  normType { frobNorm, euclNorm, mixedNorm }
 
enum  side { left, right }
 
enum  inchversion { unstable, stable }
 
enum  matrix_type { matrix_matr, matrix_symm, matrix_triang }
 

Functions

template<>
float * allocateElements< float > (int n)
 
template<>
void freeElements (float *ptr)
 
template<>
double * allocateElements< double > (int n)
 
template<>
void freeElements (double *ptr)
 
template<class T >
T * allocateElements (int n)
 
template<class T >
void freeElements (T *ptr)
 
template<typename Treal >
int sign (Treal value)
 Sign function returns the sign of the input. More...
 
template<typename Treal , typename Tfun >
Treal bisection (Tfun const &fun, Treal min, Treal max, Treal const tol)
 Bisection algorithm for root finding. More...
 
static long int get_file_size (const char *fileName)
 
static void copy_file (const char *sourceFileName, const char *destFileName)
 
template<class Treal >
static Treal maxdiff (const Treal *f1, const Treal *f2, int size)
 
template<class Treal >
static Treal maxdiff_tri (const Treal *f1, const Treal *f2, int size)
 
template<class Treal >
static Treal frobdiff (const Treal *f1, const Treal *f2, int size)
 
template<typename Treal , typename Trealonfile >
static void fileread (Treal *ptr, int size, FILE *file)
 
template<typename Treal , typename Tmatrix >
static void read_matrix (Tmatrix &A, char const *const matrixPath, int const size)
 
template<typename Treal , typename Trealonfile , typename Tmatrix >
static void read_sparse_matrix (Tmatrix &A, char const *const rowPath, char const *const colPath, char const *const valPath, int const nval)
 
template<typename Treal >
static void read_xyz (Treal *x, Treal *y, Treal *z, char *atomsPath, int const natoms, int const size)
 
template<typename Treal >
Interval< Treal > sqrtInt (Interval< Treal > const &other)
 
template<typename Treal >
std::ostream & operator<< (std::ostream &s, Interval< Treal > const &in)
 
template<typename Tmatrix , typename Treal >
Interval< Treal > euclIfSmall (Tmatrix const &M, Treal const requestedAbsAccuracy, Treal const requestedRelAccuracy, Treal const maxAbsVal, typename Tmatrix::VectorType *const eVecPtr=0, int maxIter=-1)
 Returns interval containing the Euclidean norm of the matrix M. More...
 
template<class T >
static void gemm (const char *ta, const char *tb, const int *n, const int *k, const int *l, const T *alpha, const T *A, const int *lda, const T *B, const int *ldb, const T *beta, T *C, const int *ldc)
 
template<class T >
static void pptrf (const char *uplo, const int *n, T *ap, int *info)
 
template<class T >
static void spgst (const int *itype, const char *uplo, const int *n, T *ap, const T *bp, int *info)
 
template<class T >
static void tptri (const char *uplo, const char *diag, const int *n, T *ap, int *info)
 
template<class T >
static void trmm (const char *side, const char *uplo, const char *transa, const char *diag, const int *m, const int *n, const T *alpha, const T *A, const int *lda, T *B, const int *ldb)
 
template<class T >
static void sygv (const int *itype, const char *jobz, const char *uplo, const int *n, T *A, const int *lda, T *B, const int *ldb, T *w, T *work, const int *lwork, int *info)
 
template<class T >
static void ggev (const char *jobbl, const char *jobvr, const int *n, T *A, const int *lda, T *B, const int *ldb, T *alphar, T *alphai, T *beta, T *vl, const int *ldvl, T *vr, const int *ldvr, T *work, const int *lwork, int *info)
 
template<class T >
static void potrf (const char *uplo, const int *n, T *A, const int *lda, int *info)
 
template<class T >
static void trtri (const char *uplo, const char *diag, const int *n, T *A, const int *lda, int *info)
 
template<class T >
static void syrk (const char *uplo, const char *trans, const int *n, const int *k, const T *alpha, const T *A, const int *lda, const T *beta, T *C, const int *ldc)
 
template<class T >
static void symm (const char *side, const char *uplo, const int *m, const int *n, const T *alpha, const T *A, const int *lda, const T *B, const int *ldb, const T *beta, T *C, const int *ldc)
 
template<class T >
static void pocon (const char *uplo, const int *n, const T *A, const int *lda, const T *anorm, T *rcond, T *work, int *iwork, int *info)
 
template<class T >
static void stevx (const char *jobz, const char *range, const int *n, T *d, T *e, const T *vl, const T *vu, const int *il, const int *iu, const T *abstol, int *m, T *w, T *z, const int *ldz, T *work, int *iwork, int *ifail, int *info)
 
template<class T >
static void stevr (const char *jobz, const char *range, const int *n, T *d, T *e, const T *vl, const T *vu, const int *il, const int *iu, const T *abstol, int *m, T *w, T *z, const int *ldz, int *isuppz, T *work, int *lwork, int *iwork, int *liwork, int *info)
 
template<class T >
static void syev (const char *jobz, const char *uplo, const int *n, T *a, const int *lda, T *w, T *work, const int *lwork, int *info)
 
template<class T >
static void gemv (const char *ta, const int *m, const int *n, const T *alpha, const T *A, const int *lda, const T *x, const int *incx, const T *beta, T *y, const int *incy)
 
template<class T >
static void symv (const char *uplo, const int *n, const T *alpha, const T *A, const int *lda, const T *x, const int *incx, const T *beta, T *y, const int *incy)
 
template<class T >
static void trmv (const char *uplo, const char *trans, const char *diag, const int *n, const T *A, const int *lda, T *x, const int *incx)
 
template<class T >
static void scal (const int *n, const T *da, T *dx, const int *incx)
 
template<class T >
static T dot (const int *n, const T *dx, const int *incx, const T *dy, const int *incy)
 
template<class T >
static void axpy (const int *n, const T *da, const T *dx, const int *incx, T *dy, const int *incy)
 
template<>
void gemm< double > (const char *ta, const char *tb, const int *n, const int *k, const int *l, const double *alpha, const double *A, const int *lda, const double *B, const int *ldb, const double *beta, double *C, const int *ldc)
 
template<>
void pptrf< double > (const char *uplo, const int *n, double *ap, int *info)
 
template<>
void spgst< double > (const int *itype, const char *uplo, const int *n, double *ap, const double *bp, int *info)
 
template<>
void tptri< double > (const char *uplo, const char *diag, const int *n, double *ap, int *info)
 
template<>
void trmm< double > (const char *side, const char *uplo, const char *transa, const char *diag, const int *m, const int *n, const double *alpha, const double *A, const int *lda, double *B, const int *ldb)
 
template<>
void sygv< double > (const int *itype, const char *jobz, const char *uplo, const int *n, double *A, const int *lda, double *B, const int *ldb, double *w, double *work, const int *lwork, int *info)
 
template<>
void ggev< double > (const char *jobbl, const char *jobvr, const int *n, double *A, const int *lda, double *B, const int *ldb, double *alphar, double *alphai, double *beta, double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info)
 
template<>
void potrf< double > (const char *uplo, const int *n, double *A, const int *lda, int *info)
 
template<>
void trtri< double > (const char *uplo, const char *diag, const int *n, double *A, const int *lda, int *info)
 
template<>
void syrk< double > (const char *uplo, const char *trans, const int *n, const int *k, const double *alpha, const double *A, const int *lda, const double *beta, double *C, const int *ldc)
 
template<>
void symm< double > (const char *side, const char *uplo, const int *m, const int *n, const double *alpha, const double *A, const int *lda, const double *B, const int *ldb, const double *beta, double *C, const int *ldc)
 
template<>
void pocon< double > (const char *uplo, const int *n, const double *A, const int *lda, const double *anorm, double *rcond, double *work, int *iwork, int *info)
 
template<>
void stevx< double > (const char *jobz, const char *range, const int *n, double *d, double *e, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, double *w, double *z, const int *ldz, double *work, int *iwork, int *ifail, int *info)
 
template<>
void stevr< double > (const char *jobz, const char *range, const int *n, double *d, double *e, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, double *w, double *z, const int *ldz, int *isuppz, double *work, int *lwork, int *iwork, int *liwork, int *info)
 
template<>
void syev< double > (const char *jobz, const char *uplo, const int *n, double *a, const int *lda, double *w, double *work, const int *lwork, int *info)
 
template<>
void gemv< double > (const char *ta, const int *m, const int *n, const double *alpha, const double *A, const int *lda, const double *x, const int *incx, const double *beta, double *y, const int *incy)
 
template<>
void symv< double > (const char *uplo, const int *n, const double *alpha, const double *A, const int *lda, const double *x, const int *incx, const double *beta, double *y, const int *incy)
 
template<>
void trmv< double > (const char *uplo, const char *trans, const char *diag, const int *n, const double *A, const int *lda, double *x, const int *incx)
 
template<>
void scal< double > (const int *n, const double *da, double *dx, const int *incx)
 
template<>
double dot< double > (const int *n, const double *dx, const int *incx, const double *dy, const int *incy)
 
template<>
void axpy< double > (const int *n, const double *da, const double *dx, const int *incx, double *dy, const int *incy)
 
template<>
void gemm< float > (const char *ta, const char *tb, const int *n, const int *k, const int *l, const float *alpha, const float *A, const int *lda, const float *B, const int *ldb, const float *beta, float *C, const int *ldc)
 
template<>
void pptrf< float > (const char *uplo, const int *n, float *ap, int *info)
 
template<>
void spgst< float > (const int *itype, const char *uplo, const int *n, float *ap, const float *bp, int *info)
 
template<>
void tptri< float > (const char *uplo, const char *diag, const int *n, float *ap, int *info)
 
template<>
void trmm< float > (const char *side, const char *uplo, const char *transa, const char *diag, const int *m, const int *n, const float *alpha, const float *A, const int *lda, float *B, const int *ldb)
 
template<>
void sygv< float > (const int *itype, const char *jobz, const char *uplo, const int *n, float *A, const int *lda, float *B, const int *ldb, float *w, float *work, const int *lwork, int *info)
 
template<>
void ggev< float > (const char *jobbl, const char *jobvr, const int *n, float *A, const int *lda, float *B, const int *ldb, float *alphar, float *alphai, float *beta, float *vl, const int *ldvl, float *vr, const int *ldvr, float *work, const int *lwork, int *info)
 
template<>
void potrf< float > (const char *uplo, const int *n, float *A, const int *lda, int *info)
 
template<>
void trtri< float > (const char *uplo, const char *diag, const int *n, float *A, const int *lda, int *info)
 
template<>
void syrk< float > (const char *uplo, const char *trans, const int *n, const int *k, const float *alpha, const float *A, const int *lda, const float *beta, float *C, const int *ldc)
 
template<>
void symm< float > (const char *side, const char *uplo, const int *m, const int *n, const float *alpha, const float *A, const int *lda, const float *B, const int *ldb, const float *beta, float *C, const int *ldc)
 
template<>
void pocon< float > (const char *uplo, const int *n, const float *A, const int *lda, const float *anorm, float *rcond, float *work, int *iwork, int *info)
 
template<>
void stevx< float > (const char *jobz, const char *range, const int *n, float *d, float *e, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, float *w, float *z, const int *ldz, float *work, int *iwork, int *ifail, int *info)
 
template<>
void stevr< float > (const char *jobz, const char *range, const int *n, float *d, float *e, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, float *w, float *z, const int *ldz, int *isuppz, float *work, int *lwork, int *iwork, int *liwork, int *info)
 
template<>
void syev< float > (const char *jobz, const char *uplo, const int *n, float *a, const int *lda, float *w, float *work, const int *lwork, int *info)
 
template<>
void gemv< float > (const char *ta, const int *m, const int *n, const float *alpha, const float *A, const int *lda, const float *x, const int *incx, const float *beta, float *y, const int *incy)
 
template<>
void symv< float > (const char *uplo, const int *n, const float *alpha, const float *A, const int *lda, const float *x, const int *incx, const float *beta, float *y, const int *incy)
 
template<>
void trmv< float > (const char *uplo, const char *trans, const char *diag, const int *n, const float *A, const int *lda, float *x, const int *incx)
 
template<>
void scal< float > (const int *n, const float *da, float *dx, const int *incx)
 
template<>
void axpy< float > (const int *n, const float *da, const float *dx, const int *incx, float *dy, const int *incy)
 
template<class Treal >
static void fulltopacked (const Treal *full, Treal *packed, const int size)
 
template<class Treal >
static void packedtofull (const Treal *packed, Treal *full, const int size)
 
template<class Treal >
static void tripackedtofull (const Treal *packed, Treal *full, const int size)
 
template<class Treal >
static void trifulltofull (Treal *trifull, const int size)
 
normType getNormType (const char *normStr)
 
std::string getNormTypeString (normType nType)
 
template<typename Treal >
static Treal getMachineEpsilon ()
 
template<typename Treal >
static Treal getRelPrecision ()
 
template<typename TX >
Xtrans< TX > transpose (TX const &A)
 Transposition. More...
 
template<typename TX >
Xtrans< TX > transpose (const Xtrans< TX > &xtrans)
 Transposition. More...
 
template<typename TX , typename TY >
XY< TX, TY > operator* (Xtrans< TX > const &trAA, Xtrans< TY > const &trBB)
 Multiplication of two transposition proxys holding objects of type TX and TY respectively. More...
 
template<typename TX , typename TY >
XY< TX, TY > operator* (TX const &AA, Xtrans< TY > const &trBB)
 Multiplication of an object of type TX with a tranposition proxy
holding an object of type TY. More...
 
template<typename TX , typename TY >
XY< TX, TY > operator* (Xtrans< TX > const &trAA, TY const &BB)
 Multiplication of a tranposition proxy holding an object of type TX with an object of type TY. More...
 
template<typename TX , typename TY >
XY< TX, TY > operator* (TX const &AA, TY const &BB)
 Multiplication of an object of type TX with an object of type TY. More...
 
template<typename TX , typename TY , typename TZ >
XYZ< TX, TY, TZ > operator* (XY< TX, TY > const &AB, Xtrans< TZ > const &trCC)
 Multiplication of a multiplication proxy XY with a transposition proxy Xtrans. More...
 
template<typename TX , typename TY , typename TZ >
XYZ< TX, TY, TZ > operator* (XY< TX, TY > const &AB, TZ const &CC)
 Multiplication of a multiplication proxy XY with an object of type TZ. More...
 
template<typename TX , typename TY , typename TZ , typename TU , typename TV >
XYZpUV< TX, TY, TZ, TU, TV > operator+ (XYZ< TX, TY, TZ > const &ABC, XY< TU, TV > const &DE)
 Addition of two multiplication proxys XYZ and XY. More...
 
template<typename TX , typename TY >
XpY< TX, TY > operator+ (TX const &AA, TY const &BB)
 Addition of two objects of type TX and TY. More...
 
template<typename TX , typename TY >
XmY< TX, TY > operator- (TX const &AA, TY const &BB)
 Substraction of two objects of type TX and TY. More...
 
template<typename Treal , typename Tmatrix >
Treal trace (const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &smm)
 
template<typename Treal , typename Tmatrix , typename Top >
Treal accumulate (MatrixSymmetric< Treal, Tmatrix > &A, Top &op)
 Performs operation specified in 'op' on all nonzero matrix elements and sums up the result and returns it. More...
 
template<class Treal >
void quicksort (const Treal *value, int *index, int low, int high)
 
template<typename Treal , typename Tvector >
Treal operator* (Xtrans< VectorGeneral< Treal, Tvector > > const &xT, VectorGeneral< Treal, Tvector > const &y)
 transpose(x) * y Scalar (dot) product of two vectors More...
 

Detailed Description

design principles

Heart of matrix library: MatrixHierarchicBase is the base class both for higher levels in the hierarchic Matrix (first part of this file) and for the specialization at the lowest level (second part of this file). Hence, functionality common to these class templates can be implemented in MatrixHierarchicBase.

The interface: The interface is in MatrixBase.h MatrixSymmetric.h MatrixGeneral.h MatrixTriangular.h.

Functions added to this file will not be visible. They have to be called from the interface classes.

Example usage: Check out API_test.cc

Enumeration Type Documentation

◆ inchversion

Enumerator
unstable 
stable 

◆ matrix_type

Enumerator
matrix_matr 
matrix_symm 
matrix_triang 

◆ normType

Enumerator
frobNorm 
euclNorm 
mixedNorm 

◆ property

Enumerator
zero 
ful 

◆ side

enum mat::side
Enumerator
left 
right 

Function Documentation

◆ accumulate()

template<typename Treal , typename Tmatrix , typename Top >
Treal mat::accumulate ( MatrixSymmetric< Treal, Tmatrix > &  A,
Top &  op 
)

Performs operation specified in 'op' on all nonzero matrix elements and sums up the result and returns it.

References A.

Referenced by testAccumulation().

◆ allocateElements()

template<class T >
T* mat::allocateElements ( int  n)

◆ allocateElements< double >()

◆ allocateElements< float >()

◆ axpy()

template<class T >
static void mat::axpy ( const int *  n,
const T *  da,
const T *  dx,
const int *  incx,
T *  dy,
const int *  incy 
)
inlinestatic

◆ axpy< double >()

template<>
void mat::axpy< double > ( const int *  n,
const double *  da,
const double *  dx,
const int *  incx,
double *  dy,
const int *  incy 
)
inline

◆ axpy< float >()

template<>
void mat::axpy< float > ( const int *  n,
const float *  da,
const float *  dx,
const int *  incx,
float *  dy,
const int *  incy 
)
inline

◆ bisection()

template<typename Treal , typename Tfun >
Treal mat::bisection ( Tfun const &  fun,
Treal  min,
Treal  max,
Treal const  tol 
)

Bisection algorithm for root finding.

The bisection method finds the root of a function in the interval [min, max], or more precisely the place where the function changes sign. It is assumed that the function only changes sign once in the given interval.

The function is given by a class that has a member function named eval that evaluates the function in the given point.

References max, min(), sign(), and template_blas_fabs().

Referenced by mat::TC2< Treal, Tmatrix >::fermi_level(), mat::TC2< Treal, Tmatrix >::homo(), and mat::TC2< Treal, Tmatrix >::lumo().

◆ copy_file()

static void mat::copy_file ( const char *  sourceFileName,
const char *  destFileName 
)
static

◆ dot()

template<class T >
static T mat::dot ( const int *  n,
const T *  dx,
const int *  incx,
const T *  dy,
const int *  incy 
)
inlinestatic

◆ dot< double >()

template<>
double mat::dot< double > ( const int *  n,
const double *  dx,
const int *  incx,
const double *  dy,
const int *  incy 
)
inline

◆ euclIfSmall()

template<typename Tmatrix , typename Treal >
Interval<Treal> mat::euclIfSmall ( Tmatrix const &  M,
Treal const  requestedAbsAccuracy,
Treal const  requestedRelAccuracy,
Treal const  maxAbsVal,
typename Tmatrix::VectorType *const  eVecPtr = 0,
int  maxIter = -1 
)

◆ fileread()

template<typename Treal , typename Trealonfile >
static void mat::fileread ( Treal *  ptr,
int  size,
FILE *  file 
)
static

◆ freeElements() [1/3]

template<>
void mat::freeElements ( double *  ptr)

◆ freeElements() [2/3]

◆ freeElements() [3/3]

template<class T >
void mat::freeElements ( T *  ptr)

◆ frobdiff()

template<class Treal >
static Treal mat::frobdiff ( const Treal *  f1,
const Treal *  f2,
int  size 
)
static

References template_blas_sqrt().

◆ fulltopacked()

template<class Treal >
static void mat::fulltopacked ( const Treal *  full,
Treal *  packed,
const int  size 
)
static

◆ gemm()

◆ gemm< double >()

template<>
void mat::gemm< double > ( const char *  ta,
const char *  tb,
const int *  n,
const int *  k,
const int *  l,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  B,
const int *  ldb,
const double *  beta,
double *  C,
const int *  ldc 
)
inline

◆ gemm< float >()

template<>
void mat::gemm< float > ( const char *  ta,
const char *  tb,
const int *  n,
const int *  k,
const int *  l,
const float *  alpha,
const float *  A,
const int *  lda,
const float *  B,
const int *  ldb,
const float *  beta,
float *  C,
const int *  ldc 
)
inline

◆ gemv()

template<class T >
static void mat::gemv ( const char *  ta,
const int *  m,
const int *  n,
const T *  alpha,
const T *  A,
const int *  lda,
const T *  x,
const int *  incx,
const T *  beta,
T *  y,
const int *  incy 
)
inlinestatic

◆ gemv< double >()

template<>
void mat::gemv< double > ( const char *  ta,
const int *  m,
const int *  n,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  x,
const int *  incx,
const double *  beta,
double *  y,
const int *  incy 
)
inline

◆ gemv< float >()

template<>
void mat::gemv< float > ( const char *  ta,
const int *  m,
const int *  n,
const float *  alpha,
const float *  A,
const int *  lda,
const float *  x,
const int *  incx,
const float *  beta,
float *  y,
const int *  incy 
)
inline

◆ get_file_size()

static long int mat::get_file_size ( const char *  fileName)
static

◆ getMachineEpsilon()

template<typename Treal >
static Treal mat::getMachineEpsilon ( )
inlinestatic

◆ getNormType()

normType mat::getNormType ( const char *  normStr)

References euclNorm, frobNorm, and mixedNorm.

Referenced by es_run().

◆ getNormTypeString()

std::string mat::getNormTypeString ( normType  nType)

◆ getRelPrecision()

template<typename Treal >
static Treal mat::getRelPrecision ( )
inlinestatic

◆ ggev()

template<class T >
static void mat::ggev ( const char *  jobbl,
const char *  jobvr,
const int *  n,
T *  A,
const int *  lda,
T *  B,
const int *  ldb,
T *  alphar,
T *  alphai,
T *  beta,
T *  vl,
const int *  ldvl,
T *  vr,
const int *  ldvr,
T *  work,
const int *  lwork,
int *  info 
)
inlinestatic

◆ ggev< double >()

template<>
void mat::ggev< double > ( const char *  jobbl,
const char *  jobvr,
const int *  n,
double *  A,
const int *  lda,
double *  B,
const int *  ldb,
double *  alphar,
double *  alphai,
double *  beta,
double *  vl,
const int *  ldvl,
double *  vr,
const int *  ldvr,
double *  work,
const int *  lwork,
int *  info 
)
inline

◆ ggev< float >()

template<>
void mat::ggev< float > ( const char *  jobbl,
const char *  jobvr,
const int *  n,
float *  A,
const int *  lda,
float *  B,
const int *  ldb,
float *  alphar,
float *  alphai,
float *  beta,
float *  vl,
const int *  ldvl,
float *  vr,
const int *  ldvr,
float *  work,
const int *  lwork,
int *  info 
)
inline

◆ maxdiff()

template<class Treal >
static Treal mat::maxdiff ( const Treal *  f1,
const Treal *  f2,
int  size 
)
static

References template_blas_fabs().

Referenced by mainFun(), and read_sparse_matrix().

◆ maxdiff_tri()

template<class Treal >
static Treal mat::maxdiff_tri ( const Treal *  f1,
const Treal *  f2,
int  size 
)
static

References template_blas_fabs().

Referenced by mainFun().

◆ operator*() [1/7]

template<typename TX , typename TY >
XY<TX, TY> mat::operator* ( TX const &  AA,
TY const &  BB 
)
inline

Multiplication of an object of type TX with an object of type TY.

Returns multiplication proxy XY.

See also
XY
operator*(Xtrans<TX> const &, Xtrans<TY> const &)
operator*(TX const &, Xtrans<TY> const &)
operator*(Xtrans<TX> const &, TY const &)

◆ operator*() [2/7]

template<typename TX , typename TY >
XY<TX, TY> mat::operator* ( TX const &  AA,
Xtrans< TY > const &  trBB 
)
inline

Multiplication of an object of type TX with a tranposition proxy
holding an object of type TY.

Returns multiplication proxy XY.

See also
XY
Xtrans
operator*(Xtrans<TX> const &, Xtrans<TY> const &)
operator*(Xtrans<TX> const &, TY const &)
operator*(TX const &, TY const &)

References mat::Xtrans< TX >::A, and mat::Xtrans< TX >::tA.

◆ operator*() [3/7]

template<typename TX , typename TY >
XY<TX, TY> mat::operator* ( Xtrans< TX > const &  trAA,
TY const &  BB 
)
inline

Multiplication of a tranposition proxy holding an object of type TX with an object of type TY.

Returns multiplication proxy XY.

See also
XY
Xtrans
operator*(Xtrans<TX> const &, Xtrans<TY> const &)
operator*(TX const &, Xtrans<TY> const &)
operator*(TX const &, TY const &)

References mat::Xtrans< TX >::A, and mat::Xtrans< TX >::tA.

◆ operator*() [4/7]

template<typename TX , typename TY >
XY<TX, TY> mat::operator* ( Xtrans< TX > const &  trAA,
Xtrans< TY > const &  trBB 
)
inline

Multiplication of two transposition proxys holding objects of type TX and TY respectively.

Returns multiplication proxy XY.

See also
XY
Xtrans
operator*(TX const &, Xtrans<TY> const &)
operator*(Xtrans<TX> const &, TY const &)
operator*(TX const &, TY const &)

References mat::Xtrans< TX >::A, and mat::Xtrans< TX >::tA.

◆ operator*() [5/7]

template<typename Treal , typename Tvector >
Treal mat::operator* ( Xtrans< VectorGeneral< Treal, Tvector > > const &  xT,
VectorGeneral< Treal, Tvector > const &  y 
)

transpose(x) * y Scalar (dot) product of two vectors

References dot().

◆ operator*() [6/7]

template<typename TX , typename TY , typename TZ >
XYZ<TX, TY, TZ> mat::operator* ( XY< TX, TY > const &  AB,
TZ const &  CC 
)
inline

Multiplication of a multiplication proxy XY with an object of type TZ.

Returns multiplication proxy XYZ.

See also
XY
XYZ

References mat::XY< TX, TY >::A, mat::XY< TX, TY >::B, mat::XY< TX, TY >::tA, and mat::XY< TX, TY >::tB.

◆ operator*() [7/7]

template<typename TX , typename TY , typename TZ >
XYZ<TX, TY, TZ> mat::operator* ( XY< TX, TY > const &  AB,
Xtrans< TZ > const &  trCC 
)
inline

Multiplication of a multiplication proxy XY with a transposition proxy Xtrans.

Returns multiplication proxy XYZ.

See also
XY
XYZ
Xtrans

References mat::XY< TX, TY >::A, mat::Xtrans< TX >::A, mat::XY< TX, TY >::B, mat::XY< TX, TY >::tA, mat::Xtrans< TX >::tA, and mat::XY< TX, TY >::tB.

◆ operator+() [1/2]

template<typename TX , typename TY >
XpY<TX, TY> mat::operator+ ( TX const &  AA,
TY const &  BB 
)
inline

Addition of two objects of type TX and TY.

See also
XpY

◆ operator+() [2/2]

template<typename TX , typename TY , typename TZ , typename TU , typename TV >
XYZpUV<TX, TY, TZ, TU, TV> mat::operator+ ( XYZ< TX, TY, TZ > const &  ABC,
XY< TU, TV > const &  DE 
)
inline

◆ operator-()

template<typename TX , typename TY >
XmY<TX, TY> mat::operator- ( TX const &  AA,
TY const &  BB 
)
inline

Substraction of two objects of type TX and TY.

See also
XmY

◆ operator<<()

template<typename Treal >
std::ostream& mat::operator<< ( std::ostream &  s,
Interval< Treal > const &  in 
)

◆ packedtofull()

template<class Treal >
static void mat::packedtofull ( const Treal *  packed,
Treal *  full,
const int  size 
)
static

Referenced by mainFun().

◆ pocon()

template<class T >
static void mat::pocon ( const char *  uplo,
const int *  n,
const T *  A,
const int *  lda,
const T *  anorm,
T *  rcond,
T *  work,
int *  iwork,
int *  info 
)
inlinestatic

References A, and template_lapack_pocon().

◆ pocon< double >()

template<>
void mat::pocon< double > ( const char *  uplo,
const int *  n,
const double *  A,
const int *  lda,
const double *  anorm,
double *  rcond,
double *  work,
int *  iwork,
int *  info 
)
inline

◆ pocon< float >()

template<>
void mat::pocon< float > ( const char *  uplo,
const int *  n,
const float *  A,
const int *  lda,
const float *  anorm,
float *  rcond,
float *  work,
int *  iwork,
int *  info 
)
inline

◆ potrf()

template<class T >
static void mat::potrf ( const char *  uplo,
const int *  n,
T *  A,
const int *  lda,
int *  info 
)
inlinestatic

References A, and template_lapack_potrf().

Referenced by mat::Matrix< Treal >::inch().

◆ potrf< double >()

template<>
void mat::potrf< double > ( const char *  uplo,
const int *  n,
double *  A,
const int *  lda,
int *  info 
)
inline

◆ potrf< float >()

template<>
void mat::potrf< float > ( const char *  uplo,
const int *  n,
float *  A,
const int *  lda,
int *  info 
)
inline

◆ pptrf()

template<class T >
static void mat::pptrf ( const char *  uplo,
const int *  n,
T *  ap,
int *  info 
)
inlinestatic

References template_lapack_pptrf().

Referenced by mainFun().

◆ pptrf< double >()

template<>
void mat::pptrf< double > ( const char *  uplo,
const int *  n,
double *  ap,
int *  info 
)
inline

◆ pptrf< float >()

template<>
void mat::pptrf< float > ( const char *  uplo,
const int *  n,
float *  ap,
int *  info 
)
inline

◆ quicksort()

template<class Treal >
void mat::quicksort ( const Treal *  value,
int *  index,
int  low,
int  high 
)

◆ read_matrix()

template<typename Treal , typename Tmatrix >
static void mat::read_matrix ( Tmatrix &  A,
char const *const  matrixPath,
int const  size 
)
static

◆ read_sparse_matrix()

template<typename Treal , typename Trealonfile , typename Tmatrix >
static void mat::read_sparse_matrix ( Tmatrix &  A,
char const *const  rowPath,
char const *const  colPath,
char const *const  valPath,
int const  nval 
)
static

References A, maxdiff(), and template_blas_fabs().

◆ read_xyz()

template<typename Treal >
static void mat::read_xyz ( Treal *  x,
Treal *  y,
Treal *  z,
char *  atomsPath,
int const  natoms,
int const  size 
)
static

◆ scal()

template<class T >
static void mat::scal ( const int *  n,
const T *  da,
T *  dx,
const int *  incx 
)
inlinestatic

◆ scal< double >()

template<>
void mat::scal< double > ( const int *  n,
const double *  da,
double *  dx,
const int *  incx 
)
inline

◆ scal< float >()

template<>
void mat::scal< float > ( const int *  n,
const float *  da,
float *  dx,
const int *  incx 
)
inline

◆ sign()

template<typename Treal >
int mat::sign ( Treal  value)
inline

Sign function returns the sign of the input.

1 for positive, -1 for negative and 0 for zero.

Referenced by bisection(), get_1e_density_matrix(), and get_2e_density_matrix().

◆ spgst()

template<class T >
static void mat::spgst ( const int *  itype,
const char *  uplo,
const int *  n,
T *  ap,
const T *  bp,
int *  info 
)
inlinestatic

◆ spgst< double >()

template<>
void mat::spgst< double > ( const int *  itype,
const char *  uplo,
const int *  n,
double *  ap,
const double *  bp,
int *  info 
)
inline

◆ spgst< float >()

template<>
void mat::spgst< float > ( const int *  itype,
const char *  uplo,
const int *  n,
float *  ap,
const float *  bp,
int *  info 
)
inline

◆ sqrtInt()

template<typename Treal >
Interval<Treal> mat::sqrtInt ( Interval< Treal > const &  other)

◆ stevr()

template<class T >
static void mat::stevr ( const char *  jobz,
const char *  range,
const int *  n,
T *  d,
T *  e,
const T *  vl,
const T *  vu,
const int *  il,
const int *  iu,
const T *  abstol,
int *  m,
T *  w,
T *  z,
const int *  ldz,
int *  isuppz,
T *  work,
int *  lwork,
int *  iwork,
int *  liwork,
int *  info 
)
inlinestatic

◆ stevr< double >()

template<>
void mat::stevr< double > ( const char *  jobz,
const char *  range,
const int *  n,
double *  d,
double *  e,
const double *  vl,
const double *  vu,
const int *  il,
const int *  iu,
const double *  abstol,
int *  m,
double *  w,
double *  z,
const int *  ldz,
int *  isuppz,
double *  work,
int *  lwork,
int *  iwork,
int *  liwork,
int *  info 
)
inline

◆ stevr< float >()

template<>
void mat::stevr< float > ( const char *  jobz,
const char *  range,
const int *  n,
float *  d,
float *  e,
const float *  vl,
const float *  vu,
const int *  il,
const int *  iu,
const float *  abstol,
int *  m,
float *  w,
float *  z,
const int *  ldz,
int *  isuppz,
float *  work,
int *  lwork,
int *  iwork,
int *  liwork,
int *  info 
)
inline

◆ stevx()

template<class T >
static void mat::stevx ( const char *  jobz,
const char *  range,
const int *  n,
T *  d,
T *  e,
const T *  vl,
const T *  vu,
const int *  il,
const int *  iu,
const T *  abstol,
int *  m,
T *  w,
T *  z,
const int *  ldz,
T *  work,
int *  iwork,
int *  ifail,
int *  info 
)
inlinestatic

◆ stevx< double >()

template<>
void mat::stevx< double > ( const char *  jobz,
const char *  range,
const int *  n,
double *  d,
double *  e,
const double *  vl,
const double *  vu,
const int *  il,
const int *  iu,
const double *  abstol,
int *  m,
double *  w,
double *  z,
const int *  ldz,
double *  work,
int *  iwork,
int *  ifail,
int *  info 
)
inline

◆ stevx< float >()

template<>
void mat::stevx< float > ( const char *  jobz,
const char *  range,
const int *  n,
float *  d,
float *  e,
const float *  vl,
const float *  vu,
const int *  il,
const int *  iu,
const float *  abstol,
int *  m,
float *  w,
float *  z,
const int *  ldz,
float *  work,
int *  iwork,
int *  ifail,
int *  info 
)
inline

◆ syev()

template<class T >
static void mat::syev ( const char *  jobz,
const char *  uplo,
const int *  n,
T *  a,
const int *  lda,
T *  w,
T *  work,
const int *  lwork,
int *  info 
)
inlinestatic

◆ syev< double >()

template<>
void mat::syev< double > ( const char *  jobz,
const char *  uplo,
const int *  n,
double *  a,
const int *  lda,
double *  w,
double *  work,
const int *  lwork,
int *  info 
)
inline

◆ syev< float >()

template<>
void mat::syev< float > ( const char *  jobz,
const char *  uplo,
const int *  n,
float *  a,
const int *  lda,
float *  w,
float *  work,
const int *  lwork,
int *  info 
)
inline

◆ sygv()

template<class T >
static void mat::sygv ( const int *  itype,
const char *  jobz,
const char *  uplo,
const int *  n,
T *  A,
const int *  lda,
T *  B,
const int *  ldb,
T *  w,
T *  work,
const int *  lwork,
int *  info 
)
inlinestatic

References A, B, and template_lapack_sygv().

Referenced by get_F_orbs(), and LR::LRSolver::setE2diag().

◆ sygv< double >()

template<>
void mat::sygv< double > ( const int *  itype,
const char *  jobz,
const char *  uplo,
const int *  n,
double *  A,
const int *  lda,
double *  B,
const int *  ldb,
double *  w,
double *  work,
const int *  lwork,
int *  info 
)
inline

◆ sygv< float >()

template<>
void mat::sygv< float > ( const int *  itype,
const char *  jobz,
const char *  uplo,
const int *  n,
float *  A,
const int *  lda,
float *  B,
const int *  ldb,
float *  w,
float *  work,
const int *  lwork,
int *  info 
)
inline

◆ symm()

template<class T >
static void mat::symm ( const char *  side,
const char *  uplo,
const int *  m,
const int *  n,
const T *  alpha,
const T *  A,
const int *  lda,
const T *  B,
const int *  ldb,
const T *  beta,
T *  C,
const int *  ldc 
)
inlinestatic

◆ symm< double >()

template<>
void mat::symm< double > ( const char *  side,
const char *  uplo,
const int *  m,
const int *  n,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  B,
const int *  ldb,
const double *  beta,
double *  C,
const int *  ldc 
)
inline

◆ symm< float >()

template<>
void mat::symm< float > ( const char *  side,
const char *  uplo,
const int *  m,
const int *  n,
const float *  alpha,
const float *  A,
const int *  lda,
const float *  B,
const int *  ldb,
const float *  beta,
float *  C,
const int *  ldc 
)
inline

◆ symv()

template<class T >
static void mat::symv ( const char *  uplo,
const int *  n,
const T *  alpha,
const T *  A,
const int *  lda,
const T *  x,
const int *  incx,
const T *  beta,
T *  y,
const int *  incy 
)
inlinestatic

◆ symv< double >()

template<>
void mat::symv< double > ( const char *  uplo,
const int *  n,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  x,
const int *  incx,
const double *  beta,
double *  y,
const int *  incy 
)
inline

◆ symv< float >()

template<>
void mat::symv< float > ( const char *  uplo,
const int *  n,
const float *  alpha,
const float *  A,
const int *  lda,
const float *  x,
const int *  incx,
const float *  beta,
float *  y,
const int *  incy 
)
inline

◆ syrk()

template<class T >
static void mat::syrk ( const char *  uplo,
const char *  trans,
const int *  n,
const int *  k,
const T *  alpha,
const T *  A,
const int *  lda,
const T *  beta,
T *  C,
const int *  ldc 
)
inlinestatic

◆ syrk< double >()

template<>
void mat::syrk< double > ( const char *  uplo,
const char *  trans,
const int *  n,
const int *  k,
const double *  alpha,
const double *  A,
const int *  lda,
const double *  beta,
double *  C,
const int *  ldc 
)
inline

◆ syrk< float >()

template<>
void mat::syrk< float > ( const char *  uplo,
const char *  trans,
const int *  n,
const int *  k,
const float *  alpha,
const float *  A,
const int *  lda,
const float *  beta,
float *  C,
const int *  ldc 
)
inline

◆ tptri()

template<class T >
static void mat::tptri ( const char *  uplo,
const char *  diag,
const int *  n,
T *  ap,
int *  info 
)
inlinestatic

References template_lapack_tptri().

Referenced by mainFun().

◆ tptri< double >()

template<>
void mat::tptri< double > ( const char *  uplo,
const char *  diag,
const int *  n,
double *  ap,
int *  info 
)
inline

◆ tptri< float >()

template<>
void mat::tptri< float > ( const char *  uplo,
const char *  diag,
const int *  n,
float *  ap,
int *  info 
)
inline

◆ trace()

◆ transpose() [1/2]

template<typename TX >
Xtrans<TX> mat::transpose ( const Xtrans< TX > &  xtrans)
inline

Transposition.

Returns a transposition proxy of an object of type Xtrans<TX>. Only for correct treatment of repeated transposition, e.g. transpose(transpose(A))

See also
Xtrans
transpose(TX const &)

References mat::Xtrans< TX >::A, and mat::Xtrans< TX >::tA.

◆ transpose() [2/2]

◆ trifulltofull()

template<class Treal >
static void mat::trifulltofull ( Treal *  trifull,
const int  size 
)
static

◆ tripackedtofull()

template<class Treal >
static void mat::tripackedtofull ( const Treal *  packed,
Treal *  full,
const int  size 
)
static

Referenced by mainFun().

◆ trmm()

template<class T >
static void mat::trmm ( const char *  side,
const char *  uplo,
const char *  transa,
const char *  diag,
const int *  m,
const int *  n,
const T *  alpha,
const T *  A,
const int *  lda,
T *  B,
const int *  ldb 
)
inlinestatic

◆ trmm< double >()

template<>
void mat::trmm< double > ( const char *  side,
const char *  uplo,
const char *  transa,
const char *  diag,
const int *  m,
const int *  n,
const double *  alpha,
const double *  A,
const int *  lda,
double *  B,
const int *  ldb 
)
inline

◆ trmm< float >()

template<>
void mat::trmm< float > ( const char *  side,
const char *  uplo,
const char *  transa,
const char *  diag,
const int *  m,
const int *  n,
const float *  alpha,
const float *  A,
const int *  lda,
float *  B,
const int *  ldb 
)
inline

◆ trmv()

template<class T >
static void mat::trmv ( const char *  uplo,
const char *  trans,
const char *  diag,
const int *  n,
const T *  A,
const int *  lda,
T *  x,
const int *  incx 
)
inlinestatic

◆ trmv< double >()

template<>
void mat::trmv< double > ( const char *  uplo,
const char *  trans,
const char *  diag,
const int *  n,
const double *  A,
const int *  lda,
double *  x,
const int *  incx 
)
inline

◆ trmv< float >()

template<>
void mat::trmv< float > ( const char *  uplo,
const char *  trans,
const char *  diag,
const int *  n,
const float *  A,
const int *  lda,
float *  x,
const int *  incx 
)
inline

◆ trtri()

template<class T >
static void mat::trtri ( const char *  uplo,
const char *  diag,
const int *  n,
T *  A,
const int *  lda,
int *  info 
)
inlinestatic

References A, and template_lapack_trtri().

Referenced by mat::Matrix< Treal >::inch().

◆ trtri< double >()

template<>
void mat::trtri< double > ( const char *  uplo,
const char *  diag,
const int *  n,
double *  A,
const int *  lda,
int *  info 
)
inline

◆ trtri< float >()

template<>
void mat::trtri< float > ( const char *  uplo,
const char *  diag,
const int *  n,
float *  A,
const int *  lda,
int *  info 
)
inline