##### rotm

###### Prototype

There is one prototype of `rotm` available, please see below.

    rotm( VectorX& x, VectorY& y, VectorPARAM& param );

###### Description

`rotm` (short for TODO) provides a C++ interface to BLAS routines SROTM and DROTM. APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX

(DX**T) , WHERE *T INDICATES TRANSPOSE. THE ELEMENTS OF DX ARE IN (DY*T)

DX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE LX = (-INCX)*N, AND SIMILARLY FOR SY USING LY AND INCY. WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..

DFLAG=-1.D0 DFLAG=0.D0 DFLAG`1.D0 DFLAG`-2.D0

(DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0) H=( ) ( ) ( ) ( ) (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0). SEE `rotm`G FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.

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.26. Dispatching of rotm.

Value type of VectorX | BLAS routine | CBLAS routine | CUBLAS routine
--- | --- | --- | ---
`float` | SROTM | cblas_srotm | cublasSrotm
`double` | DROTM | cblas_drotm | cublasDrotm

The original routines SROTM and DROTM have six arguments, whereas `rotm` requires three arguments.

Table 1.27. Deduction of arguments of rotm.

###### Definition

Defined in header `boost/numeric/bindings/blas/level1/rotm.hpp`.

###### Parameters or Requirements on Types

Parameters

MatrixA

  The definition of term 1

MatrixB

  The definition of term 2

MatrixC

  The definition of term 3.

  Definitions may contain paragraphs.

###### Complexity

###### Example

    #include <boost/numeric/bindings/blas/level1/rotm.hpp>
    using namespace boost::numeric::bindings;

    blas::rotm( x, y, z );

this will output

    [5] 0 1 2 3 4 5

###### Notes

###### See Also

- Originating Fortran source files srotm.f and drotm.f at Netlib.