/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: May 6, 1993 5:09:58 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: DRealFnsImpl, module: DRealFnsImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#include <math.h>
static char versionStamp[] = "@(#)mob←version [1540242556,385679509] DRealFnsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
static double fc7 = 3.14159265358979323846264338327950288419716939937510;
static double fc8 = 180.0;
static double fc14 = 1.0;
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
static double fc19 = 0.0;
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
static void NoName←Q2136();
static void DRealFnsImpl←P0();
static void Exp←P60();
static void Ln←P120();
static void Log←P180();
static void Power←P240();
static void Root←P300();
static void SqRt←P360();
static void Sin←P420();
static void SinDeg←P480();
static void Cos←P540();
static void CosDeg←P600();
static void Tan←P660();
static void TanDeg←P720();
static void ArcTan←P780();
static void ArcTanDeg←P840();
static void SinH←P900();
static void CosH←P960();
static void TanH←P1020();
static void CotH←P1080();
static void InvSinH←P1140();
static void InvCosH←P1200();
static void InvTanH←P1260();
static void InvCotH←P1320();
static void LnGamma←P1380();
static void Gamma←P1440();
static void J0←P1500();
static void J1←P1560();
static void Jn←P1620();
static void Y0←P1680();
static void Y1←P1740();
static void Yn←P1800();
static void RationalFromDReal←P1860();
static word AlmostZero←P1920();
static word AlmostEqual←P1980();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\133\316\074\174\300\026\375\000\225\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\233\213\041\256\300\330\147\331\041\100\150\000\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\150\261\123\070\300\276\161\220\062\100\150\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\224\176\272\123\300\120\106\320\206\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5; word f6; 
   word f7; word f8; word f9; word f10; 
   word f11; word f12; word f13; word f14; 
   word f15; word f16; word f17; word f18; 
   word f19; word f20; word f21; word f22; 
   word f23; word f24; word f25; word f26; 
   word f27; word f28; word f29; word f30; 
   word f31; word f32; word f33; word f34; 
   word f35; word f36; word f37; word f38; 
   word f39; word f40; word f41; word f42; 
   word f43; word f44; word f45; word f46; 
   word f47; word f48; word f49; word f50; 
   word f51; word f52; word f53; word f54; 
   word f55; word f56; word f57; word f58; 
   word f59; word f60; word f61; word f62; 
   word f63; word f64; word f65; word f66; 
   word f67; word f68; word f69; word f70; 
   word f71[4]; 
   } globalframe = {
   {0}, (word) AlmostEqual←P1980, 0, (word) AlmostZero←P1920, 
   0, (word) RationalFromDReal←P1860, 0, (word) Yn←P1800, 
   0, (word) Y1←P1740, 0, (word) Y0←P1680, 
   0, (word) Jn←P1620, 0, (word) J1←P1560, 
   0, (word) J0←P1500, 0, (word) Gamma←P1440, 
   0, (word) LnGamma←P1380, 0, (word) InvCotH←P1320, 
   0, (word) InvTanH←P1260, 0, (word) InvCosH←P1200, 
   0, (word) InvSinH←P1140, 0, (word) CotH←P1080, 
   0, (word) TanH←P1020, 0, (word) CosH←P960, 
   0, (word) SinH←P900, 0, (word) ArcTanDeg←P840, 
   0, (word) ArcTan←P780, 0, (word) TanDeg←P720, 
   0, (word) Tan←P660, 0, (word) CosDeg←P600, 
   0, (word) Cos←P540, 0, (word) SinDeg←P480, 
   0, (word) Sin←P420, 0, (word) SqRt←P360, 
   0, (word) Root←P300, 0, (word) Power←P240, 
   0, (word) Log←P180, 0, (word) Ln←P120, 
   0, (word) Exp←P60, 0, (word) DRealFnsImpl←P0, 
   {0}
   };
#define DRealPtr(x) (*((double *) (x)))
extern void XR←DRealExpI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = exp(DRealPtr(x));
    }
extern void XR←DRealLogI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = log(DRealPtr(x));
    }
extern void XR←DRealSqrtI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = sqrt(DRealPtr(x));
    }
