MADNESS 0.10.1
mxm.h File Reference

Internal use only. More...

Include dependency graph for mxm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  madness
 Namespace for all elements and tools of MADNESS.

Macros

#define HAVE_FAST_BLAS

Functions

template<>
void madness::mTxm (long dimi, long dimj, long dimk, double *MADNESS_RESTRICT c, const double *MADNESS_RESTRICT a, const double *MADNESS_RESTRICT b)
 Matrix transpose * matrix (hand unrolled version).
template<typename T, typename Q, typename S>
static void madness::mTxm (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
template<typename T>
void madness::mTxm (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const T *a, const T *b)
 Matrix += Matrix transpose * matrix ... MKL interface version.
template<typename T, typename Q, typename S>
static void madness::mTxm_reference (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
 Matrix += Matrix transpose * matrix ... reference implementation (slow but correct).
template<>
void madness::mTxmT (long dimi, long dimj, long dimk, double *MADNESS_RESTRICT csave, const double *MADNESS_RESTRICT asave, const double *MADNESS_RESTRICT b)
 Matrix transpose * matrix transpose (hand tiled and unrolled).
template<typename T, typename Q, typename S>
static void madness::mTxmT (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
template<typename T>
void madness::mTxmT (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const T *a, const T *b)
 Matrix += Matrix transpose * matrix transpose ... MKL interface version.
template<typename T, typename Q, typename S>
static void madness::mTxmT_reference (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
 Matrix += Matrix transpose * matrix transpose reference implementation (slow but correct).
template<>
void madness::mxm (long dimi, long dimj, long dimk, double *MADNESS_RESTRICT c, const double *MADNESS_RESTRICT a, const double *MADNESS_RESTRICT b)
 Matrix * matrix (hand unrolled version).
template<typename T, typename Q, typename S>
static void madness::mxm (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
template<typename T>
void madness::mxm (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const T *a, const T *b)
 Matrix += Matrix * matrix ... BLAS/MKL interface version.
template<typename T, typename Q, typename S>
static void madness::mxm_reference (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
 Matrix += Matrix * matrix reference implementation (slow but correct).
template<>
void madness::mxmT (long dimi, long dimj, long dimk, double *MADNESS_RESTRICT c, const double *MADNESS_RESTRICT a, const double *MADNESS_RESTRICT b)
 Matrix * matrix transpose (hand unrolled version).
template<typename T, typename Q, typename S>
static void madness::mxmT (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
template<typename T>
void madness::mxmT (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const T *a, const T *b)
 Matrix += Matrix * matrix transpose ... MKL interface version.
template<typename T, typename Q, typename S>
static void madness::mxmT_reference (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const Q *MADNESS_RESTRICT a, const S *MADNESS_RESTRICT b)
 Matrix += Matrix * matrix transpose ... reference implementation (slow but correct).

Detailed Description

Internal use only.

Macro Definition Documentation

◆ HAVE_FAST_BLAS

#define HAVE_FAST_BLAS