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 );
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*conjg( B' ) + conjg( alpha )*B*conjg( A' ) + beta*C,
or
C := alpha*conjg( A' )*B + conjg( alpha )*conjg( B' )*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 1.86. Dispatching of her2k.
Value type of MatrixA |
BLAS routine |
CBLAS routine |
CUBLAS routine |
---|---|---|---|
|
SSYR2K |
cblas_ssyr2k |
cublasSsyr2k |
|
DSYR2K |
cblas_dsyr2k |
cublasDsyr2k |
|
CHER2K |
cblas_cher2k |
cublasCher2k |
|
ZHER2K |
cblas_zher2k |
Unavailable |
The original routines SSYR2K, DSYR2K, CHER2K, and ZHER2K have twelve
arguments, whereas her2k
requires five arguments.
Defined in header boost/numeric/bindings/blas/level3/her2k.hpp
.
Parameters
The definition of term 1
The definition of term 2
The definition of term 3.
Definitions may contain paragraphs.
#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