mat Namespace Reference


Classes

class  DebugLevelHigh
class  DebugLevelMedium
class  DebugLevelLow
class  Failure
class  Acceptable
class  AcceptableMaxIter
class  FileWritable
 Write and read objects to/from file. More...
struct  Gblas
class  Interval
struct  DiffMatrix
struct  ATAMatrix
struct  TripleMatrix
struct  CongrTransErrorMatrix
class  Params
class  Time
class  MemUsage
class  SingletonForTimings
class  Matrix
 Matrix class and heart of the matrix library. More...
class  Matrix< Treal >
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...
struct  Xtrans
 This proxy expresses the result of transposition of an object of type TX. More...
struct  XpY
 This proxy expresses the result of addition of two objects, of possibly different types, TX and TY. More...
struct  XmY
 This proxy expresses the result of substraction of two objects, of possibly different types, TX and TY. More...
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  Purification
class  PuriInfo
 Contains information about a purification process. More...
class  PuriStepInfo
 Contains information about the matrix before a purification step and about the step. More...
class  PuriStepInfoDebug
class  PuriStepInfoDebug< Treal, DebugLevelHigh >
class  SizesAndBlocks
 Describes dimensions of matrix and its blocks on all levels. More...
class  TC2
 Trace correcting purification. More...
class  EuclTruncationBase
class  EuclTruncationSymm
 Truncation of symmetric matrices. More...
class  EuclTruncationSymmWithZ
 Truncation of symmetric matrices with Z. More...
class  EuclTruncationSymmElementLevel
 Truncation of symmetric matrices at the element level (used for mixed norm truncation). More...
class  EuclTruncationGeneral
 Truncation of general matrices. More...
class  EuclTruncationCongrTransMeasure
 Truncation of general matrices with impact on matrix triple multiply as error measure. More...
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...

Namespaces

namespace  arn

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<typename Treal>
int sign (Treal value)
 Sign function returns the sign of the input.
template<typename Treal, typename Tfun>
Treal bisection (Tfun const &fun, Treal min, Treal max, Treal const tol)
 Bisection algorithm for root finding.
static long int get_file_size (const char *fileName)
static void copy_file (const char *sourceFileName, const char *destFileName)
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)
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)
 Returns interval containing the Euclidean norm of the matrix M.
normType getNormType (const char *normStr)
std::string getNormTypeString (normType nType)
template<typename Treal>
static Treal getRelPrecision ()
template<>
long double getRelPrecision< long double > ()
template<>
double getRelPrecision< double > ()
template<>
float getRelPrecision< float > ()
template<typename TX>
Xtrans< TX > transpose (TX const &A)
 Transposition.
template<typename TX>
Xtrans< TX > transpose (const Xtrans< TX > &xtrans)
 Transposition.
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.
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.
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.
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.
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.
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.
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.
template<typename TX, typename TY>
XpY< TX, TY > operator+ (TX const &AA, TY const &BB)
 Addition of two objects of type TX and TY.
template<typename TX, typename TY>
XmY< TX, TY > operator- (TX const &AA, TY const &BB)
 Substraction of two objects of type TX and TY.
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.
template<class Treal, class MAT>
void tc2_extra (MAT &D, const int nshells, const int nsteps, const Treal frob_trunc=0)
template<class Treal, class MAT>
void tc2_extra_auto (MAT &D, const int nshells, int &nsteps, const Treal frob_trunc, const int maxiter=50)
template<class Treal, class MAT>
void tc2 (MAT &D, int &iterations, const MAT &H, const int nshells, const Treal trace_error_limit=1e-2, const Treal frob_trunc=0, int *polys=NULL, const int maxiter=100)
template<class Treal, class MAT>
void tc2_auto (MAT &D, int &iterations, const MAT &H, const int nocc, const Treal frob_trunc=0, int *polys=NULL, const int maxiter=100)
template<typename Treal, typename Tvector, typename TdebugPolicy>
std::ostream & operator<< (std::ostream &s, PuriStepInfo< Treal, Tvector, TdebugPolicy > const &psi)
template<class Treal>
void quicksort (const Treal *value, int *index, int low, int high) throw (std::exception)
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


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

enum mat::property

Enumerator:
zero 
ful 

enum mat::normType

Enumerator:
frobNorm 
euclNorm 
mixedNorm 

enum mat::side

Enumerator:
left 
right 

enum mat::inchversion

Enumerator:
unstable 
stable 

enum mat::matrix_type

Enumerator:
matrix_matr 
matrix_symm 
matrix_triang 


Function Documentation

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.

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.

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

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

template<class T>
static void mat::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 
) [inline, static]

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

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

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

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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

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

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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 
) [inline, static]

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

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

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

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]

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

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

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

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]

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]

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]

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

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

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]

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]

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]

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]

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]

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]

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]

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]

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]

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

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

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

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]

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

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

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

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]

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]

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]

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

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

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]

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]

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]

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]

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]

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]

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]

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]

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]

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

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

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

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

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

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

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

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

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

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

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

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]

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

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

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

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 
)

Returns interval containing the Euclidean norm of the matrix M.

If it is smaller than 'maxAbsVal' it is computed with the 'requestedAccuracy'. If the norm is larger than 'maxAbsVal', the returned interval is based on the Frobenius norm.

normType mat::getNormType ( const char *  normStr  ) 

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

template<typename Treal>
static Treal mat::getRelPrecision (  )  [inline, static]

template<>
long double mat::getRelPrecision< long double > (  )  [inline]

template<>
double mat::getRelPrecision< double > (  )  [inline]

template<>
float mat::getRelPrecision< float > (  )  [inline]

template<typename TX>
Xtrans<TX> mat::transpose ( TX const &  A  )  [inline]

Transposition.

Returns a transposition proxy of an object of type TX.

See also:
Xtrans

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 &)

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 &)

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 &)

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 &)

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 &)

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

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

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]

Addition of two multiplication proxys XYZ and XY.

Returns multiplication and addition proxy XYZpUV.

See also:
XY

XYZ

XYZpUV

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

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

template<typename Treal, typename Tmatrix>
Treal mat::trace ( const XYZ< Treal, MatrixGeneral< Treal, Tmatrix >, MatrixGeneral< Treal, Tmatrix > > &  smm  ) 

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.

template<class Treal, class MAT>
void mat::tc2_extra ( MAT &  D,
const int  nshells,
const int  nsteps,
const Treal  frob_trunc = 0 
)

template<class Treal, class MAT>
void mat::tc2_extra_auto ( MAT &  D,
const int  nshells,
int &  nsteps,
const Treal  frob_trunc,
const int  maxiter = 50 
)

template<class Treal, class MAT>
void mat::tc2 ( MAT &  D,
int &  iterations,
const MAT &  H,
const int  nshells,
const Treal  trace_error_limit = 1e-2,
const Treal  frob_trunc = 0,
int *  polys = NULL,
const int  maxiter = 100 
)

template<class Treal, class MAT>
void mat::tc2_auto ( MAT &  D,
int &  iterations,
const MAT &  H,
const int  nocc,
const Treal  frob_trunc = 0,
int *  polys = NULL,
const int  maxiter = 100 
)

template<typename Treal, typename Tvector, typename TdebugPolicy>
std::ostream& mat::operator<< ( std::ostream &  s,
PuriStepInfo< Treal, Tvector, TdebugPolicy > const &  psi 
)

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

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


Generated on Mon Sep 17 14:32:58 2012 for ergo by  doxygen 1.4.7