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.