Doxygen Source Code Documentation
eis_pythag.c File Reference
#include "f2c.h"Go to the source code of this file.
Functions | |
| doublereal | pythag_ (doublereal *a, doublereal *b) |
Function Documentation
|
||||||||||||
|
Definition at line 8 of file eis_pythag.c. References a, abs, max, min, and p. Referenced by bandv_(), bqr_(), cinvit_(), comqr2_(), comqr_(), corth_(), csroot_(), htrid3_(), htridi_(), imtql1_(), imtql2_(), imtqlv_(), invit_(), minfit_(), svd_(), tinvit_(), tql1_(), tql2_(), tqlrat_(), and tsturm_().
00009 {
00010 /* System generated locals */
00011 doublereal ret_val, d__1, d__2, d__3;
00012
00013 /* Local variables */
00014 static doublereal p, r__, s, t, u;
00015
00016
00017 /* FINDS DSQRT(A**2+B**2) WITHOUT OVERFLOW OR DESTRUCTIVE UNDERFLOW */
00018
00019 /* Computing MAX */
00020 d__1 = abs(*a), d__2 = abs(*b);
00021 p = max(d__1,d__2);
00022 if (p == 0.) {
00023 goto L20;
00024 }
00025 /* Computing MIN */
00026 d__2 = abs(*a), d__3 = abs(*b);
00027 /* Computing 2nd power */
00028 d__1 = min(d__2,d__3) / p;
00029 r__ = d__1 * d__1;
00030 L10:
00031 t = r__ + 4.;
00032 if (t == 4.) {
00033 goto L20;
00034 }
00035 s = r__ / t;
00036 u = s * 2. + 1.;
00037 p = u * p;
00038 /* Computing 2nd power */
00039 d__1 = s / u;
00040 r__ = d__1 * d__1 * r__;
00041 goto L10;
00042 L20:
00043 ret_val = p;
00044 return ret_val;
00045 } /* pythag_ */
|