There are two prototypes of scal
            available, please see below. 
scal( const Scalar >, VectorX& x );
scal( const ScalarA a, VectorX& x );
            scal (short for scale)
            provides a C++ interface to BLAS routines SSCAL, DSCAL, CSSCAL, ZDSCAL,
            CSCAL, and ZSCAL.
          
            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.28. Dispatching of scal.
| Value type of VectorX | BLAS routine | CBLAS routine | CUBLAS routine | 
|---|---|---|---|
| 
                       | SSCAL | cblas_sscal | cublasSscal | 
| 
                       | DSCAL | cblas_dscal | cublasDscal | 
| 
                       | CSSCAL | cblas_csscal | cublasCsscal | 
| 
                       | ZDSCAL | cblas_zdscal | Unavailable | 
| 
                       | CSCAL | cblas_cscal | cublasCscal | 
| 
                       | ZSCAL | cblas_zscal | cublasZscal | 
            The original routines SSCAL, DSCAL, CSSCAL, ZDSCAL, CSCAL, and ZSCAL
            have four arguments, whereas scal
            requires two arguments.
          
            Defined in header boost/numeric/bindings/blas/level1/scal.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/level1/scal.hpp> using namespace boost::numeric::bindings; blas::scal( x, y, z );
this will output
[5] 0 1 2 3 4 5