There are two prototypes of syrk
            available, please see below. 
syrk( const Scalar >, const MatrixA& a, const Scalar >, MatrixC& c );
syrk( const Scalar alpha, const MatrixA& a, const Scalar beta, MatrixC& c );
            syrk (short for symmetric
            rank-k update) provides a C++ interface to BLAS routines SSYRK, DSYRK,
            CSYRK, and ZSYRK. syrk
            performs one of the symmetric rank k operations
          
C := alpha*A*A' + beta*C,
or
C := alpha*A'*A + beta*C,
where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix 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.94. Dispatching of syrk.
| Value type of MatrixA | BLAS routine | CBLAS routine | CUBLAS routine | 
|---|---|---|---|
| 
                       | SSYRK | cblas_ssyrk | cublasSsyrk | 
| 
                       | DSYRK | cblas_dsyrk | cublasDsyrk | 
| 
                       | CSYRK | cblas_csyrk | cublasCsyrk | 
| 
                       | ZSYRK | cblas_zsyrk | cublasZsyrk | 
            The original routines SSYRK, DSYRK, CSYRK, and ZSYRK have ten arguments,
            whereas syrk requires
            four arguments.
          
            Defined in header boost/numeric/bindings/blas/level3/syrk.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/syrk.hpp> using namespace boost::numeric::bindings; blas::syrk( x, y, z );
this will output
[5] 0 1 2 3 4 5