================ BLAS Level 2: mv [TOC] ================ *mv* (defined in namespace `flens::blas`) computes matrix vector products. Depending on the involved matrix type specialized variants are defined. General Matrix ============== For a general matrix $A$ and dense vectors $x$, $y$ the function computes matrix-vector products of the form $y \leftarrow \beta y + \alpha \, \text{op}(A) \, x$ where $\text{op}(X)$ denotes $X$, $X^T$ or $X^H$. GeMatrix -------- *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(Transpose trans, const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#$@N@flens@E@Transpo] [se#&1t0.0#&1t0.1#&1t0.2#&1t0.3#&t0.4#templatetypenameAL] [PHA,typenameMA,typenameVX,typenameBETA,typenameVYtypena] [meRestrictToIsGeMatrixMAvalueandIsDenseVectorVXvalueand] [IsDenseVectorVYvalue,voidType ] trans `(input)` + Specifiy the operation, i.e. NoTrans $y \leftarrow \beta y + \alpha A x$ Trans $y \leftarrow \beta y + \alpha A^T x$ ConjTrans $y \leftarrow \beta y + \alpha A^H x$ alpha `(input) real or complex scalar value` + Scaling factor $\alpha$. A `(input) real or complex valued GeMatrix` + Matrix $A$. x `(input) real or complex valued DenseVector` + Vector $x$. beta `(input)` + Scaling factor $\beta$. If $\beta$ is zero and $y$ has length zero then $y$ gets resized. y `(input/output) real or complex valued DenseVector` + Vector $y$. Triangular Matrix ================= For a triangular matrix $A$ and a dense vectors $x$ the function computes matrix-vector products of the form $x \leftarrow \text{op}(A) \, x$ where $\text{op}(X)$ denotes $X$, $X^T$ or $X^H$. *--[CODEREF]----------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value, | | void>::Type | | mv(Transpose trans, const MA &A, VX &&x); | | | *---------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>2#T#Tmv#$@N@flens@E@Transpos] [e#&1t0.0#&t0.1#templatetypenameMA,typenameVXtypena] [meRestrictToIsTrMatrixMAvalueandIsDenseVectorVXval] [ue,voidType ] trans `(input)` + Specifiy the operation, i.e. NoTrans $x \leftarrow A x$ Trans $x \leftarrow A^T x$ ConjTrans $x \leftarrow A^H x$ A `(input) real or complex valued TrMatrix` + Triangular Matrix $A$. x `(input/output) real or complex valued DenseVector` + Vector $x$. Symmetric Matrix ================ For a symmetric matrix $A$ and dense vectors $x, y$ the function computes matrix-vector products of the form $y \leftarrow \beta y + \alpha \, A \, x$. SyMatrix -------- *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [M#c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t] [0.2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typen] [ameVX,typenameBETA,typenameVYtypenameRestrictToIsSyMatr] [ixMAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue] [,voidType ] alpha `(input) real or complex scalar value` + Scaling factor $\alpha$. A `(input) real or complex valued SyMatrix` + Symmetric matrix $A$. x `(input) real or complex valued DenseVector` + Vector $x$. beta `(input)` + Scaling factor $\beta$. If $\beta$ is zero and $y$ has length zero then $y$ gets resized. y `(input/output) real or complex valued DenseVector` + Vector $y$. Hermitian Matrix ================ For a hermitian matrix $A$ and dense vectors $x, y$ the function computes matrix-vector products of the form $y \leftarrow \beta y + \alpha \, A \, x$. HeMatrix -------- *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [M#c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t] [0.2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typen] [ameVX,typenameBETA,typenameVYtypenameRestrictToIsHeMatr] [ixMAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue] [,voidType ] alpha `(input) real or complex scalar value` + Scaling factor $\alpha$. A `(input) real or complex valued HeMatrix` + Hermitian matrix $A$. x `(input) real or complex valued DenseVector` + Vector $x$. beta `(input)` + Scaling factor $\beta$. If $\beta$ is zero and $y$ has length zero then $y$ gets resized. y `(input/output) real or complex valued DenseVector` + Vector $y$. ################################################################################ # # The following CODEREFs are automatically created stubs. # ################################################################################ *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(Transpose trans, const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#$@N@flens@E@Transpo] [se#&1t0.0#&1t0.1#&1t0.2#&1t0.3#&t0.4#templatetypenameAL] [PHA,typenameMA,typenameVX,typenameBETA,typenameVYtypena] [meRestrictToIsGbMatrixMAvalueandIsDenseVectorVXvalueand] [IsDenseVectorVYvalue,voidType ] *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t0.] [2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typenam] [eVX,typenameBETA,typenameVYtypenameRestrictToIsHbMatrix] [MAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue,v] [oidType ] *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t0.] [2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typenam] [eVX,typenameBETA,typenameVYtypenameRestrictToIsHpMatrix] [MAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue,v] [oidType ] Defined in namespace `flens::blas`. Function `mv` with 5 template parameters. *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t0.] [2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typenam] [eVX,typenameBETA,typenameVYtypenameRestrictToIsSbMatrix] [MAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue,v] [oidType ] *--[CODEREF]------------------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value | | && IsDenseVector::value, | | void>::Type | | mv(const ALPHA &alpha, const MA &A, const VX &x, | | const BETA &beta, VY &&y); | | | *-----------------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>5#T#T#T#T#Tmv#&1t0.0#&1t0.1#&1t0.] [2#&1t0.3#&t0.4#templatetypenameALPHA,typenameMA,typenam] [eVX,typenameBETA,typenameVYtypenameRestrictToIsSpMatrix] [MAvalueandIsDenseVectorVXvalueandIsDenseVectorVYvalue,v] [oidType ] *--[CODEREF]----------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value, | | void>::Type | | mv(Transpose trans, const MA &A, VX &&x); | | | *---------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>2#T#Tmv#$@N@flens@E@Transpos] [e#&1t0.0#&t0.1#templatetypenameMA,typenameVXtypena] [meRestrictToIsTbMatrixMAvalueandIsDenseVectorVXval] [ue,voidType ] *--[CODEREF]----------------------------------------------------------------* | | | template | | typename RestrictTo::value | | && IsDenseVector::value, | | void>::Type | | mv(Transpose trans, const MA &A, VX &&x); | | | *---------------------------------------------------------------------------* [c:@N@flens@N@blas@FT@>2#T#Tmv#$@N@flens@E@Transpos] [e#&1t0.0#&t0.1#templatetypenameMA,typenameVXtypena] [meRestrictToIsTpMatrixMAvalueandIsDenseVectorVXval] [ue,voidType ]