There is one prototype of spr
            available, please see below. 
spr( const Scalar >, const VectorX& x, MatrixAP& ap );
            spr (short for symmetric,
            packed, rank-1 update) provides a C++ interface to BLAS routines SSPR
            and DSPR. spr performs
            the symmetric rank 1 operation
          
A := alpha*x*x' + A,
where alpha is a real scalar, x is an n element vector and A is an n by n symmetric 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 VectorX.
            The type of values is obtained through the value_type
            meta-function typename value_type<VectorX>::type. Table X below illustrates to
            which specific routine this dispatching will take place.
          
Table 1.62. Dispatching of spr.
| Value type of VectorX | BLAS routine | CBLAS routine | CUBLAS routine | 
|---|---|---|---|
| 
                       | SSPR | cblas_sspr | cublasSspr | 
| 
                       | DSPR | cblas_dspr | Unavailable | 
            The original routines SSPR and DSPR have six arguments, whereas spr requires three arguments.
          
            Defined in header boost/numeric/bindings/blas/level2/spr.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/level2/spr.hpp> using namespace boost::numeric::bindings; blas::spr( x, y, z );
this will output
[5] 0 1 2 3 4 5