Doxygen Source Code Documentation
        
Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search   
eis_pythag.c
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 #include "f2c.h"
00007 
00008 doublereal pythag_(doublereal *a, doublereal *b)
00009 {
00010     
00011     doublereal ret_val, d__1, d__2, d__3;
00012 
00013     
00014     static doublereal p, r__, s, t, u;
00015 
00016 
00017 
00018 
00019 
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 
00026     d__2 = abs(*a), d__3 = abs(*b);
00027 
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 
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 } 
00046