/* 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); }