MADNESS 0.10.1
Namespaces | Macros | Functions
mxm.h File Reference

Internal use only. More...

#include <madness/madness_config.h>
#include <madness/tensor/cblas.h>
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<typename aT , typename bT , typename cT >
void madness::mTxmq (long dimi, long dimj, long dimk, cT *MADNESS_RESTRICT c, const aT *a, const bT *b, long ldb=-1)
 
template<typename T >
void madness::mTxmq (long dimi, long dimj, long dimk, T *MADNESS_RESTRICT c, const T *a, const T *b, long ldb=-1)
 Matrix = Matrix transpose * matrix ... MKL interface version.
 
template<typename aT , typename bT , typename cT >
void madness::mTxmq_padding (long dimi, long dimj, long dimk, long ext_b, cT *c, const aT *a, const bT *b)
 
template<typename aT , typename bT , typename cT >
void madness::mTxmq_reference (long dimi, long dimj, long dimk, cT *MADNESS_RESTRICT c, const aT *a, const bT *b, long ldb=-1)
 Matrix = Matrix transpose * matrix ... slow reference implementation.
 
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