6 #ifndef MYRAMATH_SPARSE_GEMV_H     7 #define MYRAMATH_SPARSE_GEMV_H    14 #include <myramath/MYRAMATH_EXPORT.h>    20 template<
class Number> 
class CSparseMatrixRange;
    21 template<
class Number> 
class CVectorRange;
    22 template<
class Number> 
class VectorRange;
    23 template<
class Number> 
class Vector;
    28 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberS>& c, 
const CSparseMatrixRange<NumberS>& A, 
char op, 
const CVectorRange<NumberS>& b, NumberS alpha, NumberS beta);
    29 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberD>& c, 
const CSparseMatrixRange<NumberD>& A, 
char op, 
const CVectorRange<NumberD>& b, NumberD alpha, NumberD beta);
    30 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberC>& c, 
const CSparseMatrixRange<NumberC>& A, 
char op, 
const CVectorRange<NumberC>& b, NumberC alpha, NumberC beta);
    31 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberZ>& c, 
const CSparseMatrixRange<NumberZ>& A, 
char op, 
const CVectorRange<NumberZ>& b, NumberZ alpha, NumberZ beta);
    34 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CSparseMatrixRange<NumberS>& A, 
char op, 
const CVectorRange<NumberS>& b, NumberS alpha = 1);
    35 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CSparseMatrixRange<NumberD>& A, 
char op, 
const CVectorRange<NumberD>& b, NumberD alpha = 1);
    36 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CSparseMatrixRange<NumberC>& A, 
char op, 
const CVectorRange<NumberC>& b, NumberC alpha = 1);
    37 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CSparseMatrixRange<NumberZ>& A, 
char op, 
const CVectorRange<NumberZ>& b, NumberZ alpha = 1);
    40 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CSparseMatrixRange<NumberS>& A, 
const CVectorRange<NumberS>& b, NumberS alpha = 1);
    41 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CSparseMatrixRange<NumberD>& A, 
const CVectorRange<NumberD>& b, NumberD alpha = 1);
    42 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CSparseMatrixRange<NumberC>& A, 
const CVectorRange<NumberC>& b, NumberC alpha = 1);
    43 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CSparseMatrixRange<NumberZ>& A, 
const CVectorRange<NumberZ>& b, NumberZ alpha = 1);
    46 MYRAMATH_EXPORT Vector<NumberS> operator * (
const CSparseMatrixRange<NumberS>& A, 
const CVectorRange<NumberS>& b);
    47 MYRAMATH_EXPORT Vector<NumberD> operator * (
const CSparseMatrixRange<NumberD>& A, 
const CVectorRange<NumberD>& b);
    48 MYRAMATH_EXPORT Vector<NumberC> operator * (
const CSparseMatrixRange<NumberC>& A, 
const CVectorRange<NumberC>& b);
    49 MYRAMATH_EXPORT Vector<NumberZ> operator * (
const CSparseMatrixRange<NumberZ>& A, 
const CVectorRange<NumberZ>& b);
    54 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberS>& c, 
const CVectorRange<NumberS>& a, 
const CSparseMatrixRange<NumberS>& B, 
char op, NumberS alpha, NumberS beta);
    55 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberD>& c, 
const CVectorRange<NumberD>& a, 
const CSparseMatrixRange<NumberD>& B, 
char op, NumberD alpha, NumberD beta);
    56 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberC>& c, 
const CVectorRange<NumberC>& a, 
const CSparseMatrixRange<NumberC>& B, 
char op, NumberC alpha, NumberC beta);
    57 MYRAMATH_EXPORT 
void gemv_inplace(
const VectorRange<NumberZ>& c, 
const CVectorRange<NumberZ>& a, 
const CSparseMatrixRange<NumberZ>& B, 
char op, NumberZ alpha, NumberZ beta);
    60 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CVectorRange<NumberS>& a, 
const CSparseMatrixRange<NumberS>& B, 
char op, NumberS alpha = 1);
    61 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CVectorRange<NumberD>& a, 
const CSparseMatrixRange<NumberD>& B, 
char op, NumberD alpha = 1);
    62 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CVectorRange<NumberC>& a, 
const CSparseMatrixRange<NumberC>& B, 
char op, NumberC alpha = 1);
    63 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CVectorRange<NumberZ>& a, 
const CSparseMatrixRange<NumberZ>& B, 
char op, NumberZ alpha = 1);
    66 MYRAMATH_EXPORT Vector<NumberS> gemv(
const CVectorRange<NumberS>& a, 
const CSparseMatrixRange<NumberS>& B, NumberS alpha = 1);
    67 MYRAMATH_EXPORT Vector<NumberD> gemv(
const CVectorRange<NumberD>& a, 
const CSparseMatrixRange<NumberD>& B, NumberD alpha = 1);
    68 MYRAMATH_EXPORT Vector<NumberC> gemv(
const CVectorRange<NumberC>& a, 
const CSparseMatrixRange<NumberC>& B, NumberC alpha = 1);
    69 MYRAMATH_EXPORT Vector<NumberZ> gemv(
const CVectorRange<NumberZ>& a, 
const CSparseMatrixRange<NumberZ>& B, NumberZ alpha = 1);
    72 MYRAMATH_EXPORT Vector<NumberS> operator * (
const CVectorRange<NumberS>& a, 
const CSparseMatrixRange<NumberS>& B);
    73 MYRAMATH_EXPORT Vector<NumberD> operator * (
const CVectorRange<NumberD>& a, 
const CSparseMatrixRange<NumberD>& B);
    74 MYRAMATH_EXPORT Vector<NumberC> operator * (
const CVectorRange<NumberC>& a, 
const CSparseMatrixRange<NumberC>& B);
    75 MYRAMATH_EXPORT Vector<NumberZ> operator * (
const CVectorRange<NumberZ>& a, 
const CSparseMatrixRange<NumberZ>& B);
 
Various utility functions/classes related to scalar Number types.