extern void XR←DRealSinI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = sin(DRealPtr(x));
    }
extern void XR←DRealCosI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = cos(DRealPtr(x));
    }
extern void XR←DRealTanI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = tan(DRealPtr(x));
    }
extern void XR←DRealArcTanI (ret, y, x) W2 *ret, *x; {
    DRealPtr(ret) = atan2(DRealPtr(y), DRealPtr(x));
    }
extern void XR←DRealSinHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = sinh(DRealPtr(x));
    }
extern void XR←DRealCosHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = cosh(DRealPtr(x));
    }
extern void XR←DRealTanHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = tanh(DRealPtr(x));
    }
extern void XR←DRealInvSinHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = asinh(DRealPtr(x));
    }
extern void XR←DRealInvCosHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = acosh(DRealPtr(x));
    }
extern void XR←DRealInvTanHI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = atanh(DRealPtr(x));
    }
extern void XR←DRealLnGammaI (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = lgamma(DRealPtr(x));
    }
extern void XR←DRealJ0I (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = j0(DRealPtr(x));
    }
extern void XR←DRealJ1I (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = j1(DRealPtr(x));
    }
extern void XR←DRealJnI (ret, n, x) W2 *ret; word n; W2 *x; {
    DRealPtr(ret) = jn(((int) n), DRealPtr(x));
    }
extern void XR←DRealY0I (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = y0(DRealPtr(x));
    }
extern void XR←DRealY1I (ret, x) W2 *ret, *x; {
    DRealPtr(ret) = y1(DRealPtr(x));
    }
extern void XR←DRealYnI (ret, n, x) W2 *ret; word n; W2 *x; {
    DRealPtr(ret) = yn(((int) n), DRealPtr(x));
    }

static void NoName←Q2136()
   {
   register ptr gf←c0193 =  (ptr) &globalframe;
   word var←c13612;
   (void) XR←DeclareGlobalFrame((word) "DRealFnsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c0193)+280)
      /* var←c12620 */ );
   var←c13612 = (word) XR←ImportInterface((word) "DRealSupport", (word) XR←GetTypeIndexS((word) (&string2)), 26);
   (* (( (ptr) gf←c0193)+73)/* var←c13452 */  ) = var←c13612;
   (void) XR←ImportProcS(var←c13612, 67633153);
   (void) XR←ImportProcS(var←c13612, 135006210);
   (void) XR←ImportProcS(var←c13612, 67634689);
   var←c13612 = (word) XR←ImportInterface((word) "FloatingPointCommon", (word) XR←GetTypeIndexS((word) (&string3)), 5);
   (* (( (ptr) gf←c0193)+72)/* var←c13324 */  ) = var←c13612;
   var←c13612 = (word) XR←ExportInterface((word) "DRealFns", (word) XR←GetTypeIndexS((word) (&string4)), 33);
   (* (( (ptr) gf←c0193)+74)/* var←c13644 */  ) = var←c13612;
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+272)/* var←c12588 */ , 134742017);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+264)/* var←c12556 */ , 134742273);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+256)/* var←c12524 */ , 135266818);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+248)/* var←c12492 */ , 135267074);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+240)/* var←c12460 */ , 135267330);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+232)/* var←c12428 */ , 134743297);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+224)/* var←c12396 */ , 134743553);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+216)/* var←c12364 */ , 134743809);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+208)/* var←c12332 */ , 134744065);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+200)/* var←c12300 */ , 134744321);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+192)/* var←c12268 */ , 134744577);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+184)/* var←c12236 */ , 134744833);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+176)/* var←c12204 */ , 135269378);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+168)/* var←c12172 */ , 135269634);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+160)/* var←c12140 */ , 134745601);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+152)/* var←c12108 */ , 134745857);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+144)/* var←c12076 */ , 134746113);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+136)/* var←c12044 */ , 134746369);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+128)/* var←c12012 */ , 134746625);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+120)/* var←c11980 */ , 134746881);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+112)/* var←c11948 */ , 134747137);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+104)/* var←c11916 */ , 134747393);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+96)/* var←c11884 */ , 134747649);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+88)/* var←c11852 */ , 134747905);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+80)/* var←c11820 */ , 134748161);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+72)/* var←c11788 */ , 134748417);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+64)/* var←c11756 */ , 135010818);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+56)/* var←c11724 */ , 134748929);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+48)/* var←c11692 */ , 134749185);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+40)/* var←c11660 */ , 135011586);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+32)/* var←c11628 */ , 135011842);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+24)/* var←c11596 */ , 67903234);
   (void) XR←ExportProcS(var←c13612, (word) (( (bPt) gf←c0193)+16)/* var←c11564 */ , 68427779);
   }

