lartgs#

Functions

void slartgs(
    const f32  x,
    const f32  y,
    const f32  sigma,
          f32* cs,
          f32* sn
);
void slartgs(const f32 x, const f32 y, const f32 sigma, f32 *cs, f32 *sn)#

SLARTGS generates a plane rotation designed to introduce a bulge in Golub-Reinsch-style implicit QR iteration for the bidiagonal SVD problem.

X and Y are the top-row entries, and SIGMA is the shift. The computed CS and SN define a plane rotation satisfying

[ CS SN ] . [ X^2 - SIGMA ] = [ R ], [ -SN CS ] [ X * Y ] [ 0 ]

with R nonnegative. If X^2 - SIGMA and X * Y are 0, then the rotation is by PI/2.

Parameters

in
x

The (1,1) entry of an upper bidiagonal matrix.

in
y

The (1,2) entry of an upper bidiagonal matrix.

in
sigma

The shift.

out
cs

The cosine of the rotation.

out
sn

The sine of the rotation.

Functions

void dlartgs(
    const f64  x,
    const f64  y,
    const f64  sigma,
          f64* cs,
          f64* sn
);
void dlartgs(const f64 x, const f64 y, const f64 sigma, f64 *cs, f64 *sn)#

DLARTGS generates a plane rotation designed to introduce a bulge in Golub-Reinsch-style implicit QR iteration for the bidiagonal SVD problem.

X and Y are the top-row entries, and SIGMA is the shift. The computed CS and SN define a plane rotation satisfying

[ CS SN ] . [ X^2 - SIGMA ] = [ R ], [ -SN CS ] [ X * Y ] [ 0 ]

with R nonnegative. If X^2 - SIGMA and X * Y are 0, then the rotation is by PI/2.

Parameters

in
x

The (1,1) entry of an upper bidiagonal matrix.

in
y

The (1,2) entry of an upper bidiagonal matrix.

in
sigma

The shift.

out
cs

The cosine of the rotation.

out
sn

The sine of the rotation.