[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section hpmv]

[heading Prototype]
There are two prototypes of `hpmv` available, please see below.
``
hpmv( const Scalar >, const MatrixAP& ap, const VectorX& x,
        const Scalar >, VectorY& y );
``

``
hpmv( const Scalar alpha, const MatrixAP& ap, const VectorX& x,
        const Scalar beta, VectorY& y );
``


[heading Description]

`hpmv` (short for hermitian, packed,  matrix-vector operation) provides a C++
interface to BLAS routines SSPMV, DSPMV, CHPMV, and ZHPMV. 
`hpmv` performs the matrix-vector operation

y := alpha*A*x + beta*y,

where alpha and beta are scalars, x and y are n element vectors and
A is an n by n hermitian matrix, supplied in packed form.

The selection of the BLAS routine is done during compile-time, 
and is determined by the type of values contained in type `MatrixAP`.
The type of values is obtained through the `value_type` meta-function
 `typename value_type<MatrixAP>::type`.
Table X below illustrates to which specific routine this dispatching will take place. 

[table Dispatching of hpmv.
[  [ Value type of MatrixAP ] [BLAS routine] [CBLAS routine] [CUBLAS routine] ]
[  [`float`][SSPMV][cblas_sspmv][cublasSspmv] ]
[  [`double`][DSPMV][cblas_dspmv][cublasDspmv] ]
[  [`complex<float>`][CHPMV][cblas_chpmv][cublasChpmv] ]
[  [`complex<double>`][ZHPMV][cblas_zhpmv][cublasZhpmv] ]

]

The original routines SSPMV, DSPMV, CHPMV, and ZHPMV have nine arguments,
whereas `hpmv` requires five arguments.

[table Deduction of arguments of hpmv.
]

[heading Definition]
Defined in header [headerref boost/numeric/bindings/blas/level2/hpmv.hpp].

[heading Parameters or Requirements on Types]

[variablelist Parameters
    [[MatrixA] [The definition of term 1]]
    [[MatrixB] [The definition of term 2]]
    [[MatrixC] [
    The definition of term 3.

    Definitions may contain paragraphs.
    ]]
]

[heading Complexity]

[heading Example]
``
#include <boost/numeric/bindings/blas/level2/hpmv.hpp>
using namespace boost::numeric::bindings;

blas::hpmv( x, y, z );

``

this will output

``
[5] 0 1 2 3 4 5
``

[heading Notes]

[heading See Also]

* Originating Fortran source files [@http://www.netlib.org/blas/sspmv.f sspmv.f], [@http://www.netlib.org/blas/dspmv.f dspmv.f], [@http://www.netlib.org/blas/chpmv.f chpmv.f], and [@http://www.netlib.org/blas/zhpmv.f zhpmv.f] at Netlib.

[endsect]
