6 #ifndef MYRAMATH_DENSE_DIMM_H     7 #define MYRAMATH_DENSE_DIMM_H    14 #include <myramath/MYRAMATH_EXPORT.h>    20 template<
class Number> 
class DiagonalMatrixRange;
    21 template<
class Number> 
class CDiagonalMatrixRange;
    22 template<
class Number> 
class MatrixRange;
    23 template<
class Number> 
class CMatrixRange;
    24 template<
class Number> 
class Matrix;
    27 MYRAMATH_EXPORT 
void dimm_inplace(
char side, 
char op, 
const CDiagonalMatrixRange<NumberS>& D, 
const MatrixRange<NumberS>& X);
    29 MYRAMATH_EXPORT 
void dimm_inplace(
char side, 
char op, 
const CDiagonalMatrixRange<NumberD>& D, 
const MatrixRange<NumberD>& X);
    30 MYRAMATH_EXPORT 
void dimm_inplace(
char side, 
char op, 
const CDiagonalMatrixRange<NumberC>& D, 
const MatrixRange<NumberC>& X);
    31 MYRAMATH_EXPORT 
void dimm_inplace(
char side, 
char op, 
const CDiagonalMatrixRange<NumberZ>& D, 
const MatrixRange<NumberZ>& X);
    35 MYRAMATH_EXPORT Matrix<NumberS> dimm(
char side, 
char op, 
const CDiagonalMatrixRange<NumberS>& D, 
const CMatrixRange<NumberS>& X);
    37 MYRAMATH_EXPORT Matrix<NumberD> dimm(
char side, 
char op, 
const CDiagonalMatrixRange<NumberD>& D, 
const CMatrixRange<NumberD>& X);
    38 MYRAMATH_EXPORT Matrix<NumberC> dimm(
char side, 
char op, 
const CDiagonalMatrixRange<NumberC>& D, 
const CMatrixRange<NumberC>& X);
    39 MYRAMATH_EXPORT Matrix<NumberZ> dimm(
char side, 
char op, 
const CDiagonalMatrixRange<NumberZ>& D, 
const CMatrixRange<NumberZ>& X);
    44 MYRAMATH_EXPORT Matrix<NumberS> operator * (
const CMatrixRange<NumberS>& X, 
const CDiagonalMatrixRange<NumberS>& D);
    45 MYRAMATH_EXPORT Matrix<NumberD> operator * (
const CMatrixRange<NumberD>& X, 
const CDiagonalMatrixRange<NumberD>& D);
    46 MYRAMATH_EXPORT Matrix<NumberC> operator * (
const CMatrixRange<NumberC>& X, 
const CDiagonalMatrixRange<NumberC>& D);
    47 MYRAMATH_EXPORT Matrix<NumberZ> operator * (
const CMatrixRange<NumberZ>& X, 
const CDiagonalMatrixRange<NumberZ>& D);
    51 MYRAMATH_EXPORT Matrix<NumberS> operator * (
const CDiagonalMatrixRange<NumberS>& D, 
const CMatrixRange<NumberS>& X);
    53 MYRAMATH_EXPORT Matrix<NumberD> operator * (
const CDiagonalMatrixRange<NumberD>& D, 
const CMatrixRange<NumberD>& X);
    54 MYRAMATH_EXPORT Matrix<NumberC> operator * (
const CDiagonalMatrixRange<NumberC>& D, 
const CMatrixRange<NumberC>& X);
    55 MYRAMATH_EXPORT Matrix<NumberZ> operator * (
const CDiagonalMatrixRange<NumberZ>& D, 
const CMatrixRange<NumberZ>& X);
    59 MYRAMATH_EXPORT Matrix<NumberC> operator * (
const CMatrixRange<NumberC>& X, 
const CDiagonalMatrixRange<NumberS>& D);
    61 MYRAMATH_EXPORT Matrix<NumberZ> operator * (
const CMatrixRange<NumberZ>& X, 
const CDiagonalMatrixRange<NumberD>& D);
    65 MYRAMATH_EXPORT Matrix<NumberC> operator * (
const CDiagonalMatrixRange<NumberS>& D, 
const CMatrixRange<NumberC>& X);
    67 MYRAMATH_EXPORT Matrix<NumberZ> operator * (
const CDiagonalMatrixRange<NumberD>& D, 
const CMatrixRange<NumberZ>& X);
 
Various utility functions/classes related to scalar Number types.