static void DRealFnsImpl←P0(formal←c040, formal←c039)
   word formal←c040;
   word formal←c039;
   {
   /* DRealFnsImpl: */ 
   }

static void Exp←P60(formal←c043, x←v3724)
   word formal←c043;
   W2 x←v3724;
   {
   W2 ret←v3768;
   /* Exp: */ 
SOURCE(208, 276)
SOURCE(465, 19)
   (void) XR←DRealExpI((word) &ret←v3768, (word) &x←v3724);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c043 ) = ret←v3768;
   return;
   }

static void Ln←P120(formal←c046, x←v3828)
   word formal←c046;
   W2 x←v3828;
   {
   W2 ret←v3872;
   /* Ln: */ 
SOURCE(489, 275)
SOURCE(745, 19)
   (void) XR←DRealLogI((word) &ret←v3872, (word) &x←v3828);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c046 ) = ret←v3872;
   return;
   }

static void Log←P180(formal←c053, base←v3932, arg←v3960)
   word formal←c053;
   W2 base←v3932;
   W2 arg←v3960;
   {
   W2 var←c4004;
   /* Log: */ 
SOURCE(769, 81)
SOURCE(825, 25)
   {
      W2 var←c12684;
      {
         W2 var←c051;
         W2 var←c052;
         (void) Ln←P120((word) &var←c051, arg←v3960);
         (void) Ln←P120((word) &var←c052, base←v3932);
         XR←DRealDivI(&var←c12684, &var←c051, &var←c052);
         };
      var←c4004 = var←c12684;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c053 ) = var←c4004;
   return;
   }

static void Power←P240(formal←c061, base←v4064, exponent←v4092)
   word formal←c061;
   W2 base←v4064;
   W2 exponent←v4092;
   {
   W2 var←c4136;
   /* Power: */ 
SOURCE(855, 94)
SOURCE(918, 31)
   {
      W2 var←c12780;
      {
         W2 var←c12748;
         {
            W2 var←c059;
            (void) Ln←P120((word) &var←c059, base←v4064);
            XR←DRealMulI(&var←c12748, &exponent←v4092, &var←c059);
            };
         {
            W2 var←c060;
            (void) Exp←P60((word) &var←c060, var←c12748);
            var←c12780 = var←c060;
            };
         };
      var←c4136 = var←c12780;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c061 ) = var←c4136;
   return;
   }

static void Root←P300(formal←c069, index←v4196, arg←v4224)
   word formal←c069;
   W2 index←v4196;
   W2 arg←v4224;
   {
   W2 var←c4268;
   /* Root: */ 
SOURCE(954, 85)
SOURCE(1012, 27)
   {
      W2 var←c12876;
      {
         W2 var←c12844;
         {
            W2 var←c067;
            (void) Ln←P120((word) &var←c067, arg←v4224);
            XR←DRealDivI(&var←c12844, &var←c067, &index←v4196);
            };
         {
            W2 var←c068;
            (void) Exp←P60((word) &var←c068, var←c12844);
            var←c12876 = var←c068;
            };
         };
      var←c4268 = var←c12876;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c069 ) = var←c4268;
   return;
   }

static void SqRt←P360(formal←c072, x←v4328)
   word formal←c072;
   W2 x←v4328;
   {
   W2 ret←v4372;
   /* SqRt: */ 
SOURCE(1044, 282)
SOURCE(1306, 20)
   (void) XR←DRealSqrtI((word) &ret←v4372, (word) &x←v4328);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c072 ) = ret←v4372;
   return;
   }

