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