MPQC  3.0.0-alpha
mpqc.Math.BLAS

Functions

template<typename T >
void mpqc::blas::clear (size_t n, T *x)
 
template<class A , class B >
A::Scalar mpqc::blas::dot (const Eigen::MatrixBase< A > &a, const Eigen::MatrixBase< B > &b)
 
template<typename Alpha , class A , class B >
void mpqc::blas::axpy (const Alpha &alpha, const Eigen::MatrixBase< A > &a, Eigen::MatrixBase< B > &b)
 
template<typename Alpha , class A , class B , typename Beta , class C >
void mpqc::blas::gemm (const Alpha &alpha, const Eigen::MatrixBase< A > &a, const Eigen::MatrixBase< B > &b, const Beta &beta, Eigen::MatrixBase< C > &c)
 

Detailed Description

BLAS bindings. The BLAS biding are meant to serve as a safer way to interface C++ Matrix objects, namely Eigen::Matrix and mpqc::matrix, with BLAS libraries, eg:

auto a = MatrixXd::Map(data, m, k);
Eigen::MatrixXd b(k,n);
mpqc::Matrix c(m,n);
// c = 1.0*a*b + 0.0*c;
blas::gemm(1.0, a, b, 0.0, c);

BLAS bindings can be disabled and Eigen expression equivalents will be used instead by setting the value of MPQCMATH_USE_BLAS macro to 0. This gives a good way to test if interface is working correctly.

BLAS bindings are implemented on top of Boost.Numeric.Bindings.

mpqc::matrix
Matrix class derived from Eigen::Matrix with additional MPQC integration.
Definition: matrix.hpp:21

Generated at Sun Jan 26 2020 23:24:02 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.