static void Sin←P420(formal←c075, radians←v4432)
   word formal←c075;
   W2 radians←v4432;
   {
   W2 ret←v4476;
   /* Sin: */ 
SOURCE(1331, 288)
SOURCE(1594, 25)
   (void) XR←DRealSinI((word) &ret←v4476, (word) &radians←v4432);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c075 ) = ret←v4476;
   return;
   }

static void SinDeg←P480(formal←c080, degrees←v4536)
   word formal←c080;
   W2 degrees←v4536;
   {
   W2 var←c4580;
   /* SinDeg: */ 
SOURCE(1625, 95)
SOURCE(1682, 38)
   {
      W2 var←c12940;
      {
         W2 x5;
         W2 x6;
         XR←DRealDivI(&x6, &fc7, &fc8);
         XR←DRealMulI(&x5, &x6, &degrees←v4536);
         (void) Sin←P420((word) &var←c12940, x5);
         };
      var←c4580 = var←c12940;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c080 ) = var←c4580;
   return;
   }

static void Cos←P540(formal←c083, radians←v4640)
   word formal←c083;
   W2 radians←v4640;
   {
   W2 ret←v4684;
   /* Cos: */ 
SOURCE(1726, 288)
SOURCE(1989, 25)
   (void) XR←DRealCosI((word) &ret←v4684, (word) &radians←v4640);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c083 ) = ret←v4684;
   return;
   }

static void CosDeg←P600(formal←c088, degrees←v4744)
   word formal←c088;
   W2 degrees←v4744;
   {
   W2 var←c4788;
   /* CosDeg: */ 
SOURCE(2020, 95)
SOURCE(2077, 38)
   {
      W2 var←c13004;
      {
         W2 x9;
         W2 x10;
         XR←DRealDivI(&x10, &fc7, &fc8);
         XR←DRealMulI(&x9, &x10, &degrees←v4744);
         (void) Cos←P540((word) &var←c13004, x9);
         };
      var←c4788 = var←c13004;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c088 ) = var←c4788;
   return;
   }

static void Tan←P660(formal←c091, radians←v4848)
   word formal←c091;
   W2 radians←v4848;
   {
   W2 ret←v4892;
   /* Tan: */ 
SOURCE(2121, 288)
SOURCE(2384, 25)
   (void) XR←DRealTanI((word) &ret←v4892, (word) &radians←v4848);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c091 ) = ret←v4892;
   return;
   }

static void TanDeg←P720(formal←c096, degrees←v4952)
   word formal←c096;
   W2 degrees←v4952;
   {
   W2 var←c4996;
   /* TanDeg: */ 
SOURCE(2415, 95)
SOURCE(2472, 38)
   {
      W2 var←c13068;
      {
         W2 x11;
         W2 x12;
         XR←DRealDivI(&x12, &fc7, &fc8);
         XR←DRealMulI(&x11, &x12, &degrees←v4952);
         (void) Tan←P660((word) &var←c13068, x11);
         };
      var←c4996 = var←c13068;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c096 ) = var←c4996;
   return;
   }

static void ArcTan←P780(formal←c0100, y←v5056, x←v5084)
   word formal←c0100;
   W2 y←v5056;
   W2 x←v5084;
   {
   W2 radians←v5128;
   /* ArcTan: */ 
SOURCE(2515, 327)
SOURCE(2812, 30)
   (void) XR←DRealArcTanI((word) &radians←v5128, (word) &y←v5056, (word) &x←v5084);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0100 ) = radians←v5128;
   return;
   }

static void ArcTanDeg←P840(formal←c0106, y←v5188, x←v5216)
   word formal←c0106;
   W2 y←v5188;
   W2 x←v5216;
   {
   W2 degrees←v5260;
   W2 radians←v8440;
   /* ArcTanDeg: */ 
SOURCE(2848, 130)
SOURCE(2914, 29)
   (void) ArcTan←P780((word) &radians←v8440, y←v5188, x←v5216);
SOURCE(2945, 33)
   {
      W2 x13;
      XR←DRealDivI(&x13, &fc8, &fc7);
      XR←DRealMulI(&degrees←v5260, &x13, &radians←v8440);
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0106 ) = degrees←v5260;
   return;
   }

