GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
rotg(3) LAPACK rotg(3)

rotg - rotg: generate plane rotation (cf. lartg)


subroutine crotg (a, b, c, s)
CROTG generates a Givens rotation with real cosine and complex sine. subroutine drotg (a, b, c, s)
DROTG subroutine srotg (a, b, c, s)
SROTG subroutine zrotg (a, b, c, s)
ZROTG generates a Givens rotation with real cosine and complex sine.

CROTG generates a Givens rotation with real cosine and complex sine.

Purpose:


CROTG constructs a plane rotation
[ c s ] [ a ] = [ r ]
[ -conjg(s) c ] [ b ] [ 0 ]
where c is real, s is complex, and c**2 + conjg(s)*s = 1.
The computation uses the formulas
|x| = sqrt( Re(x)**2 + Im(x)**2 )
sgn(x) = x / |x| if x /= 0
= 1 if x = 0
c = |a| / sqrt(|a|**2 + |b|**2)
s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2)
r = sgn(a)*sqrt(|a|**2 + |b|**2)
When a and b are real and r /= 0, the formulas simplify to
c = a / r
s = b / r
the same as in SROTG when |a| > |b|. When |b| >= |a|, the
sign of c and s will be different from those computed by SROTG
if the signs of a and b are not the same.

See also

lartg: generate plane rotation, more accurate than BLAS rot,

lartgp: generate plane rotation, more accurate than BLAS rot

Parameters

A


A is COMPLEX
On entry, the scalar a.
On exit, the scalar r.

B


B is COMPLEX
The scalar b.

C


C is REAL
The scalar c.

S


S is COMPLEX
The scalar s.

Author

Weslley Pereira, University of Colorado Denver, USA

Date

December 2021

Further Details:


Based on the algorithm from
Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

Definition at line 88 of file crotg.f90.

DROTG

Purpose:


DROTG constructs a plane rotation
[ c s ] [ a ] = [ r ]
[ -s c ] [ b ] [ 0 ]
satisfying c**2 + s**2 = 1.
The computation uses the formulas
sigma = sgn(a) if |a| > |b|
= sgn(b) if |b| >= |a|
r = sigma*sqrt( a**2 + b**2 )
c = 1; s = 0 if r = 0
c = a/r; s = b/r if r != 0
The subroutine also computes
z = s if |a| > |b|,
= 1/c if |b| >= |a| and c != 0
= 1 if c = 0
This allows c and s to be reconstructed from z as follows:
If z = 1, set c = 0, s = 1.
If |z| < 1, set c = sqrt(1 - z**2) and s = z.
If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).

See also

lartg: generate plane rotation, more accurate than BLAS rot,

lartgp: generate plane rotation, more accurate than BLAS rot

Parameters

A


A is DOUBLE PRECISION
On entry, the scalar a.
On exit, the scalar r.

B


B is DOUBLE PRECISION
On entry, the scalar b.
On exit, the scalar z.

C


C is DOUBLE PRECISION
The scalar c.

S


S is DOUBLE PRECISION
The scalar s.

Author

Edward Anderson, Lockheed Martin

Contributors:

Weslley Pereira, University of Colorado Denver, USA

Further Details:


Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

Definition at line 91 of file drotg.f90.

SROTG

Purpose:


SROTG constructs a plane rotation
[ c s ] [ a ] = [ r ]
[ -s c ] [ b ] [ 0 ]
satisfying c**2 + s**2 = 1.
The computation uses the formulas
sigma = sgn(a) if |a| > |b|
= sgn(b) if |b| >= |a|
r = sigma*sqrt( a**2 + b**2 )
c = 1; s = 0 if r = 0
c = a/r; s = b/r if r != 0
The subroutine also computes
z = s if |a| > |b|,
= 1/c if |b| >= |a| and c != 0
= 1 if c = 0
This allows c and s to be reconstructed from z as follows:
If z = 1, set c = 0, s = 1.
If |z| < 1, set c = sqrt(1 - z**2) and s = z.
If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).

See also

lartg: generate plane rotation, more accurate than BLAS rot,

lartgp: generate plane rotation, more accurate than BLAS rot

Parameters

A


A is REAL
On entry, the scalar a.
On exit, the scalar r.

B


B is REAL
On entry, the scalar b.
On exit, the scalar z.

C


C is REAL
The scalar c.

S


S is REAL
The scalar s.

Author

Edward Anderson, Lockheed Martin

Contributors:

Weslley Pereira, University of Colorado Denver, USA

Further Details:


Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

Definition at line 91 of file srotg.f90.

ZROTG generates a Givens rotation with real cosine and complex sine.

Purpose:


ZROTG constructs a plane rotation
[ c s ] [ a ] = [ r ]
[ -conjg(s) c ] [ b ] [ 0 ]
where c is real, s is complex, and c**2 + conjg(s)*s = 1.
The computation uses the formulas
|x| = sqrt( Re(x)**2 + Im(x)**2 )
sgn(x) = x / |x| if x /= 0
= 1 if x = 0
c = |a| / sqrt(|a|**2 + |b|**2)
s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2)
r = sgn(a)*sqrt(|a|**2 + |b|**2)
When a and b are real and r /= 0, the formulas simplify to
c = a / r
s = b / r
the same as in DROTG when |a| > |b|. When |b| >= |a|, the
sign of c and s will be different from those computed by DROTG
if the signs of a and b are not the same.

See also

lartg: generate plane rotation, more accurate than BLAS rot,

lartgp: generate plane rotation, more accurate than BLAS rot

Parameters

A


A is DOUBLE COMPLEX
On entry, the scalar a.
On exit, the scalar r.

B


B is DOUBLE COMPLEX
The scalar b.

C


C is DOUBLE PRECISION
The scalar c.

S


S is DOUBLE COMPLEX
The scalar s.

Author

Weslley Pereira, University of Colorado Denver, USA

Date

December 2021

Further Details:


Based on the algorithm from
Anderson E. (2017)
Algorithm 978: Safe Scaling in the Level 1 BLAS
ACM Trans Math Softw 44:1--28
https://doi.org/10.1145/3061665

Definition at line 88 of file zrotg.f90.

Generated automatically by Doxygen for LAPACK from the source code.

Sun Jan 12 2025 15:13:38 Version 3.12.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.