6 #ifndef MYRAMATH_DENSE_GEMM_H     7 #define MYRAMATH_DENSE_GEMM_H    14 #include <myramath/MYRAMATH_EXPORT.h>    20 template<
class Number> 
class Matrix;
    21 template<
class Number> 
class CMatrixRange;
    22 template<
class Number> 
class MatrixRange;
    25 MYRAMATH_EXPORT 
void gemm_inplace(
const MatrixRange<NumberS>& C, 
const CMatrixRange<NumberS>& A, 
char op_A, 
const CMatrixRange<NumberS>& B, 
char op_B, NumberS alpha=1, NumberS beta=0);
    27 MYRAMATH_EXPORT 
void gemm_inplace(
const MatrixRange<NumberD>& C, 
const CMatrixRange<NumberD>& A, 
char op_A, 
const CMatrixRange<NumberD>& B, 
char op_B, NumberD alpha=1, NumberD beta=0);
    28 MYRAMATH_EXPORT 
void gemm_inplace(
const MatrixRange<NumberC>& C, 
const CMatrixRange<NumberC>& A, 
char op_A, 
const CMatrixRange<NumberC>& B, 
char op_B, NumberC alpha=1, NumberC beta=0);
    29 MYRAMATH_EXPORT 
void gemm_inplace(
const MatrixRange<NumberZ>& C, 
const CMatrixRange<NumberZ>& A, 
char op_A, 
const CMatrixRange<NumberZ>& B, 
char op_B, NumberZ alpha=1, NumberZ beta=0);
    33 MYRAMATH_EXPORT Matrix<NumberS> gemm(
const CMatrixRange<NumberS>& A, 
char op_A, 
const CMatrixRange<NumberS>& B, 
char op_B, NumberS alpha=1);
    35 MYRAMATH_EXPORT Matrix<NumberD> gemm(
const CMatrixRange<NumberD>& A, 
char op_A, 
const CMatrixRange<NumberD>& B, 
char op_B, NumberD alpha=1);
    36 MYRAMATH_EXPORT Matrix<NumberC> gemm(
const CMatrixRange<NumberC>& A, 
char op_A, 
const CMatrixRange<NumberC>& B, 
char op_B, NumberC alpha=1);          
    37 MYRAMATH_EXPORT Matrix<NumberZ> gemm(
const CMatrixRange<NumberZ>& A, 
char op_A, 
const CMatrixRange<NumberZ>& B, 
char op_B, NumberZ alpha=1);
    41 MYRAMATH_EXPORT Matrix<NumberS> gemm(
const CMatrixRange<NumberS>& A, 
char op_A, 
const CMatrixRange<NumberS>& B, NumberS alpha=1);
    43 MYRAMATH_EXPORT Matrix<NumberD> gemm(
const CMatrixRange<NumberD>& A, 
char op_A, 
const CMatrixRange<NumberD>& B, NumberD alpha=1);
    44 MYRAMATH_EXPORT Matrix<NumberC> gemm(
const CMatrixRange<NumberC>& A, 
char op_A, 
const CMatrixRange<NumberC>& B, NumberC alpha=1);          
    45 MYRAMATH_EXPORT Matrix<NumberZ> gemm(
const CMatrixRange<NumberZ>& A, 
char op_A, 
const CMatrixRange<NumberZ>& B, NumberZ alpha=1);
    49 MYRAMATH_EXPORT Matrix<NumberS> gemm(
const CMatrixRange<NumberS>& A, 
const CMatrixRange<NumberS>& B, 
char op_B, NumberS alpha=1);
    51 MYRAMATH_EXPORT Matrix<NumberD> gemm(
const CMatrixRange<NumberD>& A, 
const CMatrixRange<NumberD>& B, 
char op_B, NumberD alpha=1);
    52 MYRAMATH_EXPORT Matrix<NumberC> gemm(
const CMatrixRange<NumberC>& A, 
const CMatrixRange<NumberC>& B, 
char op_B, NumberC alpha=1);          
    53 MYRAMATH_EXPORT Matrix<NumberZ> gemm(
const CMatrixRange<NumberZ>& A, 
const CMatrixRange<NumberZ>& B, 
char op_B, NumberZ alpha=1);
    57 MYRAMATH_EXPORT Matrix<NumberS> gemm(
const CMatrixRange<NumberS>& A, 
const CMatrixRange<NumberS>& B, NumberS alpha=1);
    59 MYRAMATH_EXPORT Matrix<NumberD> gemm(
const CMatrixRange<NumberD>& A, 
const CMatrixRange<NumberD>& B, NumberD alpha=1);
    60 MYRAMATH_EXPORT Matrix<NumberC> gemm(
const CMatrixRange<NumberC>& A, 
const CMatrixRange<NumberC>& B, NumberC alpha=1);
    61 MYRAMATH_EXPORT Matrix<NumberZ> gemm(
const CMatrixRange<NumberZ>& A, 
const CMatrixRange<NumberZ>& B, NumberZ alpha=1);
    65 MYRAMATH_EXPORT Matrix<NumberS> operator* (
const CMatrixRange<NumberS>& A, 
const CMatrixRange<NumberS>& B);
    67 MYRAMATH_EXPORT Matrix<NumberD> operator* (
const CMatrixRange<NumberD>& A, 
const CMatrixRange<NumberD>& B);
    68 MYRAMATH_EXPORT Matrix<NumberC> operator* (
const CMatrixRange<NumberC>& A, 
const CMatrixRange<NumberC>& B);
    69 MYRAMATH_EXPORT Matrix<NumberZ> operator* (
const CMatrixRange<NumberZ>& A, 
const CMatrixRange<NumberZ>& B);
 
Various utility functions/classes related to scalar Number types.