You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

srotgf.f 662 B

123456789101112131415161718192021222324252627
  1. subroutine srotgf(sa,sb,c,s)
  2. c
  3. c construct givens plane rotation.
  4. c jack dongarra, linpack, 3/11/78.
  5. c
  6. real sa,sb,c,s,roe,scale,r,z
  7. c
  8. roe = sb
  9. if( abs(sa) .gt. abs(sb) ) roe = sa
  10. scale = abs(sa) + abs(sb)
  11. if( scale .ne. 0.0 ) go to 10
  12. c = 1.0
  13. s = 0.0
  14. r = 0.0
  15. z = 0.0
  16. go to 20
  17. 10 r = scale*sqrt((sa/scale)**2 + (sb/scale)**2)
  18. r = sign(1.0,roe)*r
  19. c = sa/r
  20. s = sb/r
  21. z = 1.0
  22. if( abs(sa) .gt. abs(sb) ) z = s
  23. if( abs(sb) .ge. abs(sa) .and. c .ne. 0.0 ) z = 1.0/c
  24. 20 sa = r
  25. sb = z
  26. return
  27. end