LinearAlgebra`BLAS`
LinearAlgebra`BLAS`

ROTG

ROTG[a,b,c,s]

computes a Givens rotation {c,s} for given scalars a and b.

Details

  • To use ROTG, you first need to load the BLAS Package using Needs["LinearAlgebra`BLAS`"].
  • The following arguments must be given:
  • ainput/output symbolscalar; the symbol value is modified in place
    binput/output symbolscalar; the symbol value is modified in place
    coutput symbolscalar; the symbol value is modified in place
    soutput symbolscalar; the symbol value is modified in place
  • ROTG[a,b,c,s] computes {c,s} such that {{c,s},{-Conjugate[s],c}.{a,b}=={r,0}, where the signed radius r is given by rSign[b]Norm[{a,b}] if a==0 or a,b with Abs[a]Abs[b], and by rSign[a]Norm[{a,b}] otherwise. In the degenerate case a==b==0, by convention c==1 and s==0.
  • The scalars c and s can be viewed as the cosine and sine, respectively, of the angle of rotation and satisfy the conditions c and c2+Abs[s]21.
  • The scalar a is set to r. The scalar b is not modified if either a or b is complex. Otherwise, b is set to the value z given by:
  • sif Abs[a]>Abs[b]
    1/cif 0<Abs[a]Abs[b]
    1if 0==Abs[a]<Abs[b]
    0if 0==Abs[a]==Abs[b]
  • When given, the value z can be used to reconstruct c and s as follows:
  • c1/z sif Abs[z]>1
    c0s1if z1
    cszif 0<Abs[z]<1
    c1s0if z==0

Examples

open allclose all

Basic Examples  (1)

Load the BLAS package:

Compute a Givens rotation for given scalars:

Scope  (3)

Real values:

Complex values:

Note that c is real-valued even when the inputs are complex:

Arbitrary-precision values:

Properties & Relations  (1)

ROTG[a,b,c,s] satisfies the relation {{c,s},{-Conjugate[s],c}}.{a,b}={r,0} where r is the number saved in a:

The scalars c and s form a unit vector with c real:

Possible Issues  (2)

All arguments must be symbols:

The first and the second arguments are modified and must be initialized to scalars:

Wolfram Research (2017), ROTG, Wolfram Language function, https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html.

Text

Wolfram Research (2017), ROTG, Wolfram Language function, https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html.

BibTeX

@misc{reference.wolfram_2021_rotg, author="Wolfram Research", title="{ROTG}", year="2017", howpublished="\url{https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html}", note=[Accessed: 25-July-2021 ]}

BibLaTeX

@online{reference.wolfram_2021_rotg, organization={Wolfram Research}, title={ROTG}, year={2017}, url={https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html}, note=[Accessed: 25-July-2021 ]}

CMS

Wolfram Language. 2017. "ROTG." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html.

APA

Wolfram Language. (2017). ROTG. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/LowLevelLinearAlgebra/ref/ROTG.html