static void SinH←P900(formal←c0109, x←v5320)
   word formal←c0109;
   W2 x←v5320;
   {
   W2 ret←v5364;
   /* SinH: */ 
SOURCE(2983, 282)
SOURCE(3245, 20)
   (void) XR←DRealSinHI((word) &ret←v5364, (word) &x←v5320);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0109 ) = ret←v5364;
   return;
   }

static void CosH←P960(formal←c0112, x←v5424)
   word formal←c0112;
   W2 x←v5424;
   {
   W2 ret←v5468;
   /* CosH: */ 
SOURCE(3271, 282)
SOURCE(3533, 20)
   (void) XR←DRealCosHI((word) &ret←v5468, (word) &x←v5424);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0112 ) = ret←v5468;
   return;
   }

static void TanH←P1020(formal←c0115, x←v5528)
   word formal←c0115;
   W2 x←v5528;
   {
   W2 ret←v5572;
   /* TanH: */ 
SOURCE(3559, 282)
SOURCE(3821, 20)
   (void) XR←DRealTanHI((word) &ret←v5572, (word) &x←v5528);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0115 ) = ret←v5572;
   return;
   }

static void CotH←P1080(formal←c0120, x←v5632)
   word formal←c0120;
   W2 x←v5632;
   {
   W2 var←c5676;
   /* CotH: */ 
SOURCE(3847, 69)
SOURCE(3896, 20)
   {
      W2 var←c13132;
      {
         W2 var←c0119;
         (void) TanH←P1020((word) &var←c0119, x←v5632);
         XR←DRealDivI(&var←c13132, &fc14, &var←c0119);
         };
      var←c5676 = var←c13132;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0120 ) = var←c5676;
   return;
   }

static void InvSinH←P1140(formal←c0123, x←v5736)
   word formal←c0123;
   W2 x←v5736;
   {
   W2 ret←v5780;
   /* InvSinH: */ 
SOURCE(3922, 298)
SOURCE(4197, 23)
   (void) XR←DRealInvSinHI((word) &ret←v5780, (word) &x←v5736);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0123 ) = ret←v5780;
   return;
   }

static void InvCosH←P1200(formal←c0126, x←v5840)
   word formal←c0126;
   W2 x←v5840;
   {
   W2 ret←v5884;
   /* InvCosH: */ 
SOURCE(4226, 298)
SOURCE(4501, 23)
   (void) XR←DRealInvCosHI((word) &ret←v5884, (word) &x←v5840);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0126 ) = ret←v5884;
   return;
   }

static void InvTanH←P1260(formal←c0129, x←v5944)
   word formal←c0129;
   W2 x←v5944;
   {
   W2 ret←v5988;
   /* InvTanH: */ 
SOURCE(4529, 298)
SOURCE(4804, 23)
   (void) XR←DRealInvTanHI((word) &ret←v5988, (word) &x←v5944);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0129 ) = ret←v5988;
   return;
   }

static void InvCotH←P1320(formal←c0134, x←v6048)
   word formal←c0134;
   W2 x←v6048;
   {
   W2 var←c6092;
   /* InvCotH: */ 
SOURCE(4832, 75)
SOURCE(4884, 23)
   {
      W2 var←c13196;
      {
         W2 var←c0133;
         (void) InvTanH←P1260((word) &var←c0133, x←v6048);
         XR←DRealDivI(&var←c13196, &fc14, &var←c0133);
         };
      var←c6092 = var←c13196;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0134 ) = var←c6092;
   return;
   }

static void LnGamma←P1380(formal←c0137, x←v6152)
   word formal←c0137;
   W2 x←v6152;
   {
   W2 ret←v6196;
   /* LnGamma: */ 
SOURCE(4912, 299)
SOURCE(5188, 23)
   (void) XR←DRealLnGammaI((word) &ret←v6196, (word) &x←v6152);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0137 ) = ret←v6196;
   return;
   }

