rotg Interface

public interface rotg

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) When a and b are real and r /= 0, the formulas simplify to r = sgn(a)sqrt(|a|2 + |b|*2) 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.


Subroutines

public pure subroutine crotg(a, b, c, s)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(inout) :: a
complex(kind=sp), intent(in) :: b
real(kind=sp), intent(out) :: c
complex(kind=sp), intent(out) :: s

public pure subroutine drotg(a, b, c, s)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: a
real(kind=dp), intent(inout) :: b
real(kind=dp), intent(out) :: c
real(kind=dp), intent(out) :: s

public pure subroutine srotg(a, b, c, s)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(inout) :: a
real(kind=sp), intent(inout) :: b
real(kind=sp), intent(out) :: c
real(kind=sp), intent(out) :: s

public pure subroutine zrotg(a, b, c, s)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: a
complex(kind=dp), intent(in) :: b
real(kind=dp), intent(out) :: c
complex(kind=dp), intent(out) :: s

Module Procedures

public pure subroutine stdlib_crotg(a, b, c, s)

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) When a and b are real and r /= 0, the formulas simplify to r = sgn(a)sqrt(|a|2 + |b|*2) 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.

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(inout) :: a
complex(kind=sp), intent(in) :: b
real(kind=sp), intent(out) :: c
complex(kind=sp), intent(out) :: s

public pure subroutine stdlib_drotg(a, b, c, s)

The computation uses the formulas sigma = sgn(a) if |a| > |b| = sgn(b) if |b| >= |a| r = sigmasqrt( a2 + b2 ) 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 - z2) and s = z. If |z| > 1, set c = 1/z and s = sqrt( 1 - c*2).

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: a
real(kind=dp), intent(inout) :: b
real(kind=dp), intent(out) :: c
real(kind=dp), intent(out) :: s

public pure subroutine stdlib_srotg(a, b, c, s)

The computation uses the formulas sigma = sgn(a) if |a| > |b| = sgn(b) if |b| >= |a| r = sigmasqrt( a2 + b2 ) 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 - z2) and s = z. If |z| > 1, set c = 1/z and s = sqrt( 1 - c*2).

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(inout) :: a
real(kind=sp), intent(inout) :: b
real(kind=sp), intent(out) :: c
real(kind=sp), intent(out) :: s

public pure subroutine stdlib_zrotg(a, b, c, s)

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) When a and b are real and r /= 0, the formulas simplify to r = sgn(a)sqrt(|a|2 + |b|*2) 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.

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(inout) :: a
complex(kind=dp), intent(in) :: b
real(kind=dp), intent(out) :: c
complex(kind=dp), intent(out) :: s