6 #ifndef MYRAMATH_DENSE_HEMM_H 7 #define MYRAMATH_DENSE_HEMM_H 14 #include <myramath/MYRAMATH_EXPORT.h> 20 template<
class Number>
class Matrix;
21 template<
class Number>
class MatrixRange;
22 template<
class Number>
class CMatrixRange;
23 template<
class Number>
class LowerMatrixRange;
24 template<
class Number>
class CLowerMatrixRange;
27 MYRAMATH_EXPORT
void hemm_inplace(
char side,
char uplo,
const MatrixRange<NumberS>& C,
const CMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B, NumberS alpha, NumberS beta);
29 MYRAMATH_EXPORT
void hemm_inplace(
char side,
char uplo,
const MatrixRange<NumberD>& C,
const CMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B, NumberD alpha, NumberD beta);
30 MYRAMATH_EXPORT
void hemm_inplace(
char side,
char uplo,
const MatrixRange<NumberC>& C,
const CMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B, NumberC alpha, NumberC beta);
31 MYRAMATH_EXPORT
void hemm_inplace(
char side,
char uplo,
const MatrixRange<NumberZ>& C,
const CMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B, NumberZ alpha, NumberZ beta);
35 MYRAMATH_EXPORT Matrix<NumberS> hemm(
char side,
char uplo,
const CMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B, NumberS alpha = 1);
37 MYRAMATH_EXPORT Matrix<NumberD> hemm(
char side,
char uplo,
const CMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B, NumberD alpha = 1);
38 MYRAMATH_EXPORT Matrix<NumberC> hemm(
char side,
char uplo,
const CMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B, NumberC alpha = 1);
39 MYRAMATH_EXPORT Matrix<NumberZ> hemm(
char side,
char uplo,
const CMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B, NumberZ alpha = 1);
43 MYRAMATH_EXPORT
void hemm_inplace(
char side,
const MatrixRange<NumberS>& C,
const CLowerMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B, NumberS alpha, NumberS beta);
45 MYRAMATH_EXPORT
void hemm_inplace(
char side,
const MatrixRange<NumberD>& C,
const CLowerMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B, NumberD alpha, NumberD beta);
47 MYRAMATH_EXPORT
void hemm_inplace(
char side,
const MatrixRange<NumberC>& C,
const LowerMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B, NumberC alpha, NumberC beta);
48 MYRAMATH_EXPORT
void hemm_inplace(
char side,
const MatrixRange<NumberZ>& C,
const LowerMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B, NumberZ alpha, NumberZ beta);
52 MYRAMATH_EXPORT Matrix<NumberS> hemm(
char side,
const CLowerMatrixRange<NumberS>& A,
const CMatrixRange<NumberS>& B, NumberS alpha = 1);
54 MYRAMATH_EXPORT Matrix<NumberD> hemm(
char side,
const CLowerMatrixRange<NumberD>& A,
const CMatrixRange<NumberD>& B, NumberD alpha = 1);
56 MYRAMATH_EXPORT Matrix<NumberC> hemm(
char side,
const LowerMatrixRange<NumberC>& A,
const CMatrixRange<NumberC>& B, NumberC alpha = 1);
57 MYRAMATH_EXPORT Matrix<NumberZ> hemm(
char side,
const LowerMatrixRange<NumberZ>& A,
const CMatrixRange<NumberZ>& B, NumberZ alpha = 1);
Various utility functions/classes related to scalar Number types.