static void Gamma←P1440(formal←c0144, x←v6256)
   word formal←c0144;
   W2 x←v6256;
   {
   W2 var←c6300;
   /* Gamma: */ 
SOURCE(5217, 74)
SOURCE(5267, 24)
   {
      W2 var←c13292;
      {
         W2 var←c13260;
         (void) LnGamma←P1380((word) &var←c13260, x←v6256);
         {
            W2 var←c0143;
            (void) Exp←P60((word) &var←c0143, var←c13260);
            var←c13292 = var←c0143;
            };
         };
      var←c6300 = var←c13292;
      /* removed tail goto */ 
      };
   (*  (W2Pt) formal←c0144 ) = var←c6300;
   return;
   }

static void J0←P1500(formal←c0147, x←v6360)
   word formal←c0147;
   W2 x←v6360;
   {
   W2 ret←v6404;
   /* J0: */ 
SOURCE(5296, 270)
SOURCE(5548, 18)
   (void) XR←DRealJ0I((word) &ret←v6404, (word) &x←v6360);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0147 ) = ret←v6404;
   return;
   }

static void J1←P1560(formal←c0150, x←v6464)
   word formal←c0150;
   W2 x←v6464;
   {
   W2 ret←v6508;
   /* J1: */ 
SOURCE(5571, 270)
SOURCE(5823, 18)
   (void) XR←DRealJ1I((word) &ret←v6508, (word) &x←v6464);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0150 ) = ret←v6508;
   return;
   }

static void Jn←P1620(formal←c0154, n←v6568, x←v6596)
   word formal←c0154;
   word n←v6568;
   W2 x←v6596;
   {
   W2 ret←v6640;
   /* Jn: */ 
SOURCE(5846, 326)
SOURCE(6151, 21)
   (void) XR←DRealJnI((word) &ret←v6640, n←v6568, (word) &x←v6596);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0154 ) = ret←v6640;
   return;
   }

static void Y0←P1680(formal←c0157, x←v6700)
   word formal←c0157;
   W2 x←v6700;
   {
   W2 ret←v6744;
   /* Y0: */ 
SOURCE(6178, 270)
SOURCE(6430, 18)
   (void) XR←DRealY0I((word) &ret←v6744, (word) &x←v6700);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0157 ) = ret←v6744;
   return;
   }

static void Y1←P1740(formal←c0160, x←v6804)
   word formal←c0160;
   W2 x←v6804;
   {
   W2 ret←v6848;
   /* Y1: */ 
SOURCE(6453, 270)
SOURCE(6705, 18)
   (void) XR←DRealY1I((word) &ret←v6848, (word) &x←v6804);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0160 ) = ret←v6848;
   return;
   }

static void Yn←P1800(formal←c0164, n←v6908, x←v6936)
   word formal←c0164;
   word n←v6908;
   W2 x←v6936;
   {
   W2 ret←v6980;
   /* Yn: */ 
SOURCE(6728, 326)
SOURCE(7033, 21)
   (void) XR←DRealYnI((word) &ret←v6980, n←v6908, (word) &x←v6936);
   /* removed tail goto */ 
   (*  (W2Pt) formal←c0164 ) = ret←v6980;
   return;
   }

static void RationalFromDReal←P1860(formal←c0179, x←v7040, limit←v7068)
   word formal←c0179;
   W2 x←v7040;
   word limit←v7068;
   {
   register ptr gf←c13676 =  (ptr) &globalframe;
   W2 var←c7112;
   word sign←v10256 = 1;
   word inverse←v10284 = 0;
   word p0←v10312 = 0;
   word q0←v10340 = 0;
   word lambda←v10368 = 0;
   word q1←v10396 = 0;
   word p2←v10424 = 0;
   word p1←v10452 = 1;
   word q2←v10480 = 1;
   /* RationalFromDReal: */ 
SOURCE(7059, 804)
SOURCE(7254, 56)
   if (( (int)limit←v7068 <  (int)1)) {
SOURCE(7272, 38)
      {
         word var←c0177 = 5;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c13676)+72)/* var←c13324 */  ))+4) ), (word) &var←c0177);
         };
      };
