Stable Calculation
When a Givens rotation matrix, G(i,j,θ), multiplies another matrix, A, from the left, GA, only rows i and j of A are affected. Thus we restrict attention to the following problem. Given a and b, find c = cos θ and s = sin θ such that
Explicit calculation of θ is rarely necessary or desirable. Instead we directly seek c, s, and r. An obvious solution would be
However, the computation for r may overflow or underflow. An alternative formulation avoiding this problem (Golub & Van Loan 1996, §5.1.8) is implemented as the hypot function in many programming languages .
Furthermore, as Anderson (2000) discovered in improving LAPACK, a previously overlooked numerical consideration is continuity. To achieve this, we require r to be positive.
if (b = 0) then {c ← copysign(1,a); s ← 0; r ← abs(a)} else if (a = 0) then {c ← 0; s ← -copysign(1,b); r ← abs(b)} else if (abs(b) > abs(a)) then t ← a/b u ← copysign(sqrt(1+t*t),b) s ← -1/u c ← -s*t r ← b*u else t ← b/a u ← copysign(sqrt(1+t*t),a) c ← 1/u s ← -c*t r ← a*uThis is written in terms of the IEEE 754 copysign(x,y) function, which provides a safe and cheap way to copy the sign of y to x. If that is not available, x*sgn(y), using the sign function, is an alternative.
Read more about this topic: Givens Rotation
Famous quotes containing the words stable and/or calculation:
“In short, no association or alliance can be happy or stable without me. People cant long tolerate a ruler, nor can a master his servant, a maid her mistress, a teacher his pupil, a friend his friend nor a wife her husband, a landlord his tenant, a soldier his comrade nor a party-goer his companion, unless they sometimes have illusions about each other, make use of flattery, and have the sense to turn a blind eye and sweeten life for themselves with the honey of folly.”
—Desiderius Erasmus (c. 14661536)
“To my thinking boomed the Professor, begging the question as usual, the greatest triumph of the human mind was the calculation of Neptune from the observed vagaries of the orbit of Uranus.
And yours, said the P.B.”
—Samuel Beckett (19061989)