mxlib
c++ tools for analyzing astronomical data and other tasks by Jared R. Males. [git repo]
|
Templatized interface to the BLAS
void mx::math::gemm | ( | const CBLAS_ORDER | Order, |
const CBLAS_TRANSPOSE | TransA, | ||
const CBLAS_TRANSPOSE | TransB, | ||
const int | M, | ||
const int | N, | ||
const int | K, | ||
const dataT & | alpha, | ||
const dataT * | A, | ||
const int | lda, | ||
const dataT * | B, | ||
const int | ldb, | ||
const dataT & | beta, | ||
dataT * | C, | ||
const int | ldc | ||
) |
Template Wrapper for cblas xGEMM.
Definition at line 179 of file templateBLAS.hpp.
void mx::math::hadd | ( | const int | N, |
const dataT | alpha, | ||
const dataT * | Y, | ||
const int | incY, | ||
dataT * | X, | ||
const int | incX | ||
) |
Template wrapper for cblas-extension xHADD.
Computes the the Hadamard or element-wise product: X <- alpha*X/Y
N | [in] the length of the two vectors |
alpha | [in] scalar to multiply each element by |
Y | [in] vector to perform element-wise division with |
incY | [in] in-memory increment or stride for Y |
X | [in.out] vector which is multiplied by alpha and element-wise divided by Y |
incX | [in] in-memeory increment or stride for X |
dataT | the data type of the alpha, X, and Y |
Definition at line 168 of file templateBLAS.hpp.
References mx::math::hadd_impl(), and mx::math::six_fifths().
void mx::math::hadd_impl | ( | const int | N, |
const dataT | alpha, | ||
const dataT * | Y, | ||
const int | incY, | ||
dataT * | X, | ||
const int | incX | ||
) |
Implementation of the Hadamard (element-wise) division of two vectors.
Computes the the Hadamard or element-wise product: X <- alpha*X/Y
N | [in] the length of the two vectors |
alpha | [in] scalar to multiply each element by |
Y | [in] vector to perform element-wise division with |
incY | [in] in-memory increment or stride for Y |
X | [in.out] vector which is multiplied by alpha and element-wise divided by Y |
incX | [in] in-memeory increment or stride for X |
dataT | the data type of the alpha, X, and Y |
Definition at line 144 of file templateBLAS.hpp.
References mx::math::six_fifths().
Referenced by mx::math::hadd().
Template wrapper for cblas-extension xHADP.
Computes the the Hadamard or element-wise product: X <- alpha*X*Y
N | [in] the length of the two vectors |
alpha | [in] scalar to multiply each element by |
Y | [in] vector to perform element-wise multiplication with |
incY | [in] in-memory increment or stride for Y |
X | [in.out] vector which is multiplied by alpha and element-wise multiplied by Y |
incX | [in] in-memeory increment or stride for X |
dataT | the data type of the alpha, X, and Y |
Definition at line 124 of file templateBLAS.hpp.
References mx::math::hadp_impl().
void mx::math::hadp_impl | ( | const int | N, |
dataT *__restrict__ | Y, | ||
dataT *__restrict__ | X | ||
) |
Implementation of the Hadamard (element-wise) product of two vectors.
Computes the the Hadamard or element-wise product: X <- alpha*X*Y
N | [in] the length of the two vectors |
alpha | [in] scalar to multiply each element by |
Y | [in] vector to perform element-wise multiplication with |
incY | [in] in-memory increment or stride for Y |
X | [in.out] vector which is multiplied by alpha and element-wise multiplied by Y |
incX | [in] in-memeory increment or stride for X |
dataT | the data type of the alpha, X, and Y |
Definition at line 97 of file templateBLAS.hpp.
References mx::math::six_fifths().
Referenced by mx::math::hadp().
Template wrapper for cblas xSCAL.
dataT | the data type of the alpha, X, and Y |
Definition at line 61 of file templateBLAS.hpp.
void mx::math::syrk | ( | const CBLAS_ORDER | Order, |
const CBLAS_UPLO | Uplo, | ||
const CBLAS_TRANSPOSE | Trans, | ||
const int | N, | ||
const int | K, | ||
const dataT & | alpha, | ||
const dataT * | A, | ||
const int | lda, | ||
const dataT & | beta, | ||
dataT * | C, | ||
const int | ldc | ||
) |
Template Wrapper for cblas xSYRK.
Definition at line 272 of file templateBLAS.hpp.