SOURCE(7312, 37)
   {
      W2 D15;
      XR←DFloatInt(&D15, limit←v7068);
      if (XR←DRealGtI(&x←v7040, &D15)) {
SOURCE(7330, 19)
         var←c7112.f0 = limit←v7068;
         var←c7112.f1 = 1;
         goto lab←L100030;
         };
      };
SOURCE(7351, 39)
   {
      W2 x16;
      W2 D17;
      float tf18;
      XR←DRealNegI(&x16, &x←v7040);
      XR←DFloatReal(&D17, (
            tf18 = (float)(int)limit←v7068,  *(word*)&tf18
            ));
      if (XR←DRealGtI(&x16, &D17)) {
SOURCE(7370, 20)
         var←c7112.f0 = INEG(limit←v7068);
         var←c7112.f1 = 1;
         goto lab←L100030;
         };
      };
SOURCE(7393, 36)
   if (XR←DRealGtI(&fc19, &x←v7040)) {
SOURCE(7411, 6)
      XR←DRealNegI(&x←v7040, &x←v7040);
SOURCE(7419, 10)
      sign←v10256 =  (word) -1;
      };
SOURCE(7432, 58)
   if (XR←DRealEqI(&x←v7040, &fc14)) {
SOURCE(7448, 42)
      var←c7112.f0 = sign←v10256;
      var←c7112.f1 = 1;
      goto lab←L100030;
      };
SOURCE(7492, 44)
   if (XR←DRealGtI(&x←v7040, &fc14)) {
SOURCE(7510, 9)
      XR←DRealDivI(&x←v7040, &fc14, &x←v7040);
SOURCE(7521, 15)
      inverse←v10284 = 1;
      };
SOURCE(7540, 193)
   lab←L100033: ;
SOURCE(7540, 193)
   {
      W2 oneOverX←v10524;
SOURCE(7543, 28)
      {
         W2 D20;
         XR←DFloatInt(&D20, lambda←v10368);
         XR←DRealSubI(&oneOverX←v10524, &x←v7040, &D20);
         };
SOURCE(7573, 34)
      {
         W2 x21;
         W2 D22;
         W2 D23;
         float tf24;
         XR←DFloatInt(&D22, (limit←v7068 - q1←v10396));
         XR←DRealMulI(&x21, &oneOverX←v10524, &D22);
         XR←DFloatReal(&D23, (
               tf24 = (float)(int)q2←v10480,  *(word*)&tf24
               ));
         if (XR←DRealGeI(&D23, &x21)) {
SOURCE(7607, 4)
            goto lab←L100032;
            };
         };
SOURCE(7613, 16)
      XR←DRealDivI(&x←v7040, &fc14, &oneOverX←v10524);
SOURCE(7631, 28)
      {
         word pd25;
         pd25 = (* (( (ptr) (* (( (ptr) gf←c13676)+73)/* var←c13452 */  ))+10) );
         lambda←v10368 = (word) ( *( (fPt) ((*  (ptr) pd25 ))))(x←v7040, pd25);
         };
SOURCE(7661, 7)
      q0←v10340 = q1←v10396;
SOURCE(7670, 7)
      q1←v10396 = q2←v10480;
SOURCE(7679, 17)
      q2←v10480 = (IOP2( * ,  (int)lambda←v10368,  (int)q1←v10396) + q0←v10340);
SOURCE(7698, 7)
      p0←v10312 = p1←v10452;
SOURCE(7707, 7)
      p1←v10452 = p2←v10424;
SOURCE(7716, 17)
      p2←v10424 = (IOP2( * ,  (int)lambda←v10368,  (int)p1←v10452) + p0←v10312);
      };
   goto lab←L100033;
   lab←L100032: ;
SOURCE(7745, 118)
   if ((0 == inverse←v10284)) {
SOURCE(7765, 52)
      var←c7112.f0 = IOP2( * ,  (int)sign←v10256,  (int)p2←v10424);
      var←c7112.f1 = q2←v10480;
      /* removed tail goto */ 
      }
   else {
SOURCE(7817, 46)
      var←c7112.f0 = IOP2( * ,  (int)sign←v10256,  (int)q2←v10480);
      var←c7112.f1 = p2←v10424;
      /* removed tail goto */ 
      };
   lab←L100030: ;
   (*  (W2Pt) formal←c0179 ) = var←c7112;
   return;
   }

