/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */
/* time: February 21, 1992 9:05:25 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: RealFnsImpl, module: RealFnsImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
#define XRM←BITLSHIFT(x, y) ((word)(x) << (word)(y))
static char versionStamp[] = "@(#)mob←version [3177984008,354301641] RealFnsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef W2 *W2Pt;
static float fc1 = 0.70710678119;
static float fc2 = 0.9189385332;
#define SOURCE(p, l) /* source p, l */
static float fc8 = 1.0;
static float fc10 = 0.693147181;
static float fc12 = 3.1415926535;
static float fc14 = 2.0;
static float fc18 = 3.0;
static float fc22 = 4.0;
static float fc25 = 8.0;
static float fc28 = 180.0;
static float fc35 = 360.0;
static float fc43 = .414213562;
static float fc52 = 2.41421356;
static float fc61 = 362880.0;
static float fc64 = 40320.0;
static float fc67 = 5040.0;
static float fc70 = 720.0;
static float fc73 = 120.0;
static float fc76 = 24.0;
static float fc79 = 6.0;
static float fc85 = 6.28125;
#define FABS(f, t) ( ((t=(f)) >= (float) 0.0) ? (t) : (- (t)) )
static float fc92 = 3e-4;
static float fc98 = 3e-3;
static float fc104 = 0.5;
static float fc110 = -127.0;
static float fc112 = 0.0;
static float fc114 = 127.0;
static float fc122 = 14.0;
static float fc123 = 10.0;
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static float fc177 = 67108864.0;
static float fc181 = 8192.0;
static float fc278 = 201.0;
static float fc280 = 128.0;
static float fc283 = .000483826794897;
static float fc293 = -.0958017723;
static float fc295 = .00971685835;
static float fc298 = -0.429135777;
static float fc345 = -1.0;
static float fc360 = 0.00000000005;
static float fc373 = -3.1415926535;
static float fc382 = .1989123673;
static float fc385 = .668178638;
static float fc392 = 1.496605763;
static float fc401 = 5.02733949;
static float fc413 = .999999998;
static float fc416 = -.333331726;
static float fc419 = .1997952738;
static float fc422 = -.134450639;
static float fc440 = 20.;
static float fc443 = 0.;
static float fc445 = -1.;
static float fc446 = 1.;
static float fc508 = -0.2762472E-2;
static float fc512 = 0.8333327385E-1;
static float fc529 = -0.1849052456E3;
static float fc532 = 0.7739233017E5;
static float fc535 = -0.1121442418E8;
static float fc538 = 0.6516196407E9;
static float fc541 = -0.1336259035E11;
static float fc544 = 0.5756849057E11;
static float fc547 = 0.2678532712E3;
static float fc550 = 0.5927264853E5;
static float fc553 = 0.9494680718E7;
static float fc556 = 0.1029532985E10;
static float fc559 = 0.5756849041E11;
static float fc579 = -0.165711693E-5;
static float fc582 = 0.270871648E-4;
static float fc585 = -0.1098577711E-2;
static float fc588 = 0.9999999983;
static float fc590 = 0.576476505E-6;
static float fc593 = -0.6796319617E-5;
static float fc596 = 0.1430262718E-3;
static float fc599 = -0.1562499927E-1;
static float fc609 = 0.6543001487E1;
static float fc612 = -0.1988185996E4;
static float fc615 = 0.1978615055E6;
static float fc618 = -0.7064812917E7;
static float fc621 = 0.6706259146E8;
static float fc624 = 0.1766217266E3;
static float fc627 = 0.2668508067E5;
static float fc630 = 0.2635953855E7;
static float fc633 = 0.1341252501E9;
static float fc655 = 0.19796752E-5;
static float fc658 = -0.348677998E-4;
static float fc661 = 0.1830991520E-2;
static float fc664 = 0.1000000001E1;
static float fc666 = -0.67222066E-6;
static float fc669 = 0.831923005E-5;
static float fc672 = -0.2002434943E-3;
static float fc675 = 0.4687499917E-1;
#define INEG(x) ( (word) ( - ((int) (word) (x)) ) )
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) )
#define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) )
static void NoName←Q4404();
static void RealFnsImpl←P0();
static void Bomb←P60();
static word Exp←P120();
static word Log←P180();
static word Ln←P240();
static word SqRt←P300();
static word Root←P360();
static word Power←P420();
static word Sin←P480();
static word Cos←P540();
static word SinDeg←P600();
static word CosDeg←P660();
static word Tan←P720();
static word CoTan←P780();
static word TanCot←P840();
static word TanDeg←P900();
static word CoTanDeg←P960();
static word ArcSin←P1020();
static word ArcCos←P1080();
static word ArcSinDeg←P1140();
static word ArcCosDeg←P1200();
static word ArcTan←P1260();
static word ArcTanDeg←P1320();
static word SinH←P1380();
static word CosH←P1440();
static word TanH←P1500();
static word CotH←P1560();
static word InvSinH←P1620();
static word InvCosH←P1680();
static word InvTanH←P1740();
static word InvCotH←P1800();
static word LnGamma←P1860();
static word Gamma←P1920();
static word J0←P1980();
static void PQ0←P2040();
static word J1←P2100();
static void PQ1←P2160();
static word OldJn←P2220();
static word Jn←P2280();
static void RationalFromReal←P2340();
static void OldRationalFromReal←P2400();
static word AlmostZero←P2460();
static word AlmostEqual←P2520();
static word SinFirstOctant←P2580();
static word CosFirstOctant←P2640();
static word GetWithinTwoPI←P2700();
static word GetWithin360←P2760();
static void Mul32←P2820();
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\275\154\060\010\300\025\036\066\311\100\164\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\150\261\123\070\300\276\161\220\062\100\150\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\246\205\220\035\300\344\000\142\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\321\335\027\212\300\103\063\273\041\100\150\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\245\247\302\156\300\052\156\325\023\100\150\000\000"};
static struct {
word f0[135]; word f135; word f136; word f137;
word f138; word f139; word f140; word f141;
word f142; word f143; word f144; word f145;
word f146; word f147; word f148; word f149;
word f150; word f151; word f152; word f153;
word f154; word f155; word f156; word f157;
word f158; word f159; word f160; word f161;
word f162; word f163; word f164; word f165;
word f166; word f167[4];
} globalframe = {
{0}, 1060619040, 1060979136, 1061328992,
1061669472, 1062001280, 1062325248, 1062641472,
1062950912, 1063253760, 1063550528, 1063841472,
1064126976, 1064407296, 1064682816, 1064953600,
1065220032, 1065480352, 1065734944, 1065982304,
1066223104, 1066457728, 1066686720, 1066910400,
1067129216, 1067343392, 1067553184, 1067758912,
1067960832, 1068159040, 1068353792, 1068545408,
1068733760, {0}
};
static void NoName←Q4404()
{
register ptr gf←c0364 = (ptr) &globalframe;
word var←c21948;
(* (( (ptr) gf←c0364)+16)/* invRoot2←v3336 */ ) = (* (ptr) &fc1 );
(* (( (ptr) gf←c0364)+17)/* lnRoot2pi←v3364 */ ) = (* (ptr) &fc2 );
(* (( (ptr) gf←c0364)+133) ) = ( ((word) (fPt) RealFnsImpl←P0) );
(* (( (ptr) gf←c0364)+131) ) = ( ((word) (fPt) Bomb←P60) );
(* (( (ptr) gf←c0364)+129) ) = ( ((word) (fPt) Exp←P120) );
(* (( (ptr) gf←c0364)+127) ) = ( ((word) (fPt) Log←P180) );
(* (( (ptr) gf←c0364)+125) ) = ( ((word) (fPt) Ln←P240) );
(* (( (ptr) gf←c0364)+123) ) = ( ((word) (fPt) SqRt←P300) );
(* (( (ptr) gf←c0364)+121) ) = ( ((word) (fPt) Root←P360) );
(* (( (ptr) gf←c0364)+119) ) = ( ((word) (fPt) Power←P420) );
(* (( (ptr) gf←c0364)+117) ) = ( ((word) (fPt) Sin←P480) );
(* (( (ptr) gf←c0364)+115) ) = ( ((word) (fPt) Cos←P540) );
(* (( (ptr) gf←c0364)+113) ) = ( ((word) (fPt) SinDeg←P600) );
(* (( (ptr) gf←c0364)+111) ) = ( ((word) (fPt) CosDeg←P660) );
(* (( (ptr) gf←c0364)+109) ) = ( ((word) (fPt) Tan←P720) );
(* (( (ptr) gf←c0364)+107) ) = ( ((word) (fPt) CoTan←P780) );
(* (( (ptr) gf←c0364)+105) ) = ( ((word) (fPt) TanCot←P840) );
(* (( (ptr) gf←c0364)+103) ) = ( ((word) (fPt) TanDeg←P900) );
(* (( (ptr) gf←c0364)+101) ) = ( ((word) (fPt) CoTanDeg←P960) );
(* (( (ptr) gf←c0364)+99) ) = ( ((word) (fPt) ArcSin←P1020) );
(* (( (ptr) gf←c0364)+97) ) = ( ((word) (fPt) ArcCos←P1080) );
(* (( (ptr) gf←c0364)+95) ) = ( ((word) (fPt) ArcSinDeg←P1140) );
(* (( (ptr) gf←c0364)+93) ) = ( ((word) (fPt) ArcCosDeg←P1200) );
(* (( (ptr) gf←c0364)+91) ) = ( ((word) (fPt) ArcTan←P1260) );
(* (( (ptr) gf←c0364)+89) ) = ( ((word) (fPt) ArcTanDeg←P1320) );
(* (( (ptr) gf←c0364)+87) ) = ( ((word) (fPt) SinH←P1380) );
(* (( (ptr) gf←c0364)+85) ) = ( ((word) (fPt) CosH←P1440) );
(* (( (ptr) gf←c0364)+83) ) = ( ((word) (fPt) TanH←P1500) );
(* (( (ptr) gf←c0364)+81) ) = ( ((word) (fPt) CotH←P1560) );
(* (( (ptr) gf←c0364)+79) ) = ( ((word) (fPt) InvSinH←P1620) );
(* (( (ptr) gf←c0364)+77) ) = ( ((word) (fPt) InvCosH←P1680) );
(* (( (ptr) gf←c0364)+75) ) = ( ((word) (fPt) InvTanH←P1740) );
(* (( (ptr) gf←c0364)+73) ) = ( ((word) (fPt) InvCotH←P1800) );
(* (( (ptr) gf←c0364)+71) ) = ( ((word) (fPt) LnGamma←P1860) );
(* (( (ptr) gf←c0364)+69) ) = ( ((word) (fPt) Gamma←P1920) );
(* (( (ptr) gf←c0364)+67) ) = ( ((word) (fPt) J0←P1980) );
(* (( (ptr) gf←c0364)+65) ) = ( ((word) (fPt) PQ0←P2040) );
(* (( (ptr) gf←c0364)+63) ) = ( ((word) (fPt) J1←P2100) );
(* (( (ptr) gf←c0364)+61) ) = ( ((word) (fPt) PQ1←P2160) );
(* (( (ptr) gf←c0364)+59) ) = ( ((word) (fPt) OldJn←P2220) );
(* (( (ptr) gf←c0364)+57) ) = ( ((word) (fPt) Jn←P2280) );
(* (( (ptr) gf←c0364)+55) ) = ( ((word) (fPt) RationalFromReal←P2340) );
(* (( (ptr) gf←c0364)+53) ) = ( ((word) (fPt) OldRationalFromReal←P2400) );
(* (( (ptr) gf←c0364)+51) ) = ( ((word) (fPt) AlmostZero←P2460) );
(* (( (ptr) gf←c0364)+49) ) = ( ((word) (fPt) AlmostEqual←P2520) );
(* (( (ptr) gf←c0364)+47) ) = ( ((word) (fPt) SinFirstOctant←P2580) );
(* (( (ptr) gf←c0364)+45) ) = ( ((word) (fPt) CosFirstOctant←P2640) );
(* (( (ptr) gf←c0364)+43) ) = ( ((word) (fPt) GetWithinTwoPI←P2700) );
(* (( (ptr) gf←c0364)+41) ) = ( ((word) (fPt) GetWithin360←P2760) );
(* (( (ptr) gf←c0364)+39) ) = ( ((word) (fPt) Mul32←P2820) );
(void) XR←DeclareGlobalFrame((word) "RealFnsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string3)), (word) (( (bPt) gf←c0364)+532)
/* var←c20028 */ );
var←c21948 = (word) XR←ImportInterface((word) "FloatingPointCommon", (word) XR←GetTypeIndexS((word) (&string4)), 5);
(* (( (ptr) gf←c0364)+168)/* var←c20156 */ ) = var←c21948;
var←c21948 = (word) XR←ImportInterface((word) "Real", (word) XR←GetTypeIndexS((word) (&string5)), 11);
(* (( (ptr) gf←c0364)+167)/* var←c20124 */ ) = var←c21948;
(void) XR←ImportProcS(var←c21948, 67371265);
(void) XR←ImportProcS(var←c21948, 67371521);
(void) XR←ImportProcS(var←c21948, 67633154);
var←c21948 = (word) XR←ImportInterface((word) "RealSupport", (word) XR←GetTypeIndexS((word) (&string6)), 24);
(* (( (ptr) gf←c0364)+169)/* var←c20220 */ ) = var←c21948;
(void) XR←ImportProcS(var←c21948, 67372033);
var←c21948 = (word) XR←ExportInterface((word) "RealFns", (word) XR←GetTypeIndexS((word) (&string7)), 36);
(* (( (ptr) gf←c0364)+170)/* var←c21980 */ ) = var←c21948;
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+516)/* var←c19964 */ , 67371009);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+500)/* var←c19900 */ , 67371265);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+508)/* var←c19932 */ , 67633666);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+476)/* var←c19804 */ , 67633922);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+484)/* var←c19836 */ , 67634178);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+492)/* var←c19868 */ , 67372289);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+468)/* var←c19772 */ , 67372545);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+452)/* var←c19708 */ , 67372801);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+460)/* var←c19740 */ , 67373057);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+444)/* var←c19676 */ , 67373313);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+436)/* var←c19644 */ , 67373569);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+412)/* var←c19548 */ , 67373825);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+364)/* var←c19356 */ , 67636226);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+356)/* var←c19324 */ , 67636482);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+428)/* var←c19612 */ , 67374593);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+404)/* var←c19516 */ , 67374849);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+396)/* var←c19484 */ , 67375105);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+380)/* var←c19420 */ , 67375361);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+388)/* var←c19452 */ , 67375617);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+372)/* var←c19388 */ , 67375873);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+348)/* var←c19292 */ , 67376129);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+340)/* var←c19260 */ , 67376385);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+332)/* var←c19228 */ , 67376641);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+324)/* var←c19196 */ , 67376897);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+316)/* var←c19164 */ , 67377153);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+308)/* var←c19132 */ , 67377409);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+300)/* var←c19100 */ , 67377665);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+292)/* var←c19068 */ , 67377921);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+284)/* var←c19036 */ , 67378177);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+276)/* var←c19004 */ , 67378433);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+268)/* var←c18972 */ , 67378689);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+252)/* var←c18908 */ , 67378945);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+228)/* var←c18812 */ , 67641346);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+220)/* var←c18780 */ , 134750466);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+204)/* var←c18716 */ , 67641858);
(void) XR←ExportProcS(var←c21948, (word) (( (bPt) gf←c0364)+196)/* var←c18684 */ , 67904259);
}
static void RealFnsImpl←P0(formal←c091, formal←c090)
word formal←c091;
word formal←c090;
{
register ptr gf←c22012 = (ptr) &globalframe;
/* RealFnsImpl: */
SOURCE(80, 20594)
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
/* moved to installation proc */
SOURCE(862, 25)
{
word x9;
word x11;
*(float*)(( (ptr) gf←c22012)+4)/* LogBase2ofE←v2916 */ = (
x9 = (* (ptr) &fc8 ), *(float*)&x9
) / (
x11 = (* (ptr) &fc10 ), *(float*)&x11
);
};
SOURCE(949, 18)
{
word x13;
word x15;
*(float*)(( (ptr) gf←c22012)+5)/* twoPI←v3000 */ = (
x13 = (* (ptr) &fc12 ), *(float*)&x13
) * (
x15 = (* (ptr) &fc14 ), *(float*)&x15
);
};
SOURCE(969, 21)
{
word x16;
word x17;
*(float*)(( (ptr) gf←c22012)+6)/* piHalves←v3028 */ = (
x16 = (* (ptr) &fc12 ), *(float*)&x16
) / (
x17 = (* (ptr) &fc14 ), *(float*)&x17
);
};
SOURCE(992, 26)
{
word x19;
word x20;
*(float*)(( (ptr) gf←c22012)+7)/* pi3ovr2←v3056 */ = (
x19 = (* (ptr) &fc18 ), *(float*)&x19
) * (
x20 = (* (( (ptr) gf←c22012)+6)/* piHalves←v3028 */ ), *(float*)&x20
);
};
SOURCE(1020, 28)
{
word x21;
word x23;
*(float*)(( (ptr) gf←c22012)+8)/* pi3Eighths←v3084 */ = (
x21 = (* (( (ptr) gf←c22012)+7)/* pi3ovr2←v3056 */ ), *(float*)&x21
) / (
x23 = (* (ptr) &fc22 ), *(float*)&x23
);
};
SOURCE(1074, 22)
{
word x24;
word x26;
*(float*)(( (ptr) gf←c22012)+9)/* piEighths←v3140 */ = (
x24 = (* (ptr) &fc12 ), *(float*)&x24
) / (
x26 = (* (ptr) &fc25 ), *(float*)&x26
);
};
SOURCE(1098, 31)
{
word x27;
word x29;
*(float*)(( (ptr) gf←c22012)+10)/* radiansPerDegree←v3168 */ = (
x27 = (* (ptr) &fc12 ), *(float*)&x27
) / (
x29 = (* (ptr) &fc28 ), *(float*)&x29
);
};
SOURCE(1131, 31)
{
word x30;
word x31;
*(float*)(( (ptr) gf←c22012)+11)/* degreesPerRadian←v3196 */ = (
x30 = (* (ptr) &fc28 ), *(float*)&x30
) / (
x31 = (* (ptr) &fc12 ), *(float*)&x31
);
};
SOURCE(1164, 24)
{
word x32;
word x33;
*(float*)(( (ptr) gf←c22012)+12)/* rec2pi←v3224 */ = (
x32 = (* (ptr) &fc8 ), *(float*)&x32
) / (
x33 = (* (( (ptr) gf←c22012)+5)/* twoPI←v3000 */ ), *(float*)&x33
);
};
SOURCE(1190, 24)
{
word x34;
word x36;
*(float*)(( (ptr) gf←c22012)+13)/* rec360←v3252 */ = (
x34 = (* (ptr) &fc8 ), *(float*)&x34
) / (
x36 = (* (ptr) &fc35 ), *(float*)&x36
);
};
SOURCE(1216, 25)
{
word x37;
word x38;
*(float*)(( (ptr) gf←c22012)+14)/* fourOverPI←v3280 */ = (
x37 = (* (ptr) &fc22 ), *(float*)&x37
) / (
x38 = (* (ptr) &fc12 ), *(float*)&x38
);
};
SOURCE(1243, 24)
{
word x39;
word x40;
*(float*)(( (ptr) gf←c22012)+15)/* twoOverPI←v3308 */ = (
x39 = (* (ptr) &fc14 ), *(float*)&x39
) / (
x40 = (* (ptr) &fc12 ), *(float*)&x40
);
};
/* moved to installation proc */
/* moved to installation proc */
SOURCE(1333, 37)
{
word pd41;
pd41 = (* (( (ptr) (* (( (ptr) gf←c22012)+167)/* var←c20124 */ ))+4) );
(* (( (ptr) gf←c22012)+18)/* sqrtEps←v3392 */ ) = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* (ptr) &fc8 ), (word) -12, pd41)
;
};
SOURCE(8003, 25)
{
word x42;
word x44;
*(float*)(( (ptr) gf←c22012)+19)/* x2←v4008 */ = (
x42 = (* (ptr) &fc8 ), *(float*)&x42
) / (
x44 = (* (ptr) &fc43 ), *(float*)&x44
);
};
SOURCE(8030, 21)
{
word x45;
word x46;
word x47;
*(float*)(( (ptr) gf←c22012)+20)/* x22←v4036 */ = ((
x45 = (* (( (ptr) gf←c22012)+19)/* x2←v4008 */ ), *(float*)&x45
) * (
x46 = (* (( (ptr) gf←c22012)+19)/* x2←v4008 */ ), *(float*)&x46
)) + (
x47 = (* (ptr) &fc8 ), *(float*)&x47
);
};
SOURCE(8098, 21)
{
word x48;
word x49;
word x50;
*(float*)(( (ptr) gf←c22012)+21)/* x44←v4120 */ = ((
x48 = (* (ptr) &fc8 ), *(float*)&x48
) * (
x49 = (* (ptr) &fc8 ), *(float*)&x49
)) + (
x50 = (* (ptr) &fc8 ), *(float*)&x50
);
};
SOURCE(8151, 25)
{
word x51;
word x53;
*(float*)(( (ptr) gf←c22012)+22)/* x6←v4176 */ = (
x51 = (* (ptr) &fc8 ), *(float*)&x51
) / (
x53 = (* (ptr) &fc52 ), *(float*)&x53
);
};
SOURCE(8178, 21)
{
word x54;
word x55;
word x56;
*(float*)(( (ptr) gf←c22012)+23)/* x66←v4204 */ = ((
x54 = (* (( (ptr) gf←c22012)+22)/* x6←v4176 */ ), *(float*)&x54
) * (
x55 = (* (( (ptr) gf←c22012)+22)/* x6←v4176 */ ), *(float*)&x55
)) + (
x56 = (* (ptr) &fc8 ), *(float*)&x56
);
};
SOURCE(11464, 24)
{
word x57;
word x58;
word x59;
*(float*)(( (ptr) gf←c22012)+24)/* pi34←v4764 */ = (
x57 = (* (ptr) &fc18 ), *(float*)&x57
) * ((
x58 = (* (ptr) &fc12 ), *(float*)&x58
) / (
x59 = (* (ptr) &fc22 ), *(float*)&x59
));
};
SOURCE(12672, 39)
(* (( (ptr) gf←c22012)+25)/* lagestNumber←v4876 */ ) = 2139095039;
SOURCE(12713, 18)
(* (( (ptr) gf←c22012)+26)/* factLimit←v4904 */ ) = 8;
SOURCE(18787, 47)
{
word x60;
word x62;
*(float*)(( (ptr) gf←c22012)+27)/* fact9recip←v5072 */ = (
x60 = (* (ptr) &fc8 ), *(float*)&x60
) / (
x62 = (* (ptr) &fc61 ), *(float*)&x62
);
};
SOURCE(18836, 45)
{
word x63;
word x65;
*(float*)(( (ptr) gf←c22012)+28)/* fact8recip←v5100 */ = (
x63 = (* (ptr) &fc8 ), *(float*)&x63
) / (
x65 = (* (ptr) &fc64 ), *(float*)&x65
);
};
SOURCE(18883, 43)
{
word x66;
word x68;
*(float*)(( (ptr) gf←c22012)+29)/* fact7recip←v5128 */ = (
x66 = (* (ptr) &fc8 ), *(float*)&x66
) / (
x68 = (* (ptr) &fc67 ), *(float*)&x68
);
};
SOURCE(18928, 41)
{
word x69;
word x71;
*(float*)(( (ptr) gf←c22012)+30)/* fact6recip←v5156 */ = (
x69 = (* (ptr) &fc8 ), *(float*)&x69
) / (
x71 = (* (ptr) &fc70 ), *(float*)&x71
);
};
SOURCE(18971, 39)
{
word x72;
word x74;
*(float*)(( (ptr) gf←c22012)+31)/* fact5recip←v5184 */ = (
x72 = (* (ptr) &fc8 ), *(float*)&x72
) / (
x74 = (* (ptr) &fc73 ), *(float*)&x74
);
};
SOURCE(19012, 37)
{
word x75;
word x77;
*(float*)(( (ptr) gf←c22012)+32)/* fact4recip←v5212 */ = (
x75 = (* (ptr) &fc8 ), *(float*)&x75
) / (
x77 = (* (ptr) &fc76 ), *(float*)&x77
);
};
SOURCE(19051, 35)
{
word x78;
word x80;
*(float*)(( (ptr) gf←c22012)+33)/* fact3recip←v5240 */ = (
x78 = (* (ptr) &fc8 ), *(float*)&x78
) / (
x80 = (* (ptr) &fc79 ), *(float*)&x80
);
};
SOURCE(19088, 33)
{
word x81;
word x82;
*(float*)(( (ptr) gf←c22012)+34)/* fact2recip←v5268 */ = (
x81 = (* (ptr) &fc8 ), *(float*)&x81
) / (
x82 = (* (ptr) &fc14 ), *(float*)&x82
);
};
SOURCE(19124, 67)
{
word x83;
word x84;
*(float*)(( (ptr) gf←c22012)+35)/* minEps←v5296 */ = (
x83 = (* (ptr) &fc8 ), *(float*)&x83
) - (
x84 = ((* (ptr) &fc8 ) - 1), *(float*)&x84
);
};
SOURCE(19193, 30)
(* (( (ptr) gf←c22012)+36)/* sinCosEps←v5324 */ ) = (word) SqRt←P300((* ((( (ptr) gf←c22012)+35)/* minEps←v5296 */ ) ));
SOURCE(19674, 20)
(* (( (ptr) gf←c22012)+37)/* PIc1←v5408 */ ) = (* (ptr) &fc85 );
SOURCE(19742, 23)
{
word x86;
word x87;
*(float*)(( (ptr) gf←c22012)+38)/* PIc2←v5436 */ = (
x86 = (* (( (ptr) gf←c22012)+5)/* twoPI←v3000 */ ), *(float*)&x86
) - (
x87 = (* (( (ptr) gf←c22012)+37)/* PIc1←v5408 */ ), *(float*)&x87
);
};
}
static void Bomb←P60(x←v5956, exCode←v5984)
word x←v5956;
word exCode←v5984;
{
register ptr gf←c22044 = (ptr) &globalframe;
/* Bomb: */
SOURCE(709, 122)
SOURCE(792, 39)
{
word var←c094;
var←c094 = exCode←v5984;
(void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c22044)+168)/* var←c20156 */ ))+4) ), (word) &var←c094);
};
}
static word Exp←P120(x←v6044)
word x←v6044;
{
register ptr gf←c22076 = (ptr) &globalframe;
word var←c6088;
word r←v11536;
word f←v11564;
word k←v11592;
word fl←v11620;
/* Exp: */
SOURCE(1415, 696)
SOURCE(1485, 42)
fl←v11620 = (* (ptr) &fc8 );
SOURCE(1530, 73)
{
word var←c20188;
{
float tf88;
word x89;
float tf90;
var←c20188 = (
tf90 = FABS((
x89 = x←v6044, *(float*)&x89
), tf88), *(word*)&tf90
);
};
{
word x91;
word x93;
word x97;
word x99;
if (((
x91 = var←c20188, *(float*)&x91
) < (
x93 = (* (ptr) &fc92 ), *(float*)&x93
))) {
SOURCE(1559, 12)
{
word x94;
word x95;
float tf96;
return((
tf96 = (
x94 = (* (ptr) &fc8 ), *(float*)&x94
) + (
x95 = x←v6044, *(float*)&x95
), *(word*)&tf96
));
};
}
else {
if (((
x97 = var←c20188, *(float*)&x97
) < (
x99 = (* (ptr) &fc98 ), *(float*)&x99
))) {
SOURCE(1583, 20)
{
word x100;
word x101;
word x102;
word x103;
word x105;
float tf106;
return((
tf106 = ((
x100 = (* (ptr) &fc8 ), *(float*)&x100
) + (
x101 = x←v6044, *(float*)&x101
)) + (((
x102 = x←v6044, *(float*)&x102
) * (
x103 = x←v6044, *(float*)&x103
)) * (
x105 = (* (ptr) &fc104 ), *(float*)&x105
)), *(word*)&tf106
));
};
};
};
};
};
SOURCE(1615, 17)
{
word x107;
word x108;
*(float*)&x←v6044 = (
x107 = x←v6044, *(float*)&x107
) * (
x108 = (* (( (ptr) gf←c22076)+4)/* LogBase2ofE←v2916 */ ), *(float*)&x108
);
};
SOURCE(1665, 38)
{
word x109;
word x111;
if (((
x109 = x←v6044, *(float*)&x109
) < (
x111 = (* (ptr) &fc110 ), *(float*)&x111
))) {
SOURCE(1691, 12)
return((* (ptr) &fc112 ));
};
};
SOURCE(1705, 32)
{
word x113;
word x115;
if (((
x113 = x←v6044, *(float*)&x113
) > (
x115 = (* (ptr) &fc114 ), *(float*)&x115
))) {
SOURCE(1730, 7)
(void) Bomb←P60(x←v6044, 0);
};
};
SOURCE(1740, 22)
{
word pd116;
pd116 = (* (( (ptr) (* (( (ptr) gf←c22076)+169)/* var←c20220 */ ))+8) );
k←v11592 = (word) ( *( (fPt) ((* (ptr) pd116 ))))(x←v6044, pd116);
};
SOURCE(1796, 9)
{
word x117;
*(float*)&x←v6044 = (
x117 = x←v6044, *(float*)&x117
) - (float)(int)k←v11592;
};
SOURCE(1826, 9)
{
word x118;
word x119;
*(float*)&x←v6044 = (
x118 = x←v6044, *(float*)&x118
) * (
x119 = (* (ptr) &fc10 ), *(float*)&x119
);
};
SOURCE(1878, 7)
{
word x120;
word x121;
*(float*)&r←v11536 = (
x120 = x←v6044, *(float*)&x120
) * (
x121 = x←v6044, *(float*)&x121
);
};
SOURCE(1888, 143)
SOURCE(1910, 19)
f←v11564 = (* (ptr) &fc122 );
SOURCE(1931, 31)
{
word x124;
word x125;
word x126;
*(float*)&f←v11564 = (
x124 = (* (ptr) &fc123 ), *(float*)&x124
) + ((
x125 = r←v11536, *(float*)&x125
) / (
x126 = f←v11564, *(float*)&x126
));
};
SOURCE(1964, 31)
{
word x127;
word x128;
word x129;
*(float*)&f←v11564 = (
x127 = (* (ptr) &fc79 ), *(float*)&x127
) + ((
x128 = r←v11536, *(float*)&x128
) / (
x129 = f←v11564, *(float*)&x129
));
};
SOURCE(1997, 31)
{
word x130;
word x131;
word x132;
*(float*)&f←v11564 = (
x130 = (* (ptr) &fc14 ), *(float*)&x130
) + ((
x131 = r←v11536, *(float*)&x131
) / (
x132 = f←v11564, *(float*)&x132
));
};
SOURCE(2035, 19)
{
word x133;
word x134;
word x135;
word x136;
*(float*)&x←v6044 = ((
x133 = f←v11564, *(float*)&x133
) + (
x134 = x←v6044, *(float*)&x134
)) / ((
x135 = f←v11564, *(float*)&x135
) - (
x136 = x←v6044, *(float*)&x136
));
};
SOURCE(2056, 25)
fl←v11620 = (fl←v11620 & 2155872255) | (((BCK((k←v11592 + 127), 256))) << 23);
SOURCE(2083, 28)
{
word x137;
word x138;
float tf139;
return((
tf139 = (
x137 = x←v6044, *(float*)&x137
) * (
x138 = fl←v11620, *(float*)&x138
), *(word*)&tf139
));
};
}
static word Log←P180(base←v6148, arg←v6176)
word base←v6148;
word arg←v6176;
{
word var←c6220;
/* Log: */
SOURCE(2117, 78)
SOURCE(2171, 24)
{
word x140;
word x141;
float tf142;
return((
tf142 = (
x140 = (word) Ln←P240(arg←v6176), *(float*)&x140
) / (
x141 = (word) Ln←P240(base←v6148), *(float*)&x141
), *(word*)&tf142
));
};
}
static word Ln←P240(x←v6280)
word x←v6280;
{
word var←c6324;
word fl←v11708;
word m←v11736;
word xm1←v11764;
word OneMinusX←v11792;
word OneMinusXPowerRep←v11820;
/* Ln: */
SOURCE(2201, 651)
SOURCE(2274, 15)
{
word x143;
word x144;
*(float*)&xm1←v11764 = (
x143 = x←v6280, *(float*)&x143
) - (
x144 = (* (ptr) &fc8 ), *(float*)&x144
);
};
SOURCE(2327, 22)
{
word x145;
word x146;
if (((
x145 = x←v6280, *(float*)&x145
) <= (
x146 = (* (ptr) &fc112 ), *(float*)&x146
))) {
SOURCE(2342, 7)
(void) Bomb←P60(x←v6280, 0);
};
};
SOURCE(2352, 96)
{
word var←c20284;
{
float tf147;
word x148;
float tf149;
var←c20284 = (
tf149 = FABS((
x148 = xm1←v11764, *(float*)&x148
), tf147), *(word*)&tf149
);
};
{
word x150;
word x151;
word x152;
word x153;
if (((
x150 = var←c20284, *(float*)&x150
) > (
x151 = (* (ptr) &fc98 ), *(float*)&x151
))) {
}
else {
if (((
x152 = var←c20284, *(float*)&x152
) > (
x153 = (* (ptr) &fc92 ), *(float*)&x153
))) {
SOURCE(2397, 26)
{
word x154;
word x155;
word x156;
word x157;
float tf158;
return((
tf158 = (
x154 = xm1←v11764, *(float*)&x154
) - (((
x155 = (* (ptr) &fc104 ), *(float*)&x155
) * (
x156 = xm1←v11764, *(float*)&x156
)) * (
x157 = xm1←v11764, *(float*)&x157
)), *(word*)&tf158
));
};
}
else {
SOURCE(2436, 12)
return(xm1←v11764);
};
};
};
};
SOURCE(2451, 28)
fl←v11708 = x←v6280;
SOURCE(2481, 31)
m←v11736 = ((((unsigned)fl←v11708 << 1) >> 24) - 126);
SOURCE(2514, 25)
fl←v11708 = (fl←v11708 & 2155872255) | (((126)) << 23);
SOURCE(2560, 22)
x←v6280 = fl←v11708;
SOURCE(2585, 33)
{
word x159;
word x160;
if (((
x159 = x←v6280, *(float*)&x159
) == (
x160 = (* (ptr) &fc104 ), *(float*)&x160
))) {
SOURCE(2601, 17)
{
word x161;
float tf162;
return((
tf162 = (
x161 = (* (ptr) &fc10 ), *(float*)&x161
) * (float)(int)(m←v11736 - 1), *(word*)&tf162
));
};
};
};
SOURCE(2621, 17)
{
word x163;
word x164;
*(float*)&OneMinusX←v11792 = (
x163 = (* (ptr) &fc8 ), *(float*)&x163
) - (
x164 = x←v6280, *(float*)&x164
);
};
SOURCE(2640, 9)
{
word x165;
*(float*)&x←v6280 = (float)(int)m←v11736 * (
x165 = (* (ptr) &fc10 ), *(float*)&x165
);
};
SOURCE(2651, 21)
OneMinusXPowerRep←v11820 = (* (ptr) &fc8 );
SOURCE(2674, 153)
{
register word i←v11864;
i←v11864 = 1;
lab←L100003: ;
{
word PreviousVal←v11908;
SOURCE(2702, 21)
PreviousVal←v11908 = x←v6280;
SOURCE(2725, 47)
{
word x166;
word x167;
*(float*)&OneMinusXPowerRep←v11820 = (
x166 = OneMinusXPowerRep←v11820, *(float*)&x166
) * (
x167 = OneMinusX←v11792, *(float*)&x167
);
};
SOURCE(2774, 27)
{
word x168;
word x169;
*(float*)&x←v6280 = (
x168 = x←v6280, *(float*)&x168
) - ((
x169 = OneMinusXPowerRep←v11820, *(float*)&x169
) / (float)(unsigned)i←v11864);
};
SOURCE(2803, 24)
{
word x170;
word x171;
if (((
x170 = x←v6280, *(float*)&x170
) == (
x171 = PreviousVal←v11908, *(float*)&x171
))) {
SOURCE(2827, 4)
goto lab←L100001;
};
};
};
i←v11864 = (i←v11864 + 1);
goto lab←L100003;
lab←L100001: ;
};
SOURCE(2843, 9)
return(x←v6280);
}
static word SqRt←P300(a←v6384)
word a←v6384;
{
register ptr gf←c22108 = (ptr) &globalframe;
word b←v6428;
/* SqRt: */
SOURCE(2858, 552)
SOURCE(2858, 552)
b←v6428 = (* (ptr) &fc112 );
{
word x172;
word x173;
if (((
x172 = a←v6384, *(float*)&x172
) <= (
x173 = (* (ptr) &fc112 ), *(float*)&x173
))) {
SOURCE(2945, 23)
{
word x174;
word x175;
if (((
x174 = a←v6384, *(float*)&x174
) < (
x175 = (* (ptr) &fc112 ), *(float*)&x175
))) {
SOURCE(2961, 7)
(void) Bomb←P60(a←v6384, 0);
};
};
SOURCE(2970, 7)
b←v6428 = (* (ptr) &fc112 );
}
else {
if (((((unsigned)a←v6384 << 1) >> 24) == 0)) {
SOURCE(3017, 52)
{
word x176;
word x178;
float tf179;
word x180;
word x182;
*(float*)&b←v6428 = (
x180 = (word) SqRt←P300((
tf179 = (
x176 = a←v6384, *(float*)&x176
) * (
x178 = (* (ptr) &fc177 ), *(float*)&x178
), *(word*)&tf179
)), *(float*)&x180
) / (
x182 = (* (ptr) &fc181 ), *(float*)&x182
);
};
}
else {
SOURCE(3082, 330)
{
word aFmt←v11952;
word bFmt←v11980;
word aExp←v12008;
SOURCE(3084, 42)
aFmt←v11952 = a←v6384;
SOURCE(3128, 62)
bFmt←v11980 = (* ((( (ptr) gf←c22108)+135)/* var←c20092 */ +(((unsigned)aFmt←v11952 << 8) >> 27)) );
SOURCE(3192, 27)
aExp←v12008 = (((unsigned)aFmt←v11952 << 1) >> 25);
SOURCE(3221, 31)
{
word idx183;
bFmt←v11980 = (bFmt←v11980 & 2155872255) | (((
idx183 = (word) (((((unsigned)bFmt←v11980 << 1) >> 24) + aExp←v12008) - 63),
BCK(idx183, 256)
)) << 23);
};
SOURCE(3254, 24)
b←v6428 = bFmt←v11980;
SOURCE(3280, 64)
{
word x184;
word x185;
word x186;
float tf187;
b←v6428 = ((
tf187 = (
x184 = b←v6428, *(float*)&x184
) + ((
x185 = a←v6384, *(float*)&x185
) / (
x186 = b←v6428, *(float*)&x186
)), *(word*)&tf187
) - 8388608);
};
SOURCE(3346, 64)
{
word x188;
word x189;
word x190;
float tf191;
b←v6428 = ((
tf191 = (
x188 = b←v6428, *(float*)&x188
) + ((
x189 = a←v6384, *(float*)&x189
) / (
x190 = b←v6428, *(float*)&x190
)), *(word*)&tf191
) - 8388608);
};
};
};
};
};
SOURCE(2858, 552)
return(b←v6428);
}
static word Root←P360(index←v6524, arg←v6552)
word index←v6524;
word arg←v6552;
{
word var←c6596;
/* Root: */
SOURCE(4059, 82)
SOURCE(4115, 26)
{
word var←c20348;
{
word x192;
word x193;
*(float*)&var←c20348 = (
x192 = (word) Ln←P240(arg←v6552), *(float*)&x192
) / (
x193 = index←v6524, *(float*)&x193
);
};
return((word) Exp←P120(var←c20348));
};
}
static word Power←P420(base←v6656, exponent←v6684)
word base←v6656;
word exponent←v6684;
{
word var←c6728;
/* Power: */
SOURCE(4147, 155)
SOURCE(4208, 62)
{
word x194;
word x195;
if (((
x194 = base←v6656, *(float*)&x194
) == (
x195 = (* (ptr) &fc112 ), *(float*)&x195
))) {
SOURCE(4225, 45)
{
word x196;
word x197;
if (((
x196 = exponent←v6684, *(float*)&x196
) == (
x197 = (* (ptr) &fc112 ), *(float*)&x197
))) {
SOURCE(4246, 15)
return((* (ptr) &fc8 ));
}
else {
SOURCE(4261, 9)
return((* (ptr) &fc112 ));
};
};
};
};
SOURCE(4272, 30)
{
word var←c20412;
{
word x198;
word x199;
*(float*)&var←c20412 = (
x198 = exponent←v6684, *(float*)&x198
) * (
x199 = (word) Ln←P240(base←v6656), *(float*)&x199
);
};
return((word) Exp←P120(var←c20412));
};
}
static word Sin←P480(radians←v6788)
word radians←v6788;
{
register ptr gf←c22140 = (ptr) &globalframe;
word sin←v6832;
/* Sin: */
SOURCE(4308, 849)
SOURCE(4363, 794)
SOURCE(4365, 24)
{
word rem←v12052;
SOURCE(4365, 24)
{
float tf200;
word x201;
float tf202;
rem←v12052 = (
tf202 = FABS((
x201 = radians←v6788, *(float*)&x201
), tf200), *(word*)&tf202
);
};
SOURCE(4391, 45)
{
word x203;
word x204;
if (((
x203 = rem←v12052, *(float*)&x203
) > (
x204 = (* (( (ptr) gf←c22140)+5)/* twoPI←v3000 */ ), *(float*)&x204
))) {
SOURCE(4411, 25)
rem←v12052 = (word) GetWithinTwoPI←P2700(rem←v12052);
};
};
SOURCE(4438, 690)
SOURCE(4440, 392)
{
word var←c20444;
{
word pd205;
word x206;
word x207;
float tf208;
pd205 = (* (( (ptr) (* (( (ptr) gf←c22140)+169)/* var←c20220 */ ))+8) );
var←c20444 = (word) ( *( (fPt) ((* (ptr) pd205 ))))((
tf208 = (
x206 = rem←v12052, *(float*)&x206
) * (
x207 = (* (( (ptr) gf←c22140)+14)/* fourOverPI←v3280 */ ), *(float*)&x207
), *(word*)&tf208
), pd205);
};
switch (var←c20444) {
case 0:
SOURCE(4510, 12)
goto lab←L100005;
case 1:
SOURCE(4531, 20)
{
word x209;
word x210;
*(float*)&rem←v12052 = (
x209 = (* (( (ptr) gf←c22140)+6)/* piHalves←v3028 */ ), *(float*)&x209
) - (
x210 = rem←v12052, *(float*)&x210
);
};
SOURCE(4553, 12)
goto lab←L100007;
case 2:
SOURCE(4574, 20)
{
word x211;
word x212;
*(float*)&rem←v12052 = (
x211 = rem←v12052, *(float*)&x211
) - (
x212 = (* (( (ptr) gf←c22140)+6)/* piHalves←v3028 */ ), *(float*)&x212
);
};
SOURCE(4596, 12)
goto lab←L100007;
case 3:
SOURCE(4617, 14)
{
word x213;
word x214;
*(float*)&rem←v12052 = (
x213 = (* (ptr) &fc12 ), *(float*)&x213
) - (
x214 = rem←v12052, *(float*)&x214
);
};
SOURCE(4633, 12)
goto lab←L100005;
case 4:
SOURCE(4654, 14)
{
word x215;
word x216;
*(float*)&rem←v12052 = (
x215 = rem←v12052, *(float*)&x215
) - (
x216 = (* (ptr) &fc12 ), *(float*)&x216
);
};
SOURCE(4670, 12)
goto lab←L100006;
case 5:
SOURCE(4691, 19)
{
word x217;
word x218;
*(float*)&rem←v12052 = (
x217 = (* (( (ptr) gf←c22140)+7)/* pi3ovr2←v3056 */ ), *(float*)&x217
) - (
x218 = rem←v12052, *(float*)&x218
);
};
SOURCE(4712, 12)
goto lab←L100008;
case 6:
SOURCE(4733, 19)
{
word x219;
word x220;
*(float*)&rem←v12052 = (
x219 = rem←v12052, *(float*)&x219
) - (
x220 = (* (( (ptr) gf←c22140)+7)/* pi3ovr2←v3056 */ ), *(float*)&x220
);
};
SOURCE(4754, 12)
goto lab←L100008;
case 7:
SOURCE(4775, 17)
{
word x221;
word x222;
*(float*)&rem←v12052 = (
x221 = (* (( (ptr) gf←c22140)+5)/* twoPI←v3000 */ ), *(float*)&x221
) - (
x222 = rem←v12052, *(float*)&x222
);
};
SOURCE(4794, 12)
goto lab←L100006;
default:
SOURCE(4820, 12)
return((* (ptr) &fc112 ));
};
};
/* c2c skipped dead code */
lab←L100005: ;
SOURCE(4851, 25)
sin←v6832 = (word) SinFirstOctant←P2580(rem←v12052);
SOURCE(4878, 22)
{
word x223;
word x224;
if (((
x223 = radians←v6788, *(float*)&x223
) < (
x224 = (* (ptr) &fc112 ), *(float*)&x224
))) {
SOURCE(4900, 9)
goto lab←L100004;
};
};
goto lab←L100009;
lab←L100006: ;
SOURCE(4923, 25)
sin←v6832 = (word) SinFirstOctant←P2580(rem←v12052);
SOURCE(4950, 22)
{
word x225;
word x226;
if (((
x225 = radians←v6788, *(float*)&x225
) > (
x226 = (* (ptr) &fc112 ), *(float*)&x226
))) {
SOURCE(4972, 9)
goto lab←L100004;
};
};
goto lab←L100009;
lab←L100007: ;
SOURCE(4995, 25)
sin←v6832 = (word) CosFirstOctant←P2640(rem←v12052);
SOURCE(5022, 22)
{
word x227;
word x228;
if (((
x227 = radians←v6788, *(float*)&x227
) < (
x228 = (* (ptr) &fc112 ), *(float*)&x228
))) {
SOURCE(5044, 9)
goto lab←L100004;
};
};
goto lab←L100009;
lab←L100008: ;
SOURCE(5067, 25)
sin←v6832 = (word) CosFirstOctant←P2640(rem←v12052);
SOURCE(5094, 22)
{
word x229;
word x230;
if (((
x229 = radians←v6788, *(float*)&x229
) > (
x230 = (* (ptr) &fc112 ), *(float*)&x230
))) {
SOURCE(5116, 9)
goto lab←L100004;
};
};
lab←L100009: ;
};
goto lab←L100010;
lab←L100004: ;
SOURCE(5144, 11)
{
word x231;
*(float*)&sin←v6832 = - (
x231 = sin←v6832, *(float*)&x231
);
};
lab←L100010: ;
SOURCE(4308, 849)
return(sin←v6832);
}
static word Cos←P540(radians←v6892)
word radians←v6892;
{
register ptr gf←c22172 = (ptr) &globalframe;
word cos←v6936;
word rem←v12096;
/* Cos: */
SOURCE(5161, 709)
SOURCE(5218, 24)
{
float tf232;
word x233;
float tf234;
rem←v12096 = (
tf234 = FABS((
x233 = radians←v6892, *(float*)&x233
), tf232), *(word*)&tf234
);
};
SOURCE(5244, 45)
{
word x235;
word x236;
if (((
x235 = rem←v12096, *(float*)&x235
) > (
x236 = (* (( (ptr) gf←c22172)+5)/* twoPI←v3000 */ ), *(float*)&x236
))) {
SOURCE(5264, 25)
rem←v12096 = (word) GetWithinTwoPI←P2700(rem←v12096);
};
};
SOURCE(5291, 579)
SOURCE(5293, 389)
{
word var←c20476;
{
word pd237;
word x238;
word x239;
float tf240;
pd237 = (* (( (ptr) (* (( (ptr) gf←c22172)+169)/* var←c20220 */ ))+8) );
var←c20476 = (word) ( *( (fPt) ((* (ptr) pd237 ))))((
tf240 = (
x238 = rem←v12096, *(float*)&x238
) * (
x239 = (* (( (ptr) gf←c22172)+14)/* fourOverPI←v3280 */ ), *(float*)&x239
), *(word*)&tf240
), pd237);
};
switch (var←c20476) {
case 0:
SOURCE(5363, 12)
goto lab←L100013;
case 1:
SOURCE(5384, 20)
{
word x241;
word x242;
*(float*)&rem←v12096 = (
x241 = (* (( (ptr) gf←c22172)+6)/* piHalves←v3028 */ ), *(float*)&x241
) - (
x242 = rem←v12096, *(float*)&x242
);
};
SOURCE(5406, 12)
goto lab←L100011;
case 2:
SOURCE(5427, 20)
{
word x243;
word x244;
*(float*)&rem←v12096 = (
x243 = rem←v12096, *(float*)&x243
) - (
x244 = (* (( (ptr) gf←c22172)+6)/* piHalves←v3028 */ ), *(float*)&x244
);
};
SOURCE(5449, 12)
goto lab←L100012;
case 3:
SOURCE(5470, 14)
{
word x245;
word x246;
*(float*)&rem←v12096 = (
x245 = (* (ptr) &fc12 ), *(float*)&x245
) - (
x246 = rem←v12096, *(float*)&x246
);
};
SOURCE(5486, 12)
goto lab←L100014;
case 4:
SOURCE(5507, 14)
{
word x247;
word x248;
*(float*)&rem←v12096 = (
x247 = rem←v12096, *(float*)&x247
) - (
x248 = (* (ptr) &fc12 ), *(float*)&x248
);
};
SOURCE(5523, 12)
goto lab←L100014;
case 5:
SOURCE(5544, 19)
{
word x249;
word x250;
*(float*)&rem←v12096 = (
x249 = (* (( (ptr) gf←c22172)+7)/* pi3ovr2←v3056 */ ), *(float*)&x249
) - (
x250 = rem←v12096, *(float*)&x250
);
};
SOURCE(5565, 12)
goto lab←L100012;
case 6:
SOURCE(5586, 19)
{
word x251;
word x252;
*(float*)&rem←v12096 = (
x251 = rem←v12096, *(float*)&x251
) - (
x252 = (* (( (ptr) gf←c22172)+7)/* pi3ovr2←v3056 */ ), *(float*)&x252
);
};
SOURCE(5607, 12)
goto lab←L100011;
case 7:
SOURCE(5628, 17)
{
word x253;
word x254;
*(float*)&rem←v12096 = (
x253 = (* (( (ptr) gf←c22172)+5)/* twoPI←v3000 */ ), *(float*)&x253
) - (
x254 = rem←v12096, *(float*)&x254
);
};
SOURCE(5647, 12)
goto lab←L100013;
default:
SOURCE(5673, 9)
cos←v6936 = (* (ptr) &fc8 );
break;
};
};
goto lab←L100015;
lab←L100011: ;
SOURCE(5701, 25)
cos←v6936 = (word) SinFirstOctant←P2580(rem←v12096);
goto lab←L100015;
lab←L100012: ;
SOURCE(5740, 25)
cos←v6936 = (word) SinFirstOctant←P2580(rem←v12096);
SOURCE(5767, 10)
{
word x255;
*(float*)&cos←v6936 = - (
x255 = cos←v6936, *(float*)&x255
);
};
goto lab←L100015;
lab←L100013: ;
SOURCE(5791, 25)
cos←v6936 = (word) CosFirstOctant←P2640(rem←v12096);
goto lab←L100015;
lab←L100014: ;
SOURCE(5830, 25)
cos←v6936 = (word) CosFirstOctant←P2640(rem←v12096);
SOURCE(5857, 10)
{
word x256;
*(float*)&cos←v6936 = - (
x256 = cos←v6936, *(float*)&x256
);
};
lab←L100015: ;
SOURCE(5161, 709)
return(cos←v6936);
}
static word SinDeg←P600(degrees←v6996)
word degrees←v6996;
{
register ptr gf←c22204 = (ptr) &globalframe;
word sin←v7040;
/* SinDeg: */
SOURCE(5877, 155)
SOURCE(5937, 58)
{
float tf257;
word x258;
word x259;
if ((FABS((
x258 = degrees←v6996, *(float*)&x258
), tf257) > (
x259 = (* (ptr) &fc35 ), *(float*)&x259
))) {
SOURCE(5964, 31)
degrees←v6996 = (word) GetWithin360←P2760(degrees←v6996);
};
};
SOURCE(5997, 35)
{
word x260;
word x261;
float tf262;
sin←v7040 = (word) Sin←P480((
tf262 = (
x260 = degrees←v6996, *(float*)&x260
) * (
x261 = (* (( (ptr) gf←c22204)+10)/* radiansPerDegree←v3168 */ ), *(float*)&x261
), *(word*)&tf262
));
};
SOURCE(5877, 155)
return(sin←v7040);
}
static word CosDeg←P660(degrees←v7100)
word degrees←v7100;
{
register ptr gf←c22236 = (ptr) &globalframe;
word cos←v7144;
/* CosDeg: */
SOURCE(6038, 174)
SOURCE(6098, 22)
{
float tf263;
word x264;
float tf265;
degrees←v7100 = (
tf265 = FABS((
x264 = degrees←v7100, *(float*)&x264
), tf263), *(word*)&tf265
);
};
SOURCE(6122, 53)
{
word x266;
word x267;
if (((
x266 = degrees←v7100, *(float*)&x266
) > (
x267 = (* (ptr) &fc35 ), *(float*)&x267
))) {
SOURCE(6144, 31)
degrees←v7100 = (word) GetWithin360←P2760(degrees←v7100);
};
};
SOURCE(6177, 35)
{
word x268;
word x269;
float tf270;
cos←v7144 = (word) Cos←P540((
tf270 = (
x268 = degrees←v7100, *(float*)&x268
) * (
x269 = (* (( (ptr) gf←c22236)+10)/* radiansPerDegree←v3168 */ ), *(float*)&x269
), *(word*)&tf270
));
};
SOURCE(6038, 174)
return(cos←v7144);
}
static word Tan←P720(radians←v7204)
word radians←v7204;
{
word tan←v7248;
/* Tan: */
SOURCE(6218, 87)
SOURCE(6275, 30)
return((word) TanCot←P840(radians←v7204, 0));
}
static word CoTan←P780(radians←v7308)
word radians←v7308;
{
word cotan←v7352;
/* CoTan: */
SOURCE(6311, 90)
SOURCE(6372, 29)
return((word) TanCot←P840(radians←v7308, 1));
}
static word TanCot←P840(x←v7412, cot←v7440)
word x←v7412;
word cot←v7440;
{
register ptr gf←c22268 = (ptr) &globalframe;
word tan←v7484;
word xn←v12196;
word f←v12224;
word g←v12252;
word num←v12280;
word den←v12308;
word n←v12336;
/* TanCot: */
SOURCE(6407, 605)
SOURCE(6688, 27)
{
word pd271;
word x272;
word x273;
float tf274;
pd271 = (* (( (ptr) (* (( (ptr) gf←c22268)+167)/* var←c20124 */ ))+6) );
n←v12336 = (word) ( *( (fPt) ((* (ptr) pd271 ))))((
tf274 = (
x272 = (* (( (ptr) gf←c22268)+15)/* twoOverPI←v3308 */ ), *(float*)&x272
) * (
x273 = x←v7412, *(float*)&x273
), *(word*)&tf274
), pd271);
};
SOURCE(6717, 12)
{
float tf275;
xn←v12196 = (
tf275 = (float)(int)n←v12336, *(word*)&tf275
);
};
SOURCE(6731, 23)
{
word x276;
word x277;
word x279;
word x281;
word x282;
word x284;
*(float*)&f←v12224 = ((
x276 = x←v7412, *(float*)&x276
) - ((
x277 = xn←v12196, *(float*)&x277
) * ((
x279 = (* (ptr) &fc278 ), *(float*)&x279
) / (
x281 = (* (ptr) &fc280 ), *(float*)&x281
)))) - ((
x282 = xn←v12196, *(float*)&x282
) * (
x284 = (* (ptr) &fc283 ), *(float*)&x284
));
};
SOURCE(6756, 106)
{
float tf285;
word x286;
word x287;
if ((FABS((
x286 = f←v12224, *(float*)&x286
), tf285) < (
x287 = (* (( (ptr) gf←c22268)+18)/* sqrtEps←v3392 */ ), *(float*)&x287
))) {
SOURCE(6783, 7)
num←v12280 = f←v12224;
SOURCE(6792, 9)
den←v12308 = (* (ptr) &fc8 );
}
else {
SOURCE(6812, 7)
{
word x288;
word x289;
*(float*)&g←v12252 = (
x288 = f←v12224, *(float*)&x288
) * (
x289 = f←v12224, *(float*)&x289
);
};
SOURCE(6821, 16)
{
word x290;
word x291;
word x292;
word x294;
*(float*)&num←v12280 = (
x290 = f←v12224, *(float*)&x290
) + (((
x291 = f←v12224, *(float*)&x291
) * (
x292 = g←v12252, *(float*)&x292
)) * (
x294 = (* (ptr) &fc293 ), *(float*)&x294
));
};
SOURCE(6839, 23)
{
word x296;
word x297;
word x299;
word x300;
word x301;
*(float*)&den←v12308 = ((((
x296 = (* (ptr) &fc295 ), *(float*)&x296
) * (
x297 = g←v12252, *(float*)&x297
)) + (
x299 = (* (ptr) &fc298 ), *(float*)&x299
)) * (
x300 = g←v12252, *(float*)&x300
)) + (
x301 = (* (ptr) &fc8 ), *(float*)&x301
);
};
};
};
SOURCE(6867, 145)
if ((0 != cot←v7440)) {
SOURCE(6880, 62)
if ((0 != (n←v12336 & 1))) {
SOURCE(6905, 22)
{
word x302;
word x303;
float tf304;
return((
tf304 = ( - (
x302 = num←v12280, *(float*)&x302
)) / (
x303 = den←v12308, *(float*)&x303
), *(word*)&tf304
));
};
}
else {
SOURCE(6927, 15)
{
word x305;
word x306;
float tf307;
return((
tf307 = (
x305 = den←v12308, *(float*)&x305
) / (
x306 = num←v12280, *(float*)&x306
), *(word*)&tf307
));
};
};
}
else {
SOURCE(6950, 62)
if ((0 != (n←v12336 & 1))) {
SOURCE(6975, 22)
{
word x308;
word x309;
float tf310;
return((
tf310 = ( - (
x308 = den←v12308, *(float*)&x308
)) / (
x309 = num←v12280, *(float*)&x309
), *(word*)&tf310
));
};
}
else {
SOURCE(6997, 15)
{
word x311;
word x312;
float tf313;
return((
tf313 = (
x311 = num←v12280, *(float*)&x311
) / (
x312 = den←v12308, *(float*)&x312
), *(word*)&tf313
));
};
};
};
}
static word TanDeg←P900(degrees←v7544)
word degrees←v7544;
{
word tan←v7588;
/* TanDeg: */
SOURCE(7019, 159)
SOURCE(7079, 58)
{
float tf314;
word x315;
word x316;
if ((FABS((
x315 = degrees←v7544, *(float*)&x315
), tf314) > (
x316 = (* (ptr) &fc35 ), *(float*)&x316
))) {
SOURCE(7106, 31)
degrees←v7544 = (word) GetWithin360←P2760(degrees←v7544);
};
};
SOURCE(7139, 39)
{
word x317;
word x318;
*(float*)&tan←v7588 = (
x317 = (word) SinDeg←P600(degrees←v7544), *(float*)&x317
) / (
x318 = (word) CosDeg←P660(degrees←v7544), *(float*)&x318
);
};
SOURCE(7019, 159)
return(tan←v7588);
}
static word CoTanDeg←P960(degrees←v7648)
word degrees←v7648;
{
register ptr gf←c22300 = (ptr) &globalframe;
word cotan←v7692;
/* CoTanDeg: */
SOURCE(7184, 163)
SOURCE(7248, 58)
{
float tf319;
word x320;
word x321;
if ((FABS((
x320 = degrees←v7648, *(float*)&x320
), tf319) > (
x321 = (* (ptr) &fc35 ), *(float*)&x321
))) {
SOURCE(7275, 31)
degrees←v7648 = (word) GetWithin360←P2760(degrees←v7648);
};
};
SOURCE(7308, 39)
{
word x322;
word x323;
float tf324;
cotan←v7692 = (word) CoTan←P780((
tf324 = (
x322 = degrees←v7648, *(float*)&x322
) * (
x323 = (* (( (ptr) gf←c22300)+10)/* radiansPerDegree←v3168 */ ), *(float*)&x323
), *(word*)&tf324
));
};
SOURCE(7184, 163)
return(cotan←v7692);
}
static word ArcSin←P1020(x←v7752)
word x←v7752;
{
register ptr gf←c22332 = (ptr) &globalframe;
word var←c7796;
word z←v12464;
/* ArcSin: */
SOURCE(7353, 280)
SOURCE(7413, 220)
{
word var←c20572;
{
float tf325;
word x326;
float tf327;
z←v12464 = (
tf327 = FABS((
x326 = x←v7752, *(float*)&x326
), tf325), *(word*)&tf327
);
};
var←c20572 = z←v12464;
{
word x328;
word x329;
word x330;
word x331;
if (((
x328 = var←c20572, *(float*)&x328
) < (
x329 = (* (( (ptr) gf←c22332)+18)/* sqrtEps←v3392 */ ), *(float*)&x329
))) {
SOURCE(7451, 9)
return(x←v7752);
}
else {
if (((
x330 = var←c20572, *(float*)&x330
) < (
x331 = (* (ptr) &fc104 ), *(float*)&x331
))) {
SOURCE(7537, 32)
{
word var←c20636;
{
word x332;
word x333;
word x334;
float tf335;
var←c20636 = (word) SqRt←P300((
tf335 = (
/*1*/ x332 = (* (ptr) &fc8 ), *(float*)&x332
/*1*/ ) - ((
/*1*/ x333 = z←v12464, *(float*)&x333
/*1*/ ) * (
/*1*/ x334 = z←v12464, *(float*)&x334
/*1*/ )), *(word*)&tf335
));
};
return((word) ArcTan←P1260(x←v7752, var←c20636));
};
}
else {
SOURCE(7587, 46)
{
word var←c20700;
{
word x336;
word x337;
word x338;
word x339;
word x340;
word x341;
word x342;
float tf343;
var←c20700 = (word) SqRt←P300((
tf343 = ((
/*1*/ x336 = (* (ptr) &fc14 ), *(float*)&x336
/*1*/ ) * ((
/*1*/ x337 = (* (ptr) &fc8 ), *(float*)&x337
/*1*/ ) - (
/*1*/ x338 = z←v12464, *(float*)&x338
/*1*/ ))) - (((
/*1*/ x339 = (* (ptr) &fc8 ), *(float*)&x339
/*1*/ ) - (
/*1*/ x340 = z←v12464, *(float*)&x340
/*1*/ )) * ((
/*1*/ x341 = (* (ptr) &fc8 ), *(float*)&x341
/*1*/ ) - (
/*1*/ x342 = z←v12464, *(float*)&x342
/*1*/ ))), *(word*)&tf343
));
};
return((word) ArcTan←P1260(x←v7752, var←c20700));
};
};
};
};
};
}
static word ArcCos←P1080(x←v7856)
word x←v7856;
{
word var←c7900;
/* ArcCos: */
SOURCE(7643, 120)
SOURCE(7692, 71)
{
word x344;
word x346;
if (((
x344 = x←v7856, *(float*)&x344
) == (
x346 = (* (ptr) &fc345 ), *(float*)&x346
))) {
return((* (ptr) &fc12 ));
}
else {
{
word var←c0389;
{
word var←c20764;
{
word x347;
word x348;
word x349;
word x350;
float tf351;
var←c20764 = (word) SqRt←P300((
tf351 = ((
x347 = (* (ptr) &fc8 ), *(float*)&x347
) - (
x348 = x←v7856, *(float*)&x348
)) / ((
x349 = (* (ptr) &fc8 ), *(float*)&x349
) + (
x350 = x←v7856, *(float*)&x350
)), *(word*)&tf351
));
};
{
word x352;
word x353;
*(float*)&var←c0389 = (
x352 = (* (ptr) &fc14 ), *(float*)&x352
) * (
x353 = (word) ArcTan←P1260(var←c20764, (* (ptr) &fc8 )), *(float*)&x353
);
};
};
return(var←c0389);
};
};
};
}
static word ArcSinDeg←P1140(x←v7960)
word x←v7960;
{
register ptr gf←c22364 = (ptr) &globalframe;
word degrees←v8004;
/* ArcSinDeg: */
SOURCE(7769, 97)
SOURCE(7830, 36)
{
word x354;
word x355;
*(float*)°rees←v8004 = (
x354 = (word) ArcSin←P1020(x←v7960), *(float*)&x354
) * (
x355 = (* (( (ptr) gf←c22364)+11)/* degreesPerRadian←v3196 */ ), *(float*)&x355
);
};
SOURCE(7769, 97)
return(degrees←v8004);
}
static word ArcCosDeg←P1200(x←v8064)
word x←v8064;
{
register ptr gf←c22396 = (ptr) &globalframe;
word degrees←v8108;
/* ArcCosDeg: */
SOURCE(7872, 97)
SOURCE(7933, 36)
{
word x356;
word x357;
*(float*)°rees←v8108 = (
x356 = (word) ArcCos←P1080(x←v8064), *(float*)&x356
) * (
x357 = (* (( (ptr) gf←c22396)+11)/* degreesPerRadian←v3196 */ ), *(float*)&x357
);
};
SOURCE(7872, 97)
return(degrees←v8108);
}
static word ArcTan←P1260(y←v8168, x←v8196)
word y←v8168;
word x←v8196;
{
register ptr gf←c22428 = (ptr) &globalframe;
word radians←v8240;
word s←v12508;
word v←v12536;
word t←v12564;
word t2←v12592;
word c←v12620;
word q←v12648;
/* ArcTan: */
SOURCE(8327, 676)
SOURCE(8413, 138)
{
float tf358;
word x359;
word x361;
if ((FABS((
x359 = x←v8196, *(float*)&x359
), tf358) <= (
x361 = (* (ptr) &fc360 ), *(float*)&x361
))) {
SOURCE(8448, 103)
{
float tf362;
word x363;
word x364;
if ((FABS((
x363 = y←v8168, *(float*)&x363
), tf362) <= (
x364 = (* (ptr) &fc360 ), *(float*)&x364
))) {
SOURCE(8483, 15)
return((* (ptr) &fc112 ));
}
else {
SOURCE(8498, 53)
{
word x365;
word x366;
if (((
x365 = y←v8168, *(float*)&x365
) < (
x366 = (* (ptr) &fc112 ), *(float*)&x366
))) {
SOURCE(8512, 23)
{
word x367;
float tf368;
return((
tf368 = - (
/*1*/ x367 = (* (( (ptr) gf←c22428)+6)/* piHalves←v3028 */ ), *(float*)&x367
/*1*/ ), *(word*)&tf368
));
};
}
else {
SOURCE(8535, 16)
return((* (( (ptr) gf←c22428)+6)/* piHalves←v3028 */ ));
};
};
};
};
};
};
SOURCE(8553, 120)
{
word x369;
word x370;
if (((
x369 = x←v8196, *(float*)&x369
) < (
x370 = (* (ptr) &fc112 ), *(float*)&x370
))) {
SOURCE(8567, 51)
{
word x371;
word x372;
if (((
x371 = y←v8168, *(float*)&x371
) < (
x372 = (* (ptr) &fc112 ), *(float*)&x372
))) {
SOURCE(8582, 7)
q←v12648 = (* (ptr) &fc373 );
SOURCE(8591, 5)
s←v12508 = (* (ptr) &fc8 );
}
else {
SOURCE(8604, 6)
q←v12648 = (* (ptr) &fc12 );
SOURCE(8612, 6)
s←v12508 = (* (ptr) &fc345 );
};
};
}
else {
SOURCE(8625, 48)
{
word x374;
word x375;
if (((
x374 = y←v8168, *(float*)&x374
) < (
x375 = (* (ptr) &fc112 ), *(float*)&x375
))) {
SOURCE(8640, 5)
q←v12648 = (* (ptr) &fc112 );
SOURCE(8647, 6)
s←v12508 = (* (ptr) &fc345 );
}
else {
SOURCE(8661, 5)
q←v12648 = (* (ptr) &fc112 );
SOURCE(8668, 5)
s←v12508 = (* (ptr) &fc8 );
};
};
};
};
SOURCE(8676, 12)
{
float tf376;
word x377;
word x378;
float tf379;
v←v12536 = (
tf379 = FABS(((
x377 = y←v8168, *(float*)&x377
) / (
x378 = x←v8196, *(float*)&x378
)), tf376), *(word*)&tf379
);
};
SOURCE(8690, 244)
{
word var←c20796;
var←c20796 = v←v12536;
{
word x381;
word x383;
word x384;
word x386;
word x391;
word x393;
word x400;
word x402;
if (((
x381 = var←c20796, *(float*)&x381
) < (
x383 = (* (ptr) &fc382 ), *(float*)&x383
))) {
SOURCE(8719, 5)
t←v12564 = v←v12536;
SOURCE(8727, 5)
c←v12620 = (* (ptr) &fc112 );
goto endif0380;
};
if (((
x384 = var←c20796, *(float*)&x384
) < (
x386 = (* (ptr) &fc385 ), *(float*)&x386
))) {
SOURCE(8750, 21)
{
word x387;
word x388;
word x389;
word x390;
*(float*)&t←v12564 = (
x387 = (* (( (ptr) gf←c22428)+19)/* x2←v4008 */ ), *(float*)&x387
) - ((
x388 = (* (( (ptr) gf←c22428)+20)/* x22←v4036 */ ), *(float*)&x388
) / ((
x389 = (* (( (ptr) gf←c22428)+19)/* x2←v4008 */ ), *(float*)&x389
) + (
x390 = v←v12536, *(float*)&x390
)));
};
SOURCE(8773, 13)
c←v12620 = (* (( (ptr) gf←c22428)+9)/* piEighths←v3140 */ );
goto endif0380;
};
if (((
x391 = var←c20796, *(float*)&x391
) < (
x393 = (* (ptr) &fc392 ), *(float*)&x393
))) {
SOURCE(8804, 21)
{
word x394;
word x395;
word x396;
word x397;
*(float*)&t←v12564 = (
x394 = (* (ptr) &fc8 ), *(float*)&x394
) - ((
x395 = (* (( (ptr) gf←c22428)+21)/* x44←v4120 */ ), *(float*)&x395
) / ((
x396 = (* (ptr) &fc8 ), *(float*)&x396
) + (
x397 = v←v12536, *(float*)&x397
)));
};
SOURCE(8827, 13)
{
word x398;
word x399;
*(float*)&c←v12620 = (
x398 = (* (ptr) &fc12 ), *(float*)&x398
) / (
x399 = (* (ptr) &fc22 ), *(float*)&x399
);
};
goto endif0380;
};
if (((
x400 = var←c20796, *(float*)&x400
) < (
x402 = (* (ptr) &fc401 ), *(float*)&x402
))) {
SOURCE(8858, 21)
{
word x403;
word x404;
word x405;
word x406;
*(float*)&t←v12564 = (
x403 = (* (( (ptr) gf←c22428)+22)/* x6←v4176 */ ), *(float*)&x403
) - ((
x404 = (* (( (ptr) gf←c22428)+23)/* x66←v4204 */ ), *(float*)&x404
) / ((
x405 = (* (( (ptr) gf←c22428)+22)/* x6←v4176 */ ), *(float*)&x405
) + (
x406 = v←v12536, *(float*)&x406
)));
};
SOURCE(8881, 14)
c←v12620 = (* (( (ptr) gf←c22428)+8)/* pi3Eighths←v3084 */ );
goto endif0380;
};
SOURCE(8911, 8)
{
word x407;
word x408;
*(float*)&t←v12564 = (
x407 = (* (ptr) &fc345 ), *(float*)&x407
) / (
x408 = v←v12536, *(float*)&x408
);
};
SOURCE(8922, 12)
c←v12620 = (* (( (ptr) gf←c22428)+6)/* piHalves←v3028 */ );
goto endif0380;
endif0380: ;
};
};
SOURCE(8937, 8)
{
word x409;
word x410;
*(float*)&t2←v12592 = (
x409 = t←v12564, *(float*)&x409
) * (
x410 = t←v12564, *(float*)&x410
);
};
SOURCE(8947, 56)
{
word x411;
word x412;
word x414;
word x415;
word x417;
word x418;
word x420;
word x421;
word x423;
word x424;
word x425;
*(float*)&radians←v8240 = ((
x411 = s←v12508, *(float*)&x411
) * (((
x412 = t←v12564, *(float*)&x412
) * ((
x414 = (* (ptr) &fc413 ), *(float*)&x414
) + ((
x415 = t2←v12592, *(float*)&x415
) * ((
x417 = (* (ptr) &fc416 ), *(float*)&x417
) + ((
x418 = t2←v12592, *(float*)&x418
) * ((
x420 = (* (ptr) &fc419 ), *(float*)&x420
) + ((
x421 = t2←v12592, *(float*)&x421
) * (
x423 = (* (ptr) &fc422 ), *(float*)&x423
)))))))) + (
x424 = c←v12620, *(float*)&x424
))) + (
x425 = q←v12648, *(float*)&x425
);
};
SOURCE(8327, 676)
return(radians←v8240);
}
static word ArcTanDeg←P1320(y←v8300, x←v8328)
word y←v8300;
word x←v8328;
{
register ptr gf←c22460 = (ptr) &globalframe;
word degrees←v8372;
/* ArcTanDeg: */
SOURCE(9009, 103)
SOURCE(9073, 39)
{
word x426;
word x427;
*(float*)°rees←v8372 = (
x426 = (word) ArcTan←P1260(y←v8300, x←v8328), *(float*)&x426
) * (
x427 = (* (( (ptr) gf←c22460)+11)/* degreesPerRadian←v3196 */ ), *(float*)&x427
);
};
SOURCE(9009, 103)
return(degrees←v8372);
}
static word SinH←P1380(x←v8432)
word x←v8432;
{
word f←v8476;
word ex←v12692;
word emx←v12720;
/* SinH: */
SOURCE(9119, 104)
SOURCE(9169, 17)
ex←v12692 = (word) Exp←P120(x←v8432);
SOURCE(9188, 16)
{
word x428;
word x429;
*(float*)&emx←v12720 = (
x428 = (* (ptr) &fc8 ), *(float*)&x428
) / (
x429 = ex←v12692, *(float*)&x429
);
};
SOURCE(9206, 17)
{
word x430;
word x431;
word x432;
*(float*)&f←v8476 = ((
x430 = ex←v12692, *(float*)&x430
) - (
x431 = emx←v12720, *(float*)&x431
)) / (
x432 = (* (ptr) &fc14 ), *(float*)&x432
);
};
SOURCE(9119, 104)
return(f←v8476);
}
static word CosH←P1440(x←v8536)
word x←v8536;
{
word f←v8580;
word ex←v12764;
word emx←v12792;
/* CosH: */
SOURCE(9227, 104)
SOURCE(9277, 17)
ex←v12764 = (word) Exp←P120(x←v8536);
SOURCE(9296, 16)
{
word x433;
word x434;
*(float*)&emx←v12792 = (
x433 = (* (ptr) &fc8 ), *(float*)&x433
) / (
x434 = ex←v12764, *(float*)&x434
);
};
SOURCE(9314, 17)
{
word x435;
word x436;
word x437;
*(float*)&f←v8580 = ((
x435 = ex←v12764, *(float*)&x435
) + (
x436 = emx←v12792, *(float*)&x436
)) / (
x437 = (* (ptr) &fc14 ), *(float*)&x437
);
};
SOURCE(9227, 104)
return(f←v8580);
}
static word TanH←P1500(x←v8640)
word x←v8640;
{
word f←v8684;
/* TanH: */
SOURCE(9335, 167)
SOURCE(9385, 117)
{
float tf438;
word x439;
word x441;
if ((FABS((
x439 = x←v8640, *(float*)&x439
), tf438) > (
x441 = (* (ptr) &fc440 ), *(float*)&x441
))) {
SOURCE(9406, 36)
{
word x442;
word x444;
if (((
x442 = x←v8640, *(float*)&x442
) < (
x444 = (* (ptr) &fc443 ), *(float*)&x444
))) {
f←v8684 = (* (ptr) &fc445 );
}
else {
f←v8684 = (* (ptr) &fc446 );
};
};
}
else {
SOURCE(9442, 62)
{
word ex←v12836;
word emx←v12864;
SOURCE(9444, 17)
ex←v12836 = (word) Exp←P120(x←v8640);
SOURCE(9463, 16)
{
word x447;
word x448;
*(float*)&emx←v12864 = (
x447 = (* (ptr) &fc8 ), *(float*)&x447
) / (
x448 = ex←v12836, *(float*)&x448
);
};
SOURCE(9481, 21)
{
word x449;
word x450;
word x451;
word x452;
*(float*)&f←v8684 = ((
x449 = ex←v12836, *(float*)&x449
) - (
x450 = emx←v12864, *(float*)&x450
)) / ((
x451 = ex←v12836, *(float*)&x451
) + (
x452 = emx←v12864, *(float*)&x452
));
};
};
};
};
SOURCE(9335, 167)
return(f←v8684);
}
static word CotH←P1560(x←v8744)
word x←v8744;
{
word f←v8788;
/* CotH: */
SOURCE(9511, 167)
SOURCE(9561, 117)
{
float tf453;
word x454;
word x455;
if ((FABS((
x454 = x←v8744, *(float*)&x454
), tf453) > (
x455 = (* (ptr) &fc440 ), *(float*)&x455
))) {
SOURCE(9582, 36)
{
word x456;
word x457;
if (((
x456 = x←v8744, *(float*)&x456
) < (
x457 = (* (ptr) &fc443 ), *(float*)&x457
))) {
f←v8788 = (* (ptr) &fc445 );
}
else {
f←v8788 = (* (ptr) &fc446 );
};
};
}
else {
SOURCE(9618, 62)
{
word ex←v12908;
word emx←v12936;
SOURCE(9620, 17)
ex←v12908 = (word) Exp←P120(x←v8744);
SOURCE(9639, 16)
{
word x458;
word x459;
*(float*)&emx←v12936 = (
x458 = (* (ptr) &fc8 ), *(float*)&x458
) / (
x459 = ex←v12908, *(float*)&x459
);
};
SOURCE(9657, 21)
{
word x460;
word x461;
word x462;
word x463;
*(float*)&f←v8788 = ((
x460 = ex←v12908, *(float*)&x460
) + (
x461 = emx←v12936, *(float*)&x461
)) / ((
x462 = ex←v12908, *(float*)&x462
) - (
x463 = emx←v12936, *(float*)&x463
));
};
};
};
};
SOURCE(9511, 167)
return(f←v8788);
}
static word InvSinH←P1620(x←v8848)
word x←v8848;
{
word f←v8892;
/* InvSinH: */
SOURCE(9687, 76)
SOURCE(9740, 23)
{
word var←c20828;
{
word x464;
word x465;
word x466;
word x467;
float tf468;
word x469;
*(float*)&var←c20828 = (
x464 = x←v8848, *(float*)&x464
) + (
x469 = (word) SqRt←P300((
tf468 = ((
x465 = x←v8848, *(float*)&x465
) * (
x466 = x←v8848, *(float*)&x466
)) + (
x467 = (* (ptr) &fc8 ), *(float*)&x467
), *(word*)&tf468
)), *(float*)&x469
);
};
f←v8892 = (word) Ln←P240(var←c20828);
};
SOURCE(9687, 76)
return(f←v8892);
}
static word InvCosH←P1680(x←v8952)
word x←v8952;
{
word f←v8996;
/* InvCosH: */
SOURCE(9769, 101)
SOURCE(9822, 23)
{
word x470;
word x471;
if (((
x470 = x←v8952, *(float*)&x470
) < (
x471 = (* (ptr) &fc8 ), *(float*)&x471
))) {
SOURCE(9838, 7)
(void) Bomb←P60(x←v8952, 0);
};
};
SOURCE(9847, 23)
{
word var←c20860;
{
word x472;
word x473;
word x474;
word x475;
float tf476;
word x477;
*(float*)&var←c20860 = (
x472 = x←v8952, *(float*)&x472
) + (
x477 = (word) SqRt←P300((
tf476 = ((
x473 = x←v8952, *(float*)&x473
) * (
x474 = x←v8952, *(float*)&x474
)) - (
x475 = (* (ptr) &fc8 ), *(float*)&x475
), *(word*)&tf476
)), *(float*)&x477
);
};
f←v8996 = (word) Ln←P240(var←c20860);
};
SOURCE(9769, 101)
return(f←v8996);
}
static word InvTanH←P1740(x←v9056)
word x←v9056;
{
word f←v9100;
/* InvTanH: */
SOURCE(9876, 111)
SOURCE(9929, 29)
{
float tf478;
word x479;
word x480;
if ((FABS((
x479 = x←v9056, *(float*)&x479
), tf478) >= (
x480 = (* (ptr) &fc8 ), *(float*)&x480
))) {
SOURCE(9951, 7)
(void) Bomb←P60(x←v9056, 0);
};
};
SOURCE(9960, 27)
{
word x481;
word x482;
word x483;
word x484;
word x485;
float tf486;
word x487;
*(float*)&f←v9100 = (
x481 = (* (ptr) &fc104 ), *(float*)&x481
) * (
x487 = (word) Ln←P240((
tf486 = ((
x482 = (* (ptr) &fc8 ), *(float*)&x482
) + (
x483 = x←v9056, *(float*)&x483
)) / ((
x484 = (* (ptr) &fc8 ), *(float*)&x484
) - (
x485 = x←v9056, *(float*)&x485
)), *(word*)&tf486
)), *(float*)&x487
);
};
SOURCE(9876, 111)
return(f←v9100);
}
static word InvCotH←P1800(x←v9160)
word x←v9160;
{
word f←v9204;
/* InvCotH: */
SOURCE(9993, 111)
SOURCE(10046, 29)
{
float tf488;
word x489;
word x490;
if ((FABS((
x489 = x←v9160, *(float*)&x489
), tf488) <= (
x490 = (* (ptr) &fc8 ), *(float*)&x490
))) {
SOURCE(10068, 7)
(void) Bomb←P60(x←v9160, 0);
};
};
SOURCE(10077, 27)
{
word x491;
word x492;
word x493;
word x494;
word x495;
float tf496;
word x497;
*(float*)&f←v9204 = (
x491 = (* (ptr) &fc104 ), *(float*)&x491
) * (
x497 = (word) Ln←P240((
tf496 = ((
x492 = x←v9160, *(float*)&x492
) + (
x493 = (* (ptr) &fc8 ), *(float*)&x493
)) / ((
x494 = x←v9160, *(float*)&x494
) - (
x495 = (* (ptr) &fc8 ), *(float*)&x495
)), *(word*)&tf496
)), *(float*)&x497
);
};
SOURCE(9993, 111)
return(f←v9204);
}
static word LnGamma←P1860(x←v9264)
word x←v9264;
{
register ptr gf←c22492 = (ptr) &globalframe;
word f←v9308;
word phi←v12980;
word lnAdjFact←v13008;
/* LnGamma: */
SOURCE(10110, 392)
SOURCE(10174, 19)
lnAdjFact←v13008 = (* (ptr) &fc112 );
SOURCE(10195, 24)
{
word x498;
word x499;
if (((
x498 = x←v9264, *(float*)&x498
) <= (
x499 = (* (ptr) &fc112 ), *(float*)&x499
))) {
SOURCE(10212, 7)
(void) Bomb←P60(x←v9264, 0);
};
};
SOURCE(10221, 159)
{
word x500;
word x501;
if (((
x500 = x←v9264, *(float*)&x500
) < (
x501 = (* (ptr) &fc25 ), *(float*)&x501
))) {
SOURCE(10235, 147)
{
word adjFact←v13052;
SOURCE(10280, 19)
adjFact←v13052 = (* (ptr) &fc8 );
SOURCE(10301, 45)
lab←L100018: ;
{
word x502;
word x503;
if (((
x502 = x←v9264, *(float*)&x502
) < (
x503 = (* (ptr) &fc25 ), *(float*)&x503
))) {
}
else {
goto lab←L100016;
};
};
SOURCE(10316, 19)
{
word x504;
word x505;
*(float*)&adjFact←v13052 = (
x504 = adjFact←v13052, *(float*)&x504
) * (
x505 = x←v9264, *(float*)&x505
);
};
SOURCE(10337, 9)
{
word x506;
word x507;
*(float*)&x←v9264 = (
x506 = x←v9264, *(float*)&x506
) + (
x507 = (* (ptr) &fc8 ), *(float*)&x507
);
};
goto lab←L100018;
lab←L100016: ;
SOURCE(10357, 23)
lnAdjFact←v13008 = (word) Ln←P240(adjFact←v13052);
};
};
};
SOURCE(10385, 45)
{
word x509;
word x510;
word x511;
word x513;
word x514;
*(float*)&phi←v12980 = (((
x509 = (* (ptr) &fc508 ), *(float*)&x509
) / ((
x510 = x←v9264, *(float*)&x510
) * (
x511 = x←v9264, *(float*)&x511
))) + (
x513 = (* (ptr) &fc512 ), *(float*)&x513
)) / (
x514 = x←v9264, *(float*)&x514
);
};
SOURCE(10459, 43)
{
word x515;
word x516;
word x517;
word x518;
word x519;
word x520;
word x521;
*(float*)&f←v9308 = ((((((
x515 = x←v9264, *(float*)&x515
) - (
x516 = (* (ptr) &fc104 ), *(float*)&x516
)) * (
x517 = (word) Ln←P240(x←v9264), *(float*)&x517
)) - (
x518 = x←v9264, *(float*)&x518
)) + (
x519 = (* (( (ptr) gf←c22492)+17)/* lnRoot2pi←v3364 */ ), *(float*)&x519
)) + (
x520 = phi←v12980, *(float*)&x520
)) - (
x521 = lnAdjFact←v13008, *(float*)&x521
);
};
SOURCE(10110, 392)
return(f←v9308);
}
static word Gamma←P1920(x←v9368)
word x←v9368;
{
word var←c9412;
/* Gamma: */
SOURCE(10530, 71)
SOURCE(10578, 23)
{
word var←c20924;
var←c20924 = (word) LnGamma←P1860(x←v9368);
return((word) Exp←P120(var←c20924));
};
}
static word J0←P1980(x←v9472)
word x←v9472;
{
word f←v9516;
/* J0: */
SOURCE(10607, 517)
SOURCE(10655, 22)
{
word x522;
word x523;
if (((
x522 = x←v9472, *(float*)&x522
) < (
x523 = (* (ptr) &fc112 ), *(float*)&x523
))) {
SOURCE(10671, 6)
{
word x524;
*(float*)&x←v9472 = - (
x524 = x←v9472, *(float*)&x524
);
};
};
};
SOURCE(10679, 445)
{
word x525;
word x526;
if (((
x525 = x←v9472, *(float*)&x525
) < (
x526 = (* (ptr) &fc25 ), *(float*)&x526
))) {
SOURCE(10695, 301)
{
word x2←v13096;
word P←v13124;
word Q←v13152;
SOURCE(10697, 14)
{
word x527;
word x528;
*(float*)&x2←v13096 = (
x527 = x←v9472, *(float*)&x527
) * (
x528 = x←v9472, *(float*)&x528
);
};
SOURCE(10713, 145)
{
word x530;
word x531;
word x533;
word x534;
word x536;
word x537;
word x539;
word x540;
word x542;
word x543;
word x545;
*(float*)&P←v13124 = ((((((((((
x530 = (* (ptr) &fc529 ), *(float*)&x530
) * (
x531 = x2←v13096, *(float*)&x531
)) + (
x533 = (* (ptr) &fc532 ), *(float*)&x533
)) * (
x534 = x2←v13096, *(float*)&x534
)) + (
x536 = (* (ptr) &fc535 ), *(float*)&x536
)) * (
x537 = x2←v13096, *(float*)&x537
)) + (
x539 = (* (ptr) &fc538 ), *(float*)&x539
)) * (
x540 = x2←v13096, *(float*)&x540
)) + (
x542 = (* (ptr) &fc541 ), *(float*)&x542
)) * (
x543 = x2←v13096, *(float*)&x543
)) + (
x545 = (* (ptr) &fc544 ), *(float*)&x545
);
};
SOURCE(10860, 125)
{
word x546;
word x548;
word x549;
word x551;
word x552;
word x554;
word x555;
word x557;
word x558;
word x560;
*(float*)&Q←v13152 = (((((((((
x546 = x2←v13096, *(float*)&x546
) + (
x548 = (* (ptr) &fc547 ), *(float*)&x548
)) * (
x549 = x2←v13096, *(float*)&x549
)) + (
x551 = (* (ptr) &fc550 ), *(float*)&x551
)) * (
x552 = x2←v13096, *(float*)&x552
)) + (
x554 = (* (ptr) &fc553 ), *(float*)&x554
)) * (
x555 = x2←v13096, *(float*)&x555
)) + (
x557 = (* (ptr) &fc556 ), *(float*)&x557
)) * (
x558 = x2←v13096, *(float*)&x558
)) + (
x560 = (* (ptr) &fc559 ), *(float*)&x560
);
};
SOURCE(10987, 7)
{
word x561;
word x562;
*(float*)&f←v9516 = (
x561 = P←v13124, *(float*)&x561
) / (
x562 = Q←v13152, *(float*)&x562
);
};
};
}
else {
SOURCE(11003, 123)
{
word X0←v13196;
word p0←v13224;
word q0←v13252;
SOURCE(11005, 22)
{
word x563;
word x564;
word x565;
*(float*)&X0←v13196 = (
x563 = x←v9472, *(float*)&x563
) - ((
x564 = (* (ptr) &fc12 ), *(float*)&x564
) / (
x565 = (* (ptr) &fc22 ), *(float*)&x565
));
};
SOURCE(11043, 17)
{
W2 var←c20956;
(void) PQ0←P2040((word) &var←c20956, x←v9472);
q0←v13252 = var←c20956.f1;
p0←v13224 = var←c20956.f0;
};
SOURCE(11062, 62)
{
word x566;
word x567;
word x568;
float tf569;
word x570;
word x571;
word x572;
word x573;
word x574;
*(float*)&f←v9516 = (
x570 = (word) SqRt←P300((
tf569 = (
x566 = (* (ptr) &fc14 ), *(float*)&x566
) / ((
x567 = (* (ptr) &fc12 ), *(float*)&x567
) * (
x568 = x←v9472, *(float*)&x568
)), *(word*)&tf569
)), *(float*)&x570
) * (((
x571 = p0←v13224, *(float*)&x571
) * (
x572 = (word) Cos←P540(X0←v13196), *(float*)&x572
)) - ((
x573 = q0←v13252, *(float*)&x573
) * (
x574 = (word) Sin←P480(X0←v13196), *(float*)&x574
)));
};
};
};
};
SOURCE(10607, 517)
return(f←v9516);
}
static void PQ0←P2040(formal←c0232, x←v9576)
word formal←c0232;
word x←v9576;
{
word P0←v9620;
word Q0←v9648;
word z←v13296;
word z2←v13324;
/* PQ0: */
SOURCE(11132, 326)
SOURCE(11179, 15)
{
word x575;
word x576;
*(float*)&z←v13296 = (
x575 = (* (ptr) &fc25 ), *(float*)&x575
) / (
x576 = x←v9576, *(float*)&x576
);
};
SOURCE(11196, 14)
{
word x577;
word x578;
*(float*)&z2←v13324 = (
x577 = z←v13296, *(float*)&x577
) * (
x578 = z←v13296, *(float*)&x578
);
};
SOURCE(11212, 118)
{
word x580;
word x581;
word x583;
word x584;
word x586;
word x587;
word x589;
*(float*)&P0←v9620 = ((((((
x580 = (* (ptr) &fc579 ), *(float*)&x580
) * (
x581 = z2←v13324, *(float*)&x581
)) + (
x583 = (* (ptr) &fc582 ), *(float*)&x583
)) * (
x584 = z2←v13324, *(float*)&x584
)) + (
x586 = (* (ptr) &fc585 ), *(float*)&x586
)) * (
x587 = z2←v13324, *(float*)&x587
)) + (
x589 = (* (ptr) &fc588 ), *(float*)&x589
);
};
SOURCE(11332, 126)
{
word x591;
word x592;
word x594;
word x595;
word x597;
word x598;
word x600;
word x601;
*(float*)&Q0←v9648 = (((((((
x591 = (* (ptr) &fc590 ), *(float*)&x591
) * (
x592 = z2←v13324, *(float*)&x592
)) + (
x594 = (* (ptr) &fc593 ), *(float*)&x594
)) * (
x595 = z2←v13324, *(float*)&x595
)) + (
x597 = (* (ptr) &fc596 ), *(float*)&x597
)) * (
x598 = z2←v13324, *(float*)&x598
)) + (
x600 = (* (ptr) &fc599 ), *(float*)&x600
)) * (
x601 = z←v13296, *(float*)&x601
);
};
/* removed tail goto */
(* (ptr) formal←c0232 ) = P0←v9620;
(* (( (ptr) formal←c0232)+1) ) = Q0←v9648;
return;
}
static word J1←P2100(x←v9708)
word x←v9708;
{
register ptr gf←c22524 = (ptr) &globalframe;
word f←v9752;
word sign←v13368;
/* J1: */
SOURCE(11491, 506)
SOURCE(11539, 16)
sign←v13368 = (* (ptr) &fc8 );
SOURCE(11557, 36)
{
word x602;
word x603;
if (((
x602 = x←v9708, *(float*)&x602
) < (
x603 = (* (ptr) &fc112 ), *(float*)&x603
))) {
SOURCE(11574, 11)
sign←v13368 = (* (ptr) &fc345 );
SOURCE(11587, 6)
{
word x604;
*(float*)&x←v9708 = - (
x604 = x←v9708, *(float*)&x604
);
};
};
};
SOURCE(11596, 401)
{
word x605;
word x606;
if (((
x605 = x←v9708, *(float*)&x605
) < (
x606 = (* (ptr) &fc25 ), *(float*)&x606
))) {
SOURCE(11612, 257)
{
word x2←v13412;
word P←v13440;
word Q←v13468;
SOURCE(11614, 14)
{
word x607;
word x608;
*(float*)&x2←v13412 = (
x607 = x←v9708, *(float*)&x607
) * (
x608 = x←v9708, *(float*)&x608
);
};
SOURCE(11630, 119)
{
word x610;
word x611;
word x613;
word x614;
word x616;
word x617;
word x619;
word x620;
word x622;
*(float*)&P←v13440 = ((((((((
x610 = (* (ptr) &fc609 ), *(float*)&x610
) * (
x611 = x2←v13412, *(float*)&x611
)) + (
x613 = (* (ptr) &fc612 ), *(float*)&x613
)) * (
x614 = x2←v13412, *(float*)&x614
)) + (
x616 = (* (ptr) &fc615 ), *(float*)&x616
)) * (
x617 = x2←v13412, *(float*)&x617
)) + (
x619 = (* (ptr) &fc618 ), *(float*)&x619
)) * (
x620 = x2←v13412, *(float*)&x620
)) + (
x622 = (* (ptr) &fc621 ), *(float*)&x622
);
};
SOURCE(11751, 100)
{
word x623;
word x625;
word x626;
word x628;
word x629;
word x631;
word x632;
word x634;
*(float*)&Q←v13468 = (((((((
x623 = x2←v13412, *(float*)&x623
) + (
x625 = (* (ptr) &fc624 ), *(float*)&x625
)) * (
x626 = x2←v13412, *(float*)&x626
)) + (
x628 = (* (ptr) &fc627 ), *(float*)&x628
)) * (
x629 = x2←v13412, *(float*)&x629
)) + (
x631 = (* (ptr) &fc630 ), *(float*)&x631
)) * (
x632 = x2←v13412, *(float*)&x632
)) + (
x634 = (* (ptr) &fc633 ), *(float*)&x634
);
};
SOURCE(11853, 14)
{
word x635;
word x636;
word x637;
word x638;
*(float*)&f←v9752 = (((
x635 = sign←v13368, *(float*)&x635
) * (
x636 = x←v9708, *(float*)&x636
)) * (
x637 = P←v13440, *(float*)&x637
)) / (
x638 = Q←v13468, *(float*)&x638
);
};
};
}
else {
SOURCE(11876, 123)
{
word X1←v13512;
word p1←v13540;
word q1←v13568;
SOURCE(11878, 17)
{
word x639;
word x640;
*(float*)&X1←v13512 = (
x639 = x←v9708, *(float*)&x639
) - (
x640 = (* (( (ptr) gf←c22524)+24)/* pi34←v4764 */ ), *(float*)&x640
);
};
SOURCE(11911, 17)
{
W2 var←c20988;
(void) PQ1←P2160((word) &var←c20988, x←v9708);
q1←v13568 = var←c20988.f1;
p1←v13540 = var←c20988.f0;
};
SOURCE(11930, 67)
{
word x641;
word x642;
word x643;
word x644;
float tf645;
word x646;
word x647;
word x648;
word x649;
word x650;
*(float*)&f←v9752 = ((
x641 = sign←v13368, *(float*)&x641
) * (
x646 = (word) SqRt←P300((
tf645 = (
x642 = (* (ptr) &fc14 ), *(float*)&x642
) / ((
x643 = (* (ptr) &fc12 ), *(float*)&x643
) * (
x644 = x←v9708, *(float*)&x644
)), *(word*)&tf645
)), *(float*)&x646
)) * (((
x647 = p1←v13540, *(float*)&x647
) * (
x648 = (word) Cos←P540(X1←v13512), *(float*)&x648
)) - ((
x649 = q1←v13568, *(float*)&x649
) * (
x650 = (word) Sin←P480(X1←v13512), *(float*)&x650
)));
};
};
};
};
SOURCE(11491, 506)
return(f←v9752);
}
static void PQ1←P2160(formal←c0249, x←v9812)
word formal←c0249;
word x←v9812;
{
word P1←v9856;
word Q1←v9884;
word z←v13612;
word z2←v13640;
/* PQ1: */
SOURCE(12005, 322)
SOURCE(12052, 15)
{
word x651;
word x652;
*(float*)&z←v13612 = (
x651 = (* (ptr) &fc25 ), *(float*)&x651
) / (
x652 = x←v9812, *(float*)&x652
);
};
SOURCE(12069, 14)
{
word x653;
word x654;
*(float*)&z2←v13640 = (
x653 = z←v13612, *(float*)&x653
) * (
x654 = z←v13612, *(float*)&x654
);
};
SOURCE(12085, 117)
{
word x656;
word x657;
word x659;
word x660;
word x662;
word x663;
word x665;
*(float*)&P1←v9856 = ((((((
x656 = (* (ptr) &fc655 ), *(float*)&x656
) * (
x657 = z2←v13640, *(float*)&x657
)) + (
x659 = (* (ptr) &fc658 ), *(float*)&x659
)) * (
x660 = z2←v13640, *(float*)&x660
)) + (
x662 = (* (ptr) &fc661 ), *(float*)&x662
)) * (
x663 = z2←v13640, *(float*)&x663
)) + (
x665 = (* (ptr) &fc664 ), *(float*)&x665
);
};
SOURCE(12204, 123)
{
word x667;
word x668;
word x670;
word x671;
word x673;
word x674;
word x676;
word x677;
*(float*)&Q1←v9884 = (((((((
x667 = (* (ptr) &fc666 ), *(float*)&x667
) * (
x668 = z2←v13640, *(float*)&x668
)) + (
x670 = (* (ptr) &fc669 ), *(float*)&x670
)) * (
x671 = z2←v13640, *(float*)&x671
)) + (
x673 = (* (ptr) &fc672 ), *(float*)&x673
)) * (
x674 = z2←v13640, *(float*)&x674
)) + (
x676 = (* (ptr) &fc675 ), *(float*)&x676
)) * (
x677 = z←v13612, *(float*)&x677
);
};
/* removed tail goto */
(* (ptr) formal←c0249 ) = P1←v9856;
(* (( (ptr) formal←c0249)+1) ) = Q1←v9884;
return;
}
static word OldJn←P2220(n←v9944, x←v9972)
word n←v9944;
word x←v9972;
{
word f←v10016;
word sign←v13684;
/* OldJn: */
SOURCE(12332, 331)
SOURCE(12391, 16)
sign←v13684 = (* (ptr) &fc8 );
SOURCE(12409, 61)
if (( (int)n←v9944 < (int)0)) {
SOURCE(12422, 6)
n←v9944 = INEG(n←v9944);
SOURCE(12430, 40)
if (( (int)IOP2( % , (int)n←v9944, (int)2) != (int)0)) {
sign←v13684 = (* (ptr) &fc345 );
}
else {
sign←v13684 = (* (ptr) &fc8 );
};
};
SOURCE(12473, 190)
{
word var←c21020;
var←c21020 = n←v9944;
if (( (int)var←c21020 == (int)0)) {
SOURCE(12492, 9)
f←v10016 = (word) J0←P1980(x←v9972);
}
else {
if (( (int)var←c21020 == (int)1)) {
SOURCE(12508, 14)
{
word x678;
word x679;
*(float*)&f←v10016 = (
x678 = sign←v13684, *(float*)&x678
) * (
x679 = (word) J1←P2100(x←v9972), *(float*)&x679
);
};
}
else {
SOURCE(12535, 130)
{
word v0←v13728;
word v1←v13756;
SOURCE(12537, 16)
v0←v13728 = (word) J0←P1980(x←v9972);
SOURCE(12555, 16)
v1←v13756 = (word) J1←P2100(x←v9972);
SOURCE(12573, 68)
{
register word m←v13800 = 2;
register word noName←c21052;
noName←c21052 = n←v9944;
if (( (int)m←v13800 > (int)noName←c21052)) {
goto lab←L100021;
};
lab←L100024: ;
{
word v2←v13844;
SOURCE(12597, 26)
{
word x680;
word x681;
word x682;
*(float*)&v2←v13844 = (((float)(int)IOP2( * , (int)2, (int)(m←v13800 - 1)) * (
x680 = v1←v13756, *(float*)&x680
)) / (
x681 = x←v9972, *(float*)&x681
)) - (
x682 = v0←v13728, *(float*)&x682
);
};
SOURCE(12625, 7)
v0←v13728 = v1←v13756;
SOURCE(12634, 7)
v1←v13756 = v2←v13844;
};
if (( (int)m←v13800 >= (int)noName←c21052)) {
goto lab←L100021;
};
m←v13800 = (m←v13800 + 1);
goto lab←L100024;
lab←L100021: ;
};
SOURCE(12652, 11)
{
word x683;
word x684;
*(float*)&f←v10016 = (
x683 = sign←v13684, *(float*)&x683
) * (
x684 = v1←v13756, *(float*)&x684
);
};
};
};
};
};
SOURCE(12332, 331)
return(f←v10016);
}
static word Jn←P2280(n←v10076, x←v10104)
word n←v10076;
word x←v10104;
{
register ptr gf←c22556 = (ptr) &globalframe;
word f←v10148;
word sign←v13888;
/* Jn: */
SOURCE(12734, 623)
SOURCE(12790, 16)
sign←v13888 = (* (ptr) &fc8 );
SOURCE(12808, 61)
if (( (int)n←v10076 < (int)0)) {
SOURCE(12821, 6)
n←v10076 = INEG(n←v10076);
SOURCE(12829, 40)
if (( (int)IOP2( % , (int)n←v10076, (int)2) != (int)0)) {
sign←v13888 = (* (ptr) &fc345 );
}
else {
sign←v13888 = (* (ptr) &fc8 );
};
};
if (( (int)n←v10076 == (int)0)) {
SOURCE(12896, 14)
return((word) J0←P1980(x←v10104));
}
else {
if (( (int)n←v10076 == (int)1)) {
SOURCE(12919, 14)
{
word x685;
word x686;
*(float*)&f←v10148 = (
x685 = sign←v13888, *(float*)&x685
) * (
x686 = (word) J1←P2100(x←v10104), *(float*)&x686
);
};
}
else {
{
word x687;
word x688;
if (((
x687 = x←v10104, *(float*)&x687
) == (
x688 = (* (ptr) &fc112 ), *(float*)&x688
))) {
SOURCE(12944, 12)
return((* (ptr) &fc112 ));
}
else {
SOURCE(12969, 390)
{
word halfX←v13932;
word halfX2←v13960;
word term←v13988;
word sum←v14016;
SOURCE(12971, 19)
{
word x689;
word x690;
*(float*)&halfX←v13932 = (
x689 = x←v10104, *(float*)&x689
) * (
x690 = (* (ptr) &fc104 ), *(float*)&x690
);
};
SOURCE(12992, 28)
{
word x691;
word x692;
*(float*)&halfX2←v13960 = (
x691 = halfX←v13932, *(float*)&x691
) * (
x692 = halfX←v13932, *(float*)&x692
);
};
SOURCE(13039, 144)
if (( (int)n←v10076 <= (int)(* (( (ptr) gf←c22556)+26)/* factLimit←v4904 */ ))) {
SOURCE(13064, 12)
term←v13988 = halfX←v13932;
SOURCE(13078, 57)
{
register word j←v14060 = 2;
register word noName←c21116;
noName←c21116 = SGNCK(n←v10076);
if ((j←v14060 > noName←c21116)) {
goto lab←L100025;
};
lab←L100028: ;
SOURCE(13102, 33)
{
word x693;
word x694;
*(float*)&term←v13988 = (
/*1*/ x693 = term←v13988, *(float*)&x693
/*1*/ ) * ((
/*1*/ x694 = halfX←v13932, *(float*)&x694
/*1*/ ) / (float)(unsigned)j←v14060);
};
if ((j←v14060 >= noName←c21116)) {
goto lab←L100025;
};
j←v14060 = (j←v14060 + 1);
goto lab←L100028;
lab←L100025: ;
};
}
else {
SOURCE(13144, 39)
{
word var←c21148;
{
word x695;
float tf696;
word x697;
*(float*)&var←c21148 = ((float)(int)n←v10076 * (
/*1*/ x695 = (word) Ln←P240(halfX←v13932), *(float*)&x695
/*1*/ )) - (
/*1*/ x697 = (word) LnGamma←P1860((
/*1*/ tf696 = (float)(int)(n←v10076 + 1), *(word*)&tf696
/*1*/ )), *(float*)&x697
/*1*/ );
};
term←v13988 = (word) Exp←P120(var←c21148);
};
};
SOURCE(13185, 10)
sum←v14016 = term←v13988;
SOURCE(13197, 137)
{
word k←v14104;
k←v14104 = (* (ptr) &fc8 );
lab←L100032: ;
{
word newSum←v14148;
SOURCE(13235, 35)
{
word x698;
word x699;
word x700;
word x701;
*(float*)&term←v13988 = ( - (
/*1*/ x698 = term←v13988, *(float*)&x698
/*1*/ )) * ((
/*1*/ x699 = halfX2←v13960, *(float*)&x699
/*1*/ ) / ((
/*1*/ x700 = k←v14104, *(float*)&x700
/*1*/ ) * ((float)(int)n←v10076 + (
/*1*/ x701 = k←v14104, *(float*)&x701
/*1*/ ))));
};
SOURCE(13272, 19)
{
word x702;
word x703;
*(float*)&newSum←v14148 = (
/*1*/ x702 = sum←v14016, *(float*)&x702
/*1*/ ) + (
/*1*/ x703 = term←v13988, *(float*)&x703
/*1*/ );
};
SOURCE(13293, 41)
{
word x704;
word x705;
if (((
/*1*/ x704 = newSum←v14148, *(float*)&x704
/*1*/ ) == (
/*1*/ x705 = sum←v14016, *(float*)&x705
/*1*/ ))) {
SOURCE(13312, 10)
/*1*/ goto lab←L100030;
/*1*/ }
else {
SOURCE(13322, 12)
/*1*/ sum←v14016 = newSum←v14148;
/*1*/ };
};
};
{
word x706;
word x707;
*(float*)&k←v14104 = (
x706 = k←v14104, *(float*)&x706
) + (
x707 = (* (ptr) &fc8 ), *(float*)&x707
);
};
goto lab←L100032;
lab←L100030: ;
};
SOURCE(13345, 12)
{
word x708;
word x709;
*(float*)&f←v10148 = (
x708 = sum←v14016, *(float*)&x708
) * (
x709 = sign←v13888, *(float*)&x709
);
};
};
};
};
};
};
SOURCE(12734, 623)
return(f←v10148);
}
static void RationalFromReal←P2340(formal←c0308, x←v10208, limit←v10236)
word formal←c0308;
word x←v10208;
word limit←v10236;
{
register ptr gf←c22588 = (ptr) &globalframe;
W2 var←c10280;
word tooLargeToFix←v14192;
word tooSmallToFix←v14220;
word halfTooSmallToFix←v14248;
word sign←v14332 = 1;
word flip←v14360 = 0;
word scale←v14388;
word ak2←v14416;
word ak1←v14444;
word ak←v14472;
word ck←v14500;
word climit←v14528;
word nk←v14556;
word dk←v14584;
word nk1←v14612 = 0;
word dk2←v14640 = 0;
word nk2←v14668 = 1;
word dk1←v14696 = 1;
/* RationalFromReal: */
SOURCE(13366, 3748)
SOURCE(13462, 53)
{
word pd710;
pd710 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
tooLargeToFix←v14192 = (word) ( *( (fPt) ((* (ptr) pd710 ))))((* (ptr) &fc8 ), 31, pd710);
};
SOURCE(13535, 53)
{
word pd711;
pd711 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
tooSmallToFix←v14220 = (word) ( *( (fPt) ((* (ptr) pd711 ))))((* (ptr) &fc8 ), (word) -31, pd711);
};
SOURCE(13610, 56)
{
word pd712;
pd712 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
halfTooSmallToFix←v14248 = (word) ( *( (fPt) ((* (ptr) pd712 ))))(tooSmallToFix←v14220, (word) -1, pd712);
};
SOURCE(14227, 34)
if (( (int)limit←v10236 <= (int)0)) {
SOURCE(14246, 15)
var←c10280.f0 = 0;
var←c10280.f1 = 1;
goto lab←L100033;
};
SOURCE(14286, 35)
{
word x713;
word x714;
if (((
x713 = x←v10208, *(float*)&x713
) < (
x714 = (* (ptr) &fc112 ), *(float*)&x714
))) {
SOURCE(14304, 6)
{
word x715;
*(float*)&x←v10208 = - (
x715 = x←v10208, *(float*)&x715
);
};
SOURCE(14312, 9)
sign←v14332 = (word) -1;
};
};
SOURCE(14326, 1440)
{
word x716;
word x717;
if (((
x716 = x←v10208, *(float*)&x716
) >= (
x717 = (* (ptr) &fc8 ), *(float*)&x717
))) {
SOURCE(14343, 437)
{
word rest←v14740;
word var←c0390;
SOURCE(14412, 88)
{
word x718;
word x719;
if (((
x718 = x←v10208, *(float*)&x718
) >= (
x719 = tooLargeToFix←v14192, *(float*)&x719
))) { goto then0720;};
{
word pd721;
word idx722;
pd721 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+5) );
ck←v14500 = (
idx722 = (word) ( *( (fPt) ((* (ptr) pd721 ))))(x←v10208, pd721),
SGNCK(idx722)
);
};
var←c0390 = ck←v14500;
if ((var←c0390 >= SGNCK(limit←v10236))) {
then0720: ;
SOURCE(14476, 24)
var←c10280.f0 = IOP2( * , (int)sign←v14332, (int)limit←v10236);
var←c10280.f1 = 1;
goto lab←L100033;
};
};
SOURCE(14502, 11)
flip←v14360 = 1;
SOURCE(14570, 6)
nk←v14556 = 1;
SOURCE(14579, 7)
dk←v14584 = SGNCK(ck←v14500);
SOURCE(14632, 13)
{
word x723;
*(float*)&rest←v14740 = (
x723 = x←v10208, *(float*)&x723
) - (float)(unsigned)ck←v14500;
};
SOURCE(14647, 49)
scale←v14388 = (150 - (((unsigned)(* (ptr) &fc8 ) << 1) >> 24));
SOURCE(14698, 39)
{
word var←c21244;
{
word pd724;
pd724 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
var←c21244 = (word) ( *( (fPt) ((* (ptr) pd724 ))))(rest←v14740, scale←v14388, pd724);
};
{
word pd725;
word idx726;
pd725 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+5) );
ak←v14472 = (
idx726 = (word) ( *( (fPt) ((* (ptr) pd725 ))))(var←c21244, pd725),
SGNCK(idx726)
);
};
};
SOURCE(14739, 39)
{
word var←c21276;
{
word pd727;
pd727 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
var←c21276 = (word) ( *( (fPt) ((* (ptr) pd727 ))))((* (ptr) &fc8 ), scale←v14388, pd727);
};
{
word pd728;
word idx729;
pd728 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+5) );
ak1←v14444 = (
idx729 = (word) ( *( (fPt) ((* (ptr) pd728 ))))(var←c21276, pd728),
SGNCK(idx729)
);
};
};
};
}
else {
SOURCE(14787, 1024)
{
word n←v14784;
word num←v14812;
SOURCE(14854, 200)
{
word x730;
word x731;
if (((
x730 = x←v10208, *(float*)&x730
) <= (
x731 = tooSmallToFix←v14220, *(float*)&x731
))) {
SOURCE(14919, 46)
{
word x732;
word x733;
if (((
x732 = x←v10208, *(float*)&x732
) <= (
x733 = halfTooSmallToFix←v14248, *(float*)&x733
))) {
SOURCE(14950, 15)
var←c10280.f0 = 0;
var←c10280.f1 = 1;
goto lab←L100033;
};
};
SOURCE(14967, 87)
{
word pd734;
word x735;
word x736;
float tf737;
word idx738;
pd734 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+5) );
if ((SGNCK(limit←v10236) > (
idx738 = (word) ( *( (fPt) ((* (ptr) pd734 ))))((
/*1*/ tf737 = (
/*1*/ x735 = (* (ptr) &fc104 ), *(float*)&x735
/*1*/ ) / (
/*1*/ x736 = x←v10208, *(float*)&x736
/*1*/ ), *(word*)&tf737
/*1*/ ), pd734),
SGNCK(idx738)
))) {
SOURCE(15011, 28)
var←c10280.f0 = sign←v14332;
var←c10280.f1 = limit←v10236;
goto lab←L100033;
}
else {
SOURCE(15039, 15)
var←c10280.f0 = 0;
var←c10280.f1 = 1;
goto lab←L100033;
};
};
};
};
SOURCE(15059, 47)
scale←v14388 = (150 - (((unsigned)x←v10208 << 1) >> 24));
SOURCE(15108, 37)
{
word var←c21404;
{
word pd739;
pd739 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+4) );
var←c21404 = (word) ( *( (fPt) ((* (ptr) pd739 ))))(x←v10208, scale←v14388, pd739);
};
{
word pd740;
word idx741;
pd740 = (* (( (ptr) (* (( (ptr) gf←c22588)+167)/* var←c20124 */ ))+5) );
ak1←v14444 = (
idx741 = (word) ( *( (fPt) ((* (ptr) pd740 ))))(var←c21404, pd740),
SGNCK(idx741)
);
};
};
SOURCE(15147, 28)
{
word idx742;
n←v14784 = (
idx742 = (word) (MIN((int)(word), 31, scale←v14388)),
SGNCK(idx742)
);
};
SOURCE(15210, 28)
num←v14812 = (word) XRM←BITLSHIFT(1, BCK(n←v14784, 32));
SOURCE(15240, 12)
ck←v14500 = (num←v14812 / ak1←v14444);
SOURCE(15285, 16)
ak←v14472 = (num←v14812 % ak1←v14444);
SOURCE(15339, 235)
lab←L100036: ;
scale←v14388 = (scale←v14388 - n←v14784);
if (( (int)scale←v14388 > (int)0)) {
}
else {
goto lab←L100034;
};
SOURCE(15415, 17)
{
word idx743;
n←v14784 = (
idx743 = (word) (MIN((int)(word), 8, scale←v14388)),
SGNCK(idx743)
);
};
SOURCE(15487, 29)
num←v14812 = (word) XRM←BITLSHIFT(ak←v14472, BCK(n←v14784, 32));
SOURCE(15518, 38)
ck←v14500 = ((word) XRM←BITLSHIFT(ck←v14500, BCK(n←v14784, 32)) + (num←v14812 / ak1←v14444));
SOURCE(15558, 16)
ak←v14472 = (num←v14812 % ak1←v14444);
goto lab←L100036;
lab←L100034: ;
SOURCE(15610, 135)
if ((ck←v14500 >= SGNCK(limit←v10236))) {
SOURCE(15675, 70)
{
word idx744;
if (((
idx744 = (word) IOP2( * , (int)2, (int)limit←v10236),
SGNCK(idx744)
) > ck←v14500)) {
SOURCE(15702, 28)
var←c10280.f0 = sign←v14332;
var←c10280.f1 = limit←v10236;
goto lab←L100033;
}
else {
SOURCE(15730, 15)
var←c10280.f0 = 0;
var←c10280.f1 = 1;
goto lab←L100033;
};
};
};
SOURCE(15750, 6)
nk←v14556 = 1;
SOURCE(15759, 7)
dk←v14584 = SGNCK(ck←v14500);
};
};
};
SOURCE(15815, 1177)
lab←L100039: ;
if ((ak←v14472 != 0)) {
}
else {
goto lab←L100037;
};
SOURCE(15882, 9)
ak2←v14416 = ak1←v14444;
SOURCE(15894, 8)
ak1←v14444 = ak←v14472;
SOURCE(15934, 9)
nk2←v14668 = nk1←v14612;
SOURCE(15946, 8)
nk1←v14612 = nk←v14556;
SOURCE(16006, 9)
dk2←v14640 = dk1←v14696;
SOURCE(16018, 8)
dk1←v14696 = dk←v14584;
SOURCE(16028, 12)
ck←v14500 = (ak2←v14416 / ak1←v14444);
SOURCE(16088, 17)
ak←v14472 = (ak2←v14416 - (ck←v14500 * ak1←v14444));
SOURCE(16141, 26)
climit←v14528 = ((limit←v10236 - dk2←v14640) / dk1←v14696);
SOURCE(16222, 21)
if ((climit←v14528 <= ck←v14500)) {
SOURCE(16243, 16)
goto lab←L100040;
};
SOURCE(16300, 17)
nk←v14556 = (IOP2( * , (int)ck←v14500, (int)nk1←v14612) + nk2←v14668);
SOURCE(16370, 17)
dk←v14584 = (IOP2( * , (int)ck←v14500, (int)dk1←v14696) + dk2←v14640);
goto lab←L100039;
lab←L100040: ;
SOURCE(16411, 627)
{
word twoClimit←v14856;
SOURCE(16413, 26)
twoClimit←v14856 = (climit←v14528 << 1);
SOURCE(16441, 551)
if ((twoClimit←v14856 >= ck←v14500)) {
SOURCE(16514, 21)
nk←v14556 = (IOP2( * , (int)climit←v14528, (int)nk1←v14612) + nk2←v14668);
SOURCE(16582, 21)
dk←v14584 = (IOP2( * , (int)climit←v14528, (int)dk1←v14696) + dk2←v14640);
SOURCE(16605, 387)
if ((twoClimit←v14856 == ck←v14500)) {
SOURCE(16636, 397)
{
word dk2ak1Hi←v14900;
word dk2ak1Lo←v14928;
word dk1akHi←v14956;
word dk1akLo←v14984;
SOURCE(16775, 60)
{
W2 var←c21500;
{
word idx745;
(void) Mul32←P2820((word) &var←c21500, (
idx745 = (word) ( (0 != flip←v14360) ? nk2←v14668 : dk2←v14640 ) ,
SGNCK(idx745)
), ak1←v14444);
};
dk2ak1Lo←v14928 = var←c21500.f1;
dk2ak1Hi←v14900 = var←c21500.f0;
};
SOURCE(16837, 57)
{
W2 var←c21532;
{
word idx746;
(void) Mul32←P2820((word) &var←c21532, (
idx746 = (word) ( (0 != flip←v14360) ? nk1←v14612 : dk1←v14696 ) ,
SGNCK(idx746)
), ak←v14472);
};
dk1akLo←v14984 = var←c21532.f1;
dk1akHi←v14956 = var←c21532.f0;
};
SOURCE(16896, 96)
if ((dk2ak1Hi←v14900 < dk1akHi←v14956) || ( (dk2ak1Hi←v14900 == dk1akHi←v14956) ? (dk2ak1Lo←v14928 <= dk1akLo←v14984) : 0 ) ) {
SOURCE(16973, 8)
nk←v14556 = nk1←v14612;
SOURCE(16984, 8)
dk←v14584 = dk1←v14696;
};
};
};
};
};
goto lab←L100038;
lab←L100037: ;
lab←L100038: ;
SOURCE(17051, 63)
if ((0 != flip←v14360)) {
SOURCE(17064, 28)
var←c10280.f0 = IOP2( * , (int)sign←v14332, (int)dk←v14584);
var←c10280.f1 = nk←v14556;
/* removed tail goto */
}
else {
SOURCE(17092, 22)
var←c10280.f0 = IOP2( * , (int)sign←v14332, (int)nk←v14556);
var←c10280.f1 = dk←v14584;
/* removed tail goto */
};
lab←L100033: ;
(* (W2Pt) formal←c0308 ) = var←c10280;
return;
}
static void OldRationalFromReal←P2400(formal←c0322, x←v10340, limit←v10368)
word formal←c0322;
word x←v10340;
word limit←v10368;
{
register ptr gf←c22620 = (ptr) &globalframe;
W2 var←c10412;
word oneOverX←v15028;
word sign←v15056 = 1;
word inverse←v15084 = 0;
word p0←v15112;
word q0←v15140;
word lambda←v15168;
word q1←v15196 = 0;
word p2←v15224 = 0;
word p1←v15252 = 1;
word q2←v15280 = 1;
/* OldRationalFromReal: */
SOURCE(17120, 689)
SOURCE(17310, 36)
{
word x747;
word x748;
if (((
x747 = x←v10340, *(float*)&x747
) < (
x748 = (* (ptr) &fc112 ), *(float*)&x748
))) {
SOURCE(17328, 6)
{
word x749;
*(float*)&x←v10340 = - (
x749 = x←v10340, *(float*)&x749
);
};
SOURCE(17336, 10)
sign←v15056 = (word) -1;
};
};
SOURCE(17349, 58)
{
word x750;
word x751;
if (((
x750 = x←v10340, *(float*)&x750
) == (
x751 = (* (ptr) &fc8 ), *(float*)&x751
))) {
SOURCE(17365, 42)
var←c10412.f0 = sign←v15056;
var←c10412.f1 = 1;
goto lab←L100041;
};
};
SOURCE(17409, 44)
{
word x752;
word x753;
if (((
x752 = x←v10340, *(float*)&x752
) > (
x753 = (* (ptr) &fc8 ), *(float*)&x753
))) {
SOURCE(17427, 9)
{
word x754;
word x755;
*(float*)&x←v10340 = (
x754 = (* (ptr) &fc8 ), *(float*)&x754
) / (
x755 = x←v10340, *(float*)&x755
);
};
SOURCE(17438, 15)
inverse←v15084 = 1;
};
};
SOURCE(17457, 10)
lambda←v15168 = 0;
SOURCE(17483, 196)
{
word var←c0391;
word var←c0392;
lab←L100044: ;
{
word x758;
{
word x756;
*(float*)&oneOverX←v15028 = (
x756 = x←v10340, *(float*)&x756
) - (float)(int)lambda←v15168;
};
var←c0391 = oneOverX←v15028;
{
word x757;
*(float*)&var←c0392 = (
x757 = var←c0391, *(float*)&x757
) * (float)(int)(limit←v10368 - q1←v15196);
};
if (((
x758 = var←c0392, *(float*)&x758
) > (float)(int)q2←v15280)) {
}
else {
goto lab←L100042;
};
};
SOURCE(17543, 16)
{
word x759;
word x760;
*(float*)&x←v10340 = (
x759 = (* (ptr) &fc8 ), *(float*)&x759
) / (
x760 = oneOverX←v15028, *(float*)&x760
);
};
SOURCE(17561, 27)
{
word pd761;
pd761 = (* (( (ptr) (* (( (ptr) gf←c22620)+169)/* var←c20220 */ ))+8) );
lambda←v15168 = (word) ( *( (fPt) ((* (ptr) pd761 ))))(x←v10340, pd761);
};
SOURCE(17607, 7)
q0←v15140 = q1←v15196;
SOURCE(17616, 7)
q1←v15196 = q2←v15280;
SOURCE(17625, 17)
q2←v15280 = (IOP2( * , (int)lambda←v15168, (int)q1←v15196) + q0←v15140);
SOURCE(17644, 7)
p0←v15112 = p1←v15252;
SOURCE(17653, 7)
p1←v15252 = p2←v15224;
SOURCE(17662, 17)
p2←v15224 = (IOP2( * , (int)lambda←v15168, (int)p1←v15252) + p0←v15112);
goto lab←L100044;
lab←L100042: ;
};
SOURCE(17691, 118)
if ((0 == inverse←v15084)) {
SOURCE(17711, 52)
var←c10412.f0 = IOP2( * , (int)sign←v15056, (int)p2←v15224);
var←c10412.f1 = q2←v15280;
/* removed tail goto */
}
else {
SOURCE(17763, 46)
var←c10412.f0 = IOP2( * , (int)sign←v15056, (int)q2←v15280);
var←c10412.f1 = p2←v15224;
/* removed tail goto */
};
lab←L100041: ;
(* (W2Pt) formal←c0322 ) = var←c10412;
return;
}
static word AlmostZero←P2460(x←v10472, distance←v10500)
word x←v10472;
word distance←v10500;
{
word var←c10564;
/* AlmostZero: */
SOURCE(17815, 147)
SOURCE(17899, 63)
return(( (int)(((unsigned)x←v10472 << 1) >> 24) < (int)((distance←v10500 - 126) + 127)));
}
static word AlmostEqual←P2520(y←v10624, x←v10652, distance←v10680)
word y←v10624;
word x←v10652;
word distance←v10680;
{
word var←c10744;
word xe←v15324;
word ye←v15352;
/* AlmostEqual: */
SOURCE(17968, 806)
SOURCE(18054, 28)
xe←v15324 = x←v10652;
SOURCE(18084, 28)
ye←v15352 = y←v10624;
if (((((unsigned)xe←v15324 << 1) >> 24) == 255)) {
SOURCE(18155, 14)
return(0);
}
else {
if (((((unsigned)ye←v15352 << 1) >> 24) == 255)) {
SOURCE(18195, 14)
return(0);
}
else {
{
word x762;
word x763;
if (((
x762 = x←v10652, *(float*)&x762
) == (
x763 = y←v10624, *(float*)&x763
))) {
SOURCE(18220, 13)
return(1);
}
else {
if ((((int)xe←v15324<0) != ((int)ye←v15352<0))) {
SOURCE(18256, 14)
return(0);
}
else {
if (( (int)(distance←v10680 - 126) == (int)0)) {
SOURCE(18288, 13)
return(1);
}
else {
if (((((unsigned)xe←v15324 << 1) >> 24) > ((((unsigned)ye←v15352 << 1) >> 24) + 1))) { goto then0764;};
if (((((unsigned)ye←v15352 << 1) >> 24) > ((((unsigned)xe←v15324 << 1) >> 24) + 1))) {
then0764: ;
SOURCE(18343, 14)
return(0);
}
else {
SOURCE(18372, 189)
if (((((unsigned)xe←v15324 << 1) >> 24) == 0)) { goto then0765;};
if (((((unsigned)ye←v15352 << 1) >> 24) == 0)) {
then0765: ;
SOURCE(18405, 158)
{
/*1*/ word reNorm←v15396;
SOURCE(18407, 18)
/*1*/ reNorm←v15396 = (* (ptr) &fc8 );
SOURCE(18427, 72)
/*1*/ {
/*1*/ word idx766;
/*1*/ reNorm←v15396 = (reNorm←v15396 & 2155872255) | (((
/*1*/ idx766 = (word) ((((unsigned)reNorm←v15396 << 1) >> 24) + 24),
/*1*/ BCK(idx766, 256)
/*1*/ )) << 23);
/*1*/ };
SOURCE(18501, 29)
/*1*/ {
/*1*/ word var←c21724;
/*1*/ {
/*1*/ word x767;
/*1*/ word x768;
/*1*/ *(float*)&var←c21724 = (
/*1*/ x767 = x←v10652, *(float*)&x767
/*1*/ ) * (
/*1*/ x768 = reNorm←v15396, *(float*)&x768
/*1*/ );
/*1*/ };
/*1*/ x←v10652 = var←c21724;
/*1*/ xe←v15324 = var←c21724;
/*1*/ };
SOURCE(18532, 29)
/*1*/ {
/*1*/ word var←c21756;
/*1*/ {
/*1*/ word x769;
/*1*/ word x770;
/*1*/ *(float*)&var←c21756 = (
/*1*/ x769 = y←v10624, *(float*)&x769
/*1*/ ) * (
/*1*/ x770 = reNorm←v15396, *(float*)&x770
/*1*/ );
/*1*/ };
/*1*/ y←v10624 = var←c21756;
/*1*/ ye←v15352 = var←c21756;
/*1*/ };
/*1*/ };
};
SOURCE(18566, 210)
{
word delta←v15440;
word keyExp←v15468;
SOURCE(18568, 37)
{
/*1*/ word x771;
/*1*/ word x772;
/*1*/ *(float*)&delta←v15440 = (
/*1*/ x771 = x←v10652, *(float*)&x771
/*1*/ ) - (
/*1*/ x772 = y←v10624, *(float*)&x772
/*1*/ );
/*1*/ };
SOURCE(18607, 48)
{
/*1*/ word x773;
/*1*/ word x774;
/*1*/ keyExp←v15468 = ((x773 = (((unsigned)xe←v15324 << 1) >> 24),
/*1*/ x774 = (((unsigned)ye←v15352 << 1) >> 24),
/*1*/ MAX( (unsigned) , x773, x774)) + (distance←v10680 - 126));
/*1*/ };
SOURCE(18657, 117)
{
/*1*/ word var←c21788;
/*1*/ var←c21788 = (((unsigned)delta←v15440 << 1) >> 24);
/*1*/ if (( (int)var←c21788 < (int)keyExp←v15468)) {
SOURCE(18700, 13)
/*1*/ return(1);
/*1*/ }
/*1*/ else {
/*1*/ if (( (int)var←c21788 > (int)keyExp←v15468)) {
SOURCE(18727, 14)
/*1*/ return(0);
/*1*/ }
/*1*/ else {
SOURCE(18754, 20)
/*1*/ return((( (((unsigned)delta←v15440 << 9) >> 9) ) == 0));
/*1*/ };
/*1*/ };
/*1*/ };
};
};
};
};
};
};
};
};
}
static word SinFirstOctant←P2580(radians←v10804)
word radians←v10804;
{
register ptr gf←c22652 = (ptr) &globalframe;
word var←c10848;
/* SinFirstOctant: */
SOURCE(19226, 223)
SOURCE(19282, 167)
{
word x775;
word x776;
if (((
x775 = radians←v10804, *(float*)&x775
) <= (
x776 = (* (( (ptr) gf←c22652)+36)/* sinCosEps←v5324 */ ), *(float*)&x776
))) {
SOURCE(19311, 22)
return(radians←v10804);
}
else {
SOURCE(19333, 118)
{
word r2←v15512;
SOURCE(19335, 26)
{
word x777;
word x778;
*(float*)&r2←v15512 = (
x777 = radians←v10804, *(float*)&x777
) * (
x778 = radians←v10804, *(float*)&x778
);
};
SOURCE(19363, 86)
{
word x779;
word x780;
word x781;
word x782;
word x783;
word x784;
word x785;
word x786;
word x787;
word x788;
float tf789;
return((
tf789 = (((((((((
x779 = (* (( (ptr) gf←c22652)+27)/* fact9recip←v5072 */ ), *(float*)&x779
) * (
x780 = r2←v15512, *(float*)&x780
)) - (
x781 = (* (( (ptr) gf←c22652)+29)/* fact7recip←v5128 */ ), *(float*)&x781
)) * (
x782 = r2←v15512, *(float*)&x782
)) + (
x783 = (* (( (ptr) gf←c22652)+31)/* fact5recip←v5184 */ ), *(float*)&x783
)) * (
x784 = r2←v15512, *(float*)&x784
)) - (
x785 = (* (( (ptr) gf←c22652)+33)/* fact3recip←v5240 */ ), *(float*)&x785
)) * (
x786 = r2←v15512, *(float*)&x786
)) * (
x787 = radians←v10804, *(float*)&x787
)) + (
x788 = radians←v10804, *(float*)&x788
), *(word*)&tf789
));
};
};
};
};
}
static word CosFirstOctant←P2640(radians←v10908)
word radians←v10908;
{
register ptr gf←c22684 = (ptr) &globalframe;
word var←c10952;
/* CosFirstOctant: */
SOURCE(19458, 207)
SOURCE(19514, 151)
{
word x790;
word x791;
if (((
x790 = radians←v10908, *(float*)&x790
) <= (
x791 = (* (( (ptr) gf←c22684)+36)/* sinCosEps←v5324 */ ), *(float*)&x791
))) {
SOURCE(19543, 18)
return((* (ptr) &fc8 ));
}
else {
SOURCE(19561, 106)
{
word r2←v15556;
SOURCE(19563, 26)
{
word x792;
word x793;
*(float*)&r2←v15556 = (
x792 = radians←v10908, *(float*)&x792
) * (
x793 = radians←v10908, *(float*)&x793
);
};
SOURCE(19591, 74)
{
word x794;
word x795;
word x796;
word x797;
word x798;
word x799;
word x800;
word x801;
word x802;
float tf803;
return((
tf803 = ((((((((
x794 = (* (( (ptr) gf←c22684)+28)/* fact8recip←v5100 */ ), *(float*)&x794
) * (
x795 = r2←v15556, *(float*)&x795
)) - (
x796 = (* (( (ptr) gf←c22684)+30)/* fact6recip←v5156 */ ), *(float*)&x796
)) * (
x797 = r2←v15556, *(float*)&x797
)) + (
x798 = (* (( (ptr) gf←c22684)+32)/* fact4recip←v5212 */ ), *(float*)&x798
)) * (
x799 = r2←v15556, *(float*)&x799
)) - (
x800 = (* (( (ptr) gf←c22684)+34)/* fact2recip←v5268 */ ), *(float*)&x800
)) * (
x801 = r2←v15556, *(float*)&x801
)) + (
x802 = (* (ptr) &fc8 ), *(float*)&x802
), *(word*)&tf803
));
};
};
};
};
}
static word GetWithinTwoPI←P2700(radians←v11012)
word radians←v11012;
{
register ptr gf←c22716 = (ptr) &globalframe;
word var←c11056;
word xn←v15600;
/* GetWithinTwoPI: */
SOURCE(19781, 157)
SOURCE(19837, 44)
{
word pd804;
word x805;
word x806;
float tf807;
float tf808;
pd804 = (* (( (ptr) (* (( (ptr) gf←c22716)+169)/* var←c20220 */ ))+8) );
xn←v15600 = (
tf808 = (float)(int)(word) ( *( (fPt) ((* (ptr) pd804 ))))((
tf807 = (
x805 = radians←v11012, *(float*)&x805
) * (
x806 = (* (( (ptr) gf←c22716)+12)/* rec2pi←v3224 */ ), *(float*)&x806
), *(word*)&tf807
), pd804), *(word*)&tf808
);
};
SOURCE(19900, 38)
{
word x809;
word x810;
word x811;
word x812;
word x813;
float tf814;
return((
tf814 = ((
x809 = radians←v11012, *(float*)&x809
) - ((
x810 = xn←v15600, *(float*)&x810
) * (
x811 = (* (( (ptr) gf←c22716)+37)/* PIc1←v5408 */ ), *(float*)&x811
))) - ((
x812 = xn←v15600, *(float*)&x812
) * (
x813 = (* (( (ptr) gf←c22716)+38)/* PIc2←v5436 */ ), *(float*)&x813
)), *(word*)&tf814
));
};
}
static word GetWithin360←P2760(degrees←v11116)
word degrees←v11116;
{
register ptr gf←c22748 = (ptr) &globalframe;
word var←c11160;
word xn←v15644;
/* GetWithin360: */
SOURCE(19944, 142)
SOURCE(19998, 44)
{
word pd815;
word x816;
word x817;
float tf818;
float tf819;
pd815 = (* (( (ptr) (* (( (ptr) gf←c22748)+169)/* var←c20220 */ ))+8) );
xn←v15644 = (
tf819 = (float)(int)(word) ( *( (fPt) ((* (ptr) pd815 ))))((
tf818 = (
x816 = degrees←v11116, *(float*)&x816
) * (
x817 = (* (( (ptr) gf←c22748)+13)/* rec360←v3252 */ ), *(float*)&x817
), *(word*)&tf818
), pd815), *(word*)&tf819
);
};
SOURCE(20061, 25)
{
word x820;
word x821;
word x822;
float tf823;
return((
tf823 = (
x820 = degrees←v11116, *(float*)&x820
) - ((
x821 = xn←v15644, *(float*)&x821
) * (
x822 = (* (ptr) &fc35 ), *(float*)&x822
)), *(word*)&tf823
));
};
}
static void Mul32←P2820(formal←c0363, x←v11220, y←v11248)
word formal←c0363;
word x←v11220;
word y←v11248;
{
word var←c11292;
word var←c11320;
word a←v15688;
word b←v15716;
word hi←v15744;
word lo←v15772;
word t1←v15800;
word t2←v15828;
word cy←v15856;
/* Mul32: */
SOURCE(20092, 426)
SOURCE(20148, 32)
a←v15688 = x←v11220;
SOURCE(20182, 32)
b←v15716 = y←v11248;
SOURCE(20265, 35)
lo←v15772 = (( (((unsigned)a←v15688 << 16) >> 16) ) * ( (((unsigned)b←v15716 << 16) >> 16) ));
SOURCE(20302, 35)
hi←v15744 = (((unsigned)a←v15688 >> 16) * ((unsigned)b←v15716 >> 16));
SOURCE(20339, 35)
t1←v15800 = (((unsigned)a←v15688 >> 16) * ( (((unsigned)b←v15716 << 16) >> 16) ));
SOURCE(20376, 35)
t2←v15828 = (( (((unsigned)a←v15688 << 16) >> 16) ) * ((unsigned)b←v15716 >> 16));
SOURCE(20413, 39)
{
W2 var←c21916;
{
word s←v15900;
SOURCE(20612, 42)
s←v15900 = ((((unsigned)lo←v15772 >> 16) + ( (((unsigned)t1←v15800 << 16) >> 16) )) + ( (((unsigned)t2←v15828 << 16) >> 16) ));
SOURCE(20656, 18)
(* (ptr) (word) &var←c21916 ) = ((unsigned)s←v15900 >> 16);
(* (( (ptr) (word) &var←c21916) + 1) ) = ( (((unsigned)s←v15900 << 16) >> 16) );
};
lo←v15772 = (lo←v15772 & 65535) | ((((* (( (hPt) &var←c21916)+3) ))) << 16);
cy←v15856 = var←c21916.f0;
};
SOURCE(20454, 38)
hi←v15744 = (((hi←v15744 + ((unsigned)t1←v15800 >> 16)) + ((unsigned)t2←v15828 >> 16)) + cy←v15856);
SOURCE(20494, 24)
var←c11292 = hi←v15744;
var←c11320 = lo←v15772;
/* removed tail goto */
(* (ptr) formal←c0363 ) = var←c11292;
(* (( (ptr) formal←c0363)+1) ) = var←c11320;
return;
}
/* file: RealFnsImpl, module: RealFnsImpl, compiled at: February 21, 1992 9:05:24 pm PST */
extern void XR←install←RealFnsImpl() {
NoName←Q4404();
}
extern void XR←run←RealFnsImpl() { XR←Start(&globalframe); }