6 #ifndef MYRAMATH_DENSE_GEMV_H     7 #define MYRAMATH_DENSE_GEMV_H    14 #include <myramath/MYRAMATH_EXPORT.h>    19 template<
class Number> 
class CMatrixRange;
    20 template<
class Number> 
class CVectorRange;
    21 template<
class Number> 
class  VectorRange;
    22 template<
class Number> 
class  Vector;
    27 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberS>& c, 
const CMatrixRange<NumberS>& A, 
char op, 
const CVectorRange<NumberS>& b, NumberS alpha, NumberS beta);
    29 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberD>& c, 
const CMatrixRange<NumberD>& A, 
char op, 
const CVectorRange<NumberD>& b, NumberD alpha, NumberD beta);
    30 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberC>& c, 
const CMatrixRange<NumberC>& A, 
char op, 
const CVectorRange<NumberC>& b, NumberC alpha, NumberC beta);
    31 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberZ>& c, 
const CMatrixRange<NumberZ>& A, 
char op, 
const CVectorRange<NumberZ>& b, NumberZ alpha, NumberZ beta);
    35 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CMatrixRange<NumberS>& A, 
char op, 
const CVectorRange<NumberS>& b, NumberS alpha = 1);
    37 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CMatrixRange<NumberD>& A, 
char op, 
const CVectorRange<NumberD>& b, NumberD alpha = 1);
    38 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CMatrixRange<NumberC>& A, 
char op, 
const CVectorRange<NumberC>& b, NumberC alpha = 1);
    39 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CMatrixRange<NumberZ>& A, 
char op, 
const CVectorRange<NumberZ>& b, NumberZ alpha = 1);
    43 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CMatrixRange<NumberS>& A, 
const CVectorRange<NumberS>& b, NumberS alpha = 1);
    45 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CMatrixRange<NumberD>& A, 
const CVectorRange<NumberD>& b, NumberD alpha = 1);
    46 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CMatrixRange<NumberC>& A, 
const CVectorRange<NumberC>& b, NumberC alpha = 1);
    47 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CMatrixRange<NumberZ>& A, 
const CVectorRange<NumberZ>& b, NumberZ alpha = 1);
    51 MYRAMATH_EXPORT Vector<NumberS> operator * (
const CMatrixRange<NumberS>& A, 
const CVectorRange<NumberS>& b);
    53 MYRAMATH_EXPORT Vector<NumberD> operator * (
const CMatrixRange<NumberD>& A, 
const CVectorRange<NumberD>& b);
    54 MYRAMATH_EXPORT Vector<NumberC> operator * (
const CMatrixRange<NumberC>& A, 
const CVectorRange<NumberC>& b);
    55 MYRAMATH_EXPORT Vector<NumberZ> operator * (
const CMatrixRange<NumberZ>& A, 
const CVectorRange<NumberZ>& b);
    61 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberS>& c, 
const CVectorRange<NumberS>& a, 
const CMatrixRange<NumberS>& B, 
char op, NumberS alpha, NumberS beta);
    63 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberD>& c, 
const CVectorRange<NumberD>& a, 
const CMatrixRange<NumberD>& B, 
char op, NumberD alpha, NumberD beta);
    64 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberC>& c, 
const CVectorRange<NumberC>& a, 
const CMatrixRange<NumberC>& B, 
char op, NumberC alpha, NumberC beta);
    65 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberZ>& c, 
const CVectorRange<NumberZ>& a, 
const CMatrixRange<NumberZ>& B, 
char op, NumberZ alpha, NumberZ beta);
    69 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CVectorRange<NumberS>& a, 
const CMatrixRange<NumberS>& B, 
char op, NumberS alpha = 1);
    71 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CVectorRange<NumberD>& a, 
const CMatrixRange<NumberD>& B, 
char op, NumberD alpha = 1);
    72 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CVectorRange<NumberC>& a, 
const CMatrixRange<NumberC>& B, 
char op, NumberC alpha = 1);
    73 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CVectorRange<NumberZ>& a, 
const CMatrixRange<NumberZ>& B, 
char op, NumberZ alpha = 1);
    77 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CVectorRange<NumberS>& a, 
const CMatrixRange<NumberS>& B, NumberS alpha = 1);
    79 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CVectorRange<NumberD>& a, 
const CMatrixRange<NumberD>& B, NumberD alpha = 1);
    80 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CVectorRange<NumberC>& a, 
const CMatrixRange<NumberC>& B, NumberC alpha = 1);
    81 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CVectorRange<NumberZ>& a, 
const CMatrixRange<NumberZ>& B, NumberZ alpha = 1);
    85 MYRAMATH_EXPORT Vector<NumberS> operator * (
const CVectorRange<NumberS>& a, 
const CMatrixRange<NumberS>& B);
    87 MYRAMATH_EXPORT Vector<NumberD> operator * (
const CVectorRange<NumberD>& a, 
const CMatrixRange<NumberD>& B);
    88 MYRAMATH_EXPORT Vector<NumberC> operator * (
const CVectorRange<NumberC>& a, 
const CMatrixRange<NumberC>& B);
    89 MYRAMATH_EXPORT Vector<NumberZ> operator * (
const CVectorRange<NumberZ>& a, 
const CMatrixRange<NumberZ>& B);
 
Various utility functions/classes related to scalar Number types.