[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section her2k]

[heading Prototype]
There are two prototypes of `her2k` available, please see below.
``
her2k( const Scalar >, const MatrixA& a, const MatrixB& b,
        const Scalar >, MatrixC& c );
``

``
her2k( const Scalar alpha, const MatrixA& a, const MatrixB& b,
        const Scalar >, MatrixC& c );
``


[heading Description]

`her2k` (short for hermitian rank-2k update) provides a C++
interface to BLAS routines SSYR2K, DSYR2K, CHER2K, and ZHER2K. 
`her2k` performs one of the hermitian rank 2k operations

C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,

or

C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,

where alpha and beta are scalars with beta real, C is an n by n
hermitian matrix and A and B are n by k matrices in the first case
and k by n matrices in the second case.

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

[table Dispatching of her2k.
[  [ Value type of MatrixA ] [BLAS routine] [CBLAS routine] [CUBLAS routine] ]
[  [`float`][SSYR2K][cblas_ssyr2k][cublasSsyr2k] ]
[  [`double`][DSYR2K][cblas_dsyr2k][cublasDsyr2k] ]
[  [`complex<float>`][CHER2K][cblas_cher2k][cublasCher2k] ]
[  [`complex<double>`][ZHER2K][cblas_zher2k][cublasZher2k] ]

]

The original routines SSYR2K, DSYR2K, CHER2K, and ZHER2K have twelve arguments,
whereas `her2k` requires five arguments.

[table Deduction of arguments of her2k.
]

[heading Definition]
Defined in header [headerref boost/numeric/bindings/blas/level3/her2k.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/level3/her2k.hpp>
using namespace boost::numeric::bindings;

blas::her2k( 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/ssyr2k.f ssyr2k.f], [@http://www.netlib.org/blas/dsyr2k.f dsyr2k.f], [@http://www.netlib.org/blas/cher2k.f cher2k.f], and [@http://www.netlib.org/blas/zher2k.f zher2k.f] at Netlib.

[endsect]
