C++
C#
VB
JScript
All

# gemv

Copyright (C) 2005 IENT-RWTH Aachen

template<int TransA,class G1,class G2,class G3> void gemv(const typename Matrix<G1>::value_type &a, const Matrix<G1> &A, const Vector<G2> &X, const typename Vector<G3>::value_type &b, Vector<G3> &Y)

Y=a*mul(A,X)+b*Y

Remarks

TransA is a template argument to transpose A. (0=No Transpose, 1=Transpose, 2=Conjugate Transpose)

Example

    gemv   (  A,X,  Y);  // Y =  mul(     A ,X), equivalent to gemv<0>(1,A,X,0,Y)
    gemv   (2,A,X,  Y);  // Y =2*mul(     A ,X), equivalent to gemv<0>(2,A,X,0,Y)
    gemv   (2,A,X,1,Y);  // Y+=2*mul(     A ,X), equivalent to gemv<0>(2,A,X,1,Y)
    gemv<1>(  A,X,  Y);  // Y =  mul( trn(A),X), equivalent to gemv<1>(1,A,X,0,Y)
    gemv<1>(2,A,X,  Y);  // Y =2*mul( trn(A),X), equivalent to gemv<1>(2,A,X,0,Y)
    gemv<1>(2,A,X,1,Y);  // Y+=2*mul( trn(A),X)
    gemv<2>(  A,X,  Y);  // Y =  mul(htrn(A),X), equivalent to gemv<2>(1,A,X,0,Y)
    gemv<2>(2,A,X,  Y);  // Y =2*mul(htrn(A),X), equivalent to gemv<2>(2,A,X,0,Y)
    gemv<2>(2,A,X,1,Y);  // Y+=2*mul(htrn(A),X)