2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
14 * $Source: /cvs/cvsroot/d2x/maths/tables.c,v $
15 * $Revision: 1.1.1.1 $
17 * $Date: 2001-01-19 03:29:58 $
19 * C version of fixed point library
21 * $Log: not supported by cvs2svn $
22 * Revision 1.1.1.1 1999/06/14 22:13:38 donut
23 * Import of d1x 1.37 source.
25 * Revision 1.2 1995/08/31 15:44:36 allender
28 * Revision 1.1 1995/04/17 11:38:04 allender
36 ubyte guess_table[] = {
42 5,5,5,5,5,5,5,5,5,5,5,
43 6,6,6,6,6,6,6,6,6,6,6,6,6,
44 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
45 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
46 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
47 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,
48 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,
49 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,
50 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,
51 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,
52 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
55 short sincos_table[] = {
380 ushort asin_table[] = {
638 16384 //extra for when exacty 1
641 ushort acos_table[] = {
899 0 //extra for when exacty 1
902 fix isqrt_guess_table[] = {
905 16777216,11863283,9686330,8388608,7502999,6849269,6341191,
906 5931641,5592405,5305421,5058520,4843165,4653162,4483899,4331858,
907 4194304,4069072,3954427,3848957,3751499,3661088,3576914,3498291,
908 3424634,3355443,3290282,3228776,3170595,3115450,3063086,3013276,
909 2965820,2920538,2877268,2835867,2796202,2758157,2721623,2686504,
910 2652710,2620160,2588780,2558501,2529260,2500999,2473665,2447208,
911 2421582,2396745,2372656,2349280,2326581,2304527,2283089,2262239,
912 2241949,2222196,2202956,2184207,2165929,2148102,2130708,2113730,
913 2097152,2080957,2065132,2049663,2034536,2019739,2005260,1991089,
914 1977213,1963624,1950311,1937266,1924478,1911941,1899645,1887584,
915 1875749,1864135,1852733,1841538,1830544,1819744,1809133,1798706,
916 1788457,1778381,1768473,1758730,1749145,1739716,1730437,1721306,
917 1712317,1703468,1694754,1686173,1677721,1669395,1661191,1653108,
918 1645141,1637288,1629547,1621914,1614388,1606965,1599644,1592422,
919 1585297,1578267,1571330,1564483,1557725,1551054,1544467,1537964,
920 1531543,1525201,1518937,1512750,1506638,1500599,1494633,1488737,
921 1482910,1477151,1471459,1465832,1460269,1454769,1449330,1443952,
922 1438634,1433374,1428171,1423024,1417933,1412896,1407912,1402981,
923 1398101,1393271,1388492,1383761,1379078,1374443,1369853,1365310,
924 1360811,1356357,1351946,1347578,1343252,1338967,1334723,1330519,
925 1326355,1322229,1318142,1314092,1310080,1306104,1302164,1298259,
926 1294390,1290555,1286753,1282985,1279250,1275548,1271877,1268238,
927 1264630,1261052,1257505,1253987,1250499,1247040,1243609,1240207,
928 1236832,1233485,1230165,1226871,1223604,1220362,1217147,1213956,
929 1210791,1207650,1204533,1201441,1198372,1195327,1192304,1189305,
930 1186328,1183373,1180440,1177529,1174640,1171771,1168924,1166097,
931 1163290,1160504,1157737,1154991,1152263,1149555,1146866,1144196,
932 1141544,1138911,1136296,1133699,1131119,1128557,1126013,1123485,
933 1120974,1118481,1116003,1113542,1111098,1108669,1106256,1103859,
934 1101478,1099111,1096760,1094424,1092103,1089797,1087505,1085227,
935 1082964,1080715,1078480,1076258,1074051,1071857,1069676,1067508,
936 1065354,1063212,1061084,1058968,1056865,1054774,1052696,1050630,
937 1048576,1046533,1044503,1042485,1040478,1038483,1036499,1034527,
938 1032566,1030616,1028677,1026748,1024831,1022924,1021028,1019143,
939 1017268,1015403,1013548,1011704,1009869,1008045,1006230,1004425,
940 1002630,1000844,999068,997301,995544,993796,992057,990327,
941 988606,986895,985192,983497,981812,980135,978467,976807,
942 975155,973512,971878,970251,968633,967022,965420,963825,
943 962239,960660,959089,957526,955970,954422,952881,951348,
944 949822,948304,946793,945289,943792,942302,940819,939343,
945 937874,936412,934957,933509,932067,930632,929204,927782,
946 926366,924957,923555,922159,920769,919385,918008,916637,
947 915272,913913,912560,911213,909872,908537,907207,905884,
948 904566,903254,901948,900648,899353,898063,896779,895501,
949 894228,892961,891698,890442,889190,887944,886703,885467,
950 884236,883011,881790,880575,879365,878159,876959,875763,
951 874572,873386,872205,871029,869858,868691,867529,866371,
952 865218,864070,862926,861787,860653,859522,858397,857275,
953 856158,855046,853937,852833,851734,850638,849547,848460,
954 847377,846298,845223,844153,843086,842024,840965,839911,
955 838860,837814,836771,835732,834697,833666,832639,831615,
956 830595,829579,828567,827559,826554,825552,824555,823561,
957 822570,821583,820600,819620,818644,817671,816702,815736,
958 814773,813814,812858,811906,810957,810011,809069,808130,
959 807194,806261,805332,804405,803482,802563,801646,800732,
960 799822,798915,798010,797109,796211,795316,794424,793535,
961 792648,791765,790885,790008,789133,788262,787393,786528,
962 785665,784805,783947,783093,782241,781392,780546,779703,
963 778862,778024,777189,776356,775527,774699,773875,773053,
964 772233,771417,770603,769791,768982,768175,767371,766570,
965 765771,764975,764181,763389,762600,761814,761029,760248,
966 759468,758691,757917,757145,756375,755607,754842,754079,
967 753319,752560,751805,751051,750299,749550,748803,748059,
968 747316,746576,745838,745102,744368,743637,742907,742180,
969 741455,740732,740011,739292,738575,737861,737148,736438,
970 735729,735023,734318,733616,732916,732217,731521,730827,
971 730134,729444,728755,728069,727384,726701,726021,725342,
972 724665,723990,723317,722645,721976,721308,720643,719979,
973 719317,718656,717998,717341,716687,716034,715382,714733,
974 714085,713439,712795,712153,711512,710873,710236,709600,
975 708966,708334,707704,707075,706448,705822,705198,704576,
976 703956,703337,702720,702104,701490,700878,700267,699658,
977 699050,698444,697840,697237,696635,696036,695437,694841,
978 694246,693652,693060,692469,691880,691293,690707,690122,
979 689539,688957,688377,687798,687221,686645,686071,685498,
980 684926,684356,683788,683221,682655,682090,681527,680966,
981 680405,679847,679289,678733,678178,677625,677073,676522,
982 675973,675425,674878,674333,673789,673246,672705,672164,
983 671626,671088,670552,670017,669483,668951,668420,667890,
984 667361,666834,666308,665783,665259,664737,664216,663696,
985 663177,662660,662143,661628,661114,660602,660090,659580,
986 659071,658563,658056,657550,657046,656543,656041,655540,
987 655040,654541,654043,653547,653052,652558,652065,651573,
988 651082,650592,650103,649616,649129,648644,648160,647677,
989 647195,646714,646234,645755,645277,644800,644325,643850,
990 643376,642904,642432,641962,641492,641024,640557,640090,
991 639625,639161,638697,638235,637774,637313,636854,636396,
992 635938,635482,635026,634572,634119,633666,633215,632764,
993 632315,631866,631418,630972,630526,630081,629637,629194,
994 628752,628311,627871,627432,626993,626556,626120,625684,
995 625249,624816,624383,623951,623520,623090,622660,622232,
996 621804,621378,620952,620527,620103,619680,619258,618836,
997 618416,617996,617577,617159,616742,616326,615910,615496,
998 615082,614669,614257,613846,613435,613026,612617,612209,
999 611802,611395,610990,610585,610181,609778,609375,608974,
1000 608573,608173,607774,607375,606978,606581,606185,605790,
1001 605395,605001,604608,604216,603825,603434,603044,602655,
1002 602266,601879,601492,601106,600720,600335,599952,599568,
1003 599186,598804,598423,598043,597663,597284,596906,596529,
1004 596152,595776,595401,595026,594652,594279,593907,593535,
1005 593164,592793,592424,592055,591686,591319,590952,590585,
1006 590220,589855,589491,589127,588764,588402,588041,587680,
1007 587320,586960,586601,586243,585885,585528,585172,584816,
1008 584462,584107,583754,583400,583048,582696,582345,581995,
1009 581645,581296,580947,580599,580252,579905,579559,579213,
1010 578868,578524,578181,577838,577495,577153,576812,576471,
1011 576131,575792,575453,575115,574777,574440,574104,573768,
1012 573433,573098,572764,572431,572098,571765,571434,571103,
1013 570772,570442,570113,569784,569455,569128,568800,568474,
1014 568148,567822,567497,567173,566849,566526,566203,565881,
1015 565559,565238,564918,564598,564278,563959,563641,563323,
1016 563006,562689,562373,562057,561742,561428,561114,560800,
1017 560487,560174,559862,559551,559240,558930,558620,558310,
1018 558001,557693,557385,557078,556771,556465,556159,555853,
1019 555549,555244,554940,554637,554334,554032,553730,553429,
1020 553128,552828,552528,552228,551929,551631,551333,551036,
1021 550739,550442,550146,549851,549555,549261,548967,548673,
1022 548380,548087,547795,547503,547212,546921,546631,546341,
1023 546051,545762,545474,545186,544898,544611,544324,544038,
1024 543752,543467,543182,542897,542613,542330,542047,541764,
1025 541482,541200,540919,540638,540357,540077,539798,539518,
1026 539240,538961,538683,538406,538129,537852,537576,537300,
1027 537025,536750,536476,536202,535928,535655,535382,535110,
1028 534838,534566,534295,534024,533754,533484,533214,532945,
1029 532677,532408,532140,531873,531606,531339,531073,530807,
1030 530542,530277,530012,529748,529484,529220,528957,528694,
1031 528432,528170,527909,527648,527387,527126,526866,526607,
1032 526348,526089,525830,525572,525315,525057,524800,524544