static word AlmostZero←P1920(x←v7172, distance←v7200)
   W2 x←v7172;
   word distance←v7200;
   {
   register ptr gf←c13708 =  (ptr) &globalframe;
   word var←c7244;
   /* AlmostZero: */ 
SOURCE(7868, 156)
SOURCE(7941, 29)
   if (XR←DRealEqI(&x←v7172, &fc19)) {
SOURCE(7957, 13)
      return(1);
      };
SOURCE(7972, 52)
   {
      word var←c0197;
      {
         W2 var←c0183;
         {
            word pd26;
            pd26 = (* (( (ptr) (* (( (ptr) gf←c13708)+73)/* var←c13452 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd26 ))))((word) &var←c0183, (*  (W2Pt) &fc14 ), distance←v7200, pd26);
            };
         {
            W2 x27;
            XR←DRealAbsI(&x27, &x←v7172);
            var←c0197 =  (unsigned) XR←DRealGtI(&var←c0183, &x27);
            };
         };
      return(var←c0197);
      };
   }

static word AlmostEqual←P1980(y←v7304, x←v7332, distance←v7360)
   W2 y←v7304;
   W2 x←v7332;
   word distance←v7360;
   {
   register ptr gf←c13740 =  (ptr) &globalframe;
   word var←c7404;
   /* AlmostEqual: */ 
SOURCE(8029, 400)
SOURCE(8106, 56)
   {
      word pd28;
      pd28 = (* (( (ptr) (* (( (ptr) gf←c13740)+73)/* var←c13452 */  ))+4) );
      if (((word) ( *( (fPt) ((*  (ptr) pd28 ))))(x←v7332, pd28) > 2)) {
SOURCE(8148, 14)
         return(0);
         };
      };
SOURCE(8164, 56)
   {
      word pd29;
      pd29 = (* (( (ptr) (* (( (ptr) gf←c13740)+73)/* var←c13452 */  ))+4) );
      if (((word) ( *( (fPt) ((*  (ptr) pd29 ))))(y←v7304, pd29) > 2)) {
SOURCE(8206, 14)
         return(0);
         };
      };
SOURCE(8222, 209)
   {
      W2 delta←v10568;
      W2 absX←v10596;
      W2 absY←v10624;
      W2 max←v10652;
SOURCE(8224, 23)
      {
         W2 x30;
         XR←DRealSubI(&x30, &x←v7332, &y←v7304);
         XR←DRealAbsI(&delta←v10568, &x30);
         };
SOURCE(8249, 20)
      XR←DRealAbsI(&absX←v10596, &x←v7332);
SOURCE(8271, 20)
      XR←DRealAbsI(&absY←v10624, &y←v7304);
SOURCE(8293, 47)
      {
         word tcp31;
         if (XR←DRealGtI(&absY←v10624, &absX←v10596)) {
            tcp31 = (word) &absY←v10624;
            }
         else {
            tcp31 = (word) &absX←v10596;
            };
         max←v10652 = (*  (W2Pt) tcp31 );
         };
SOURCE(8342, 33)
      if (XR←DRealEqI(&delta←v10568, &max←v10652)) {
SOURCE(8362, 13)
         return(1);
         };
SOURCE(8377, 52)
      {
         word var←c0198;
         {
            W2 var←c0192;
            {
               word pd32;
               pd32 = (* (( (ptr) (* (( (ptr) gf←c13740)+73)/* var←c13452 */  ))+12) );
               (void) ( *( (fPt) ((*  (ptr) pd32 ))))((word) &var←c0192, max←v10652, distance←v7360, pd32);
               };
            var←c0198 =  (unsigned) XR←DRealGeI(&var←c0192, &delta←v10568);
            };
         return(var←c0198);
         };
      };
   }

/* file: DRealFnsImpl, module: DRealFnsImpl, compiled at: May 6, 1993 5:09:57 pm PDT */ 
extern void XR←install←DRealFnsImpl() {
   NoName←Q2136();
   }
extern void XR←run←DRealFnsImpl() { XR←Start(&globalframe); }