-
template<typename T>
void lartg(T *f, T *g, T *cs, T *sn, T *r__)# LARTG generates a plane rotation with real cosine and real sine.
Purpose:
LARTG generate a plane rotation so that [ CS SN ] . [ F ] = [ R ] where CS**2 + SN**2 = 1. [ -SN CS ] [ G ] [ 0 ] This is a slower, more accurate version of the BLAS1 routine SROTG, with the following other differences: F and G are unchanged on return. If G=0, then CS=1 and SN=0. If F=0 and (G .ne. 0), then CS=0 and SN=1 without doing any floating point operations (saves work in SBDSQR when there are zeros on the diagonal). If F exceeds G in magnitude, CS will be positive.
- Parameters:
F – [in]
F is REAL
The first component of vector to be rotated.
G – [in]
G is REAL
The second component of vector to be rotated.
CS – [out]
CS is REAL
The cosine of the rotation.
SN – [out]
SN is REAL
The sine of the rotation.
R – [out]
R is REAL
The nonzero component of the rotated vector.
This version has a few statements commented out for thread safety (machine parameters are computed on each entry). 10 feb 03, SJH.