There are two prototypes of rotmg
available, please see below.
rotmg( Scalar >, Scalar >, Scalar >, const Scalar >, VectorSPARAM& sparam );
rotmg( Scalar >, Scalar >, Scalar >, const Scalar >, VectorDPARAM& dparam );
rotmg
(short for TODO)
provides a C++ interface to BLAS routines SROTMG and DROTMG. CONSTRUCT
THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS THE SECOND COMPONENT
OF THE 2-VECTOR (DSQRT(DD1)DX1,DSQRT(DD2)
DY2)**T. WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS..
DFLAG=-1.D0 DFLAG=0.D0 DFLAG1.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). LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22 RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.)
THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE OF DD1 AND DD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM.
The selection of the BLAS routine is done during compile-time, and is
determined by the type of values contained in type VectorSPARAM
.
The type of values is obtained through the value_type
meta-function typename value_type<VectorSPARAM>::type
. Table X below illustrates to
which specific routine this dispatching will take place.
Table 1.24. Dispatching of rotmg.
Value type of VectorSPARAM |
BLAS routine |
CBLAS routine |
CUBLAS routine |
---|---|---|---|
|
SROTMG |
cblas_srotmg |
cublasSrotmg |
|
DROTMG |
cblas_drotmg |
cublasDrotmg |
The original routines SROTMG and DROTMG have five arguments, whereas
rotmg
requires five arguments.
Defined in header boost/numeric/bindings/blas/level1/rotmg.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/rotmg.hpp> using namespace boost::numeric::bindings; blas::rotmg( x, y, z );
this will output
[5] 0 1 2 3 4 5