More header unification...
[btb/d2x.git] / maths / tables.c
1 /*
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.
12 */
13 /*
14  * $Source: /cvs/cvsroot/d2x/maths/tables.c,v $
15  * $Revision: 1.1.1.1 $
16  * $Author: bradleyb $
17  * $Date: 2001-01-19 03:29:58 $
18  * 
19  * C version of fixed point library
20  * 
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.
24  *
25  * Revision 1.2  1995/08/31  15:44:36  allender
26  * ..
27  *
28  * Revision 1.1  1995/04/17  11:38:04  allender
29  * Initial revision
30  *
31 */
32
33 #include <conf.h>
34 #include "maths.h"
35
36 ubyte guess_table[] = {
37         1,                              
38         1,1,1,          
39         2,2,2,2,2,      
40         3,3,3,3,3,3,3,  
41         4,4,4,4,4,4,4,4,4,      
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
53 };
54
55 short sincos_table[] = {
56         0,
57         402,
58         804,
59         1205,
60         1606,
61         2006,
62         2404,
63         2801,
64         3196,
65         3590,
66         3981,
67         4370,
68         4756,
69         5139,
70         5520,
71         5897,
72         6270,
73         6639,
74         7005,
75         7366,
76         7723,
77         8076,
78         8423,
79         8765,
80         9102,
81         9434,
82         9760,
83         10080,
84         10394,
85         10702,
86         11003,
87         11297,
88         11585,
89         11866,
90         12140,
91         12406,
92         12665,
93         12916,
94         13160,
95         13395,
96         13623,
97         13842,
98         14053,
99         14256,
100         14449,
101         14635,
102         14811,
103         14978,
104         15137,
105         15286,
106         15426,
107         15557,
108         15679,
109         15791,
110         15893,
111         15986,
112         16069,
113         16143,
114         16207,
115         16261,
116         16305,
117         16340,
118         16364,
119         16379,
120 //cos_table
121         16384,
122         16379,
123         16364,
124         16340,
125         16305,
126         16261,
127         16207,
128         16143,
129         16069,
130         15986,
131         15893,
132         15791,
133         15679,
134         15557,
135         15426,
136         15286,
137         15137,
138         14978,
139         14811,
140         14635,
141         14449,
142         14256,
143         14053,
144         13842,
145         13623,
146         13395,
147         13160,
148         12916,
149         12665,
150         12406,
151         12140,
152         11866,
153         11585,
154         11297,
155         11003,
156         10702,
157         10394,
158         10080,
159         9760,
160         9434,
161         9102,
162         8765,
163         8423,
164         8076,
165         7723,
166         7366,
167         7005,
168         6639,
169         6270,
170         5897,
171         5520,
172         5139,
173         4756,
174         4370,
175         3981,
176         3590,
177         3196,
178         2801,
179         2404,
180         2006,
181         1606,
182         1205,
183         804,
184         402,
185         0,
186         -402,
187         -804,
188         -1205,
189         -1606,
190         -2006,
191         -2404,
192         -2801,
193         -3196,
194         -3590,
195         -3981,
196         -4370,
197         -4756,
198         -5139,
199         -5520,
200         -5897,
201         -6270,
202         -6639,
203         -7005,
204         -7366,
205         -7723,
206         -8076,
207         -8423,
208         -8765,
209         -9102,
210         -9434,
211         -9760,
212         -10080,
213         -10394,
214         -10702,
215         -11003,
216         -11297,
217         -11585,
218         -11866,
219         -12140,
220         -12406,
221         -12665,
222         -12916,
223         -13160,
224         -13395,
225         -13623,
226         -13842,
227         -14053,
228         -14256,
229         -14449,
230         -14635,
231         -14811,
232         -14978,
233         -15137,
234         -15286,
235         -15426,
236         -15557,
237         -15679,
238         -15791,
239         -15893,
240         -15986,
241         -16069,
242         -16143,
243         -16207,
244         -16261,
245         -16305,
246         -16340,
247         -16364,
248         -16379,
249         -16384,
250         -16379,
251         -16364,
252         -16340,
253         -16305,
254         -16261,
255         -16207,
256         -16143,
257         -16069,
258         -15986,
259         -15893,
260         -15791,
261         -15679,
262         -15557,
263         -15426,
264         -15286,
265         -15137,
266         -14978,
267         -14811,
268         -14635,
269         -14449,
270         -14256,
271         -14053,
272         -13842,
273         -13623,
274         -13395,
275         -13160,
276         -12916,
277         -12665,
278         -12406,
279         -12140,
280         -11866,
281         -11585,
282         -11297,
283         -11003,
284         -10702,
285         -10394,
286         -10080,
287         -9760,
288         -9434,
289         -9102,
290         -8765,
291         -8423,
292         -8076,
293         -7723,
294         -7366,
295         -7005,
296         -6639,
297         -6270,
298         -5897,
299         -5520,
300         -5139,
301         -4756,
302         -4370,
303         -3981,
304         -3590,
305         -3196,
306         -2801,
307         -2404,
308         -2006,
309         -1606,
310         -1205,
311         -804,
312         -402,
313         0,
314         402,
315         804,
316         1205,
317         1606,
318         2006,
319         2404,
320         2801,
321         3196,
322         3590,
323         3981,
324         4370,
325         4756,
326         5139,
327         5520,
328         5897,
329         6270,
330         6639,
331         7005,
332         7366,
333         7723,
334         8076,
335         8423,
336         8765,
337         9102,
338         9434,
339         9760,
340         10080,
341         10394,
342         10702,
343         11003,
344         11297,
345         11585,
346         11866,
347         12140,
348         12406,
349         12665,
350         12916,
351         13160,
352         13395,
353         13623,
354         13842,
355         14053,
356         14256,
357         14449,
358         14635,
359         14811,
360         14978,
361         15137,
362         15286,
363         15426,
364         15557,
365         15679,
366         15791,
367         15893,
368         15986,
369         16069,
370         16143,
371         16207,
372         16261,
373         16305,
374         16340,
375         16364,
376         16379,
377         16384
378 };
379
380 ushort asin_table[] = {
381         0,
382         41,
383         81,
384         122,
385         163,
386         204,
387         244,
388         285,
389         326,
390         367,
391         408,
392         448,
393         489,
394         530,
395         571,
396         612,
397         652,
398         693,
399         734,
400         775,
401         816,
402         857,
403         897,
404         938,
405         979,
406         1020,
407         1061,
408         1102,
409         1143,
410         1184,
411         1225,
412         1266,
413         1307,
414         1348,
415         1389,
416         1431,
417         1472,
418         1513,
419         1554,
420         1595,
421         1636,
422         1678,
423         1719,
424         1760,
425         1802,
426         1843,
427         1884,
428         1926,
429         1967,
430         2009,
431         2050,
432         2092,
433         2134,
434         2175,
435         2217,
436         2259,
437         2300,
438         2342,
439         2384,
440         2426,
441         2468,
442         2510,
443         2551,
444         2593,
445         2636,
446         2678,
447         2720,
448         2762,
449         2804,
450         2847,
451         2889,
452         2931,
453         2974,
454         3016,
455         3059,
456         3101,
457         3144,
458         3187,
459         3229,
460         3272,
461         3315,
462         3358,
463         3401,
464         3444,
465         3487,
466         3530,
467         3573,
468         3617,
469         3660,
470         3704,
471         3747,
472         3791,
473         3834,
474         3878,
475         3922,
476         3965,
477         4009,
478         4053,
479         4097,
480         4142,
481         4186,
482         4230,
483         4275,
484         4319,
485         4364,
486         4408,
487         4453,
488         4498,
489         4543,
490         4588,
491         4633,
492         4678,
493         4723,
494         4768,
495         4814,
496         4859,
497         4905,
498         4951,
499         4997,
500         5043,
501         5089,
502         5135,
503         5181,
504         5228,
505         5274,
506         5321,
507         5367,
508         5414,
509         5461,
510         5508,
511         5556,
512         5603,
513         5651,
514         5698,
515         5746,
516         5794,
517         5842,
518         5890,
519         5938,
520         5987,
521         6035,
522         6084,
523         6133,
524         6182,
525         6231,
526         6281,
527         6330,
528         6380,
529         6430,
530         6480,
531         6530,
532         6580,
533         6631,
534         6681,
535         6732,
536         6783,
537         6835,
538         6886,
539         6938,
540         6990,
541         7042,
542         7094,
543         7147,
544         7199,
545         7252,
546         7306,
547         7359,
548         7413,
549         7466,
550         7521,
551         7575,
552         7630,
553         7684,
554         7740,
555         7795,
556         7851,
557         7907,
558         7963,
559         8019,
560         8076,
561         8133,
562         8191,
563         8249,
564         8307,
565         8365,
566         8424,
567         8483,
568         8543,
569         8602,
570         8663,
571         8723,
572         8784,
573         8846,
574         8907,
575         8970,
576         9032,
577         9095,
578         9159,
579         9223,
580         9288,
581         9353,
582         9418,
583         9484,
584         9551,
585         9618,
586         9686,
587         9754,
588         9823,
589         9892,
590         9963,
591         10034,
592         10105,
593         10177,
594         10251,
595         10324,
596         10399,
597         10475,
598         10551,
599         10628,
600         10706,
601         10785,
602         10866,
603         10947,
604         11029,
605         11113,
606         11198,
607         11284,
608         11371,
609         11460,
610         11550,
611         11642,
612         11736,
613         11831,
614         11929,
615         12028,
616         12130,
617         12234,
618         12340,
619         12449,
620         12561,
621         12677,
622         12796,
623         12919,
624         13046,
625         13178,
626         13315,
627         13459,
628         13610,
629         13770,
630         13939,
631         14121,
632         14319,
633         14538,
634         14786,
635         15079,
636         15462,
637         16384,
638         16384                   //extra for when exacty 1
639 };
640
641 ushort acos_table[] = {
642         16384,
643         16343,
644         16303,
645         16262,
646         16221,
647         16180,
648         16140,
649         16099,
650         16058,
651         16017,
652         15976,
653         15936,
654         15895,
655         15854,
656         15813,
657         15772,
658         15732,
659         15691,
660         15650,
661         15609,
662         15568,
663         15527,
664         15487,
665         15446,
666         15405,
667         15364,
668         15323,
669         15282,
670         15241,
671         15200,
672         15159,
673         15118,
674         15077,
675         15036,
676         14995,
677         14953,
678         14912,
679         14871,
680         14830,
681         14789,
682         14748,
683         14706,
684         14665,
685         14624,
686         14582,
687         14541,
688         14500,
689         14458,
690         14417,
691         14375,
692         14334,
693         14292,
694         14250,
695         14209,
696         14167,
697         14125,
698         14084,
699         14042,
700         14000,
701         13958,
702         13916,
703         13874,
704         13833,
705         13791,
706         13748,
707         13706,
708         13664,
709         13622,
710         13580,
711         13537,
712         13495,
713         13453,
714         13410,
715         13368,
716         13325,
717         13283,
718         13240,
719         13197,
720         13155,
721         13112,
722         13069,
723         13026,
724         12983,
725         12940,
726         12897,
727         12854,
728         12811,
729         12767,
730         12724,
731         12680,
732         12637,
733         12593,
734         12550,
735         12506,
736         12462,
737         12419,
738         12375,
739         12331,
740         12287,
741         12242,
742         12198,
743         12154,
744         12109,
745         12065,
746         12020,
747         11976,
748         11931,
749         11886,
750         11841,
751         11796,
752         11751,
753         11706,
754         11661,
755         11616,
756         11570,
757         11525,
758         11479,
759         11433,
760         11387,
761         11341,
762         11295,
763         11249,
764         11203,
765         11156,
766         11110,
767         11063,
768         11017,
769         10970,
770         10923,
771         10876,
772         10828,
773         10781,
774         10733,
775         10686,
776         10638,
777         10590,
778         10542,
779         10494,
780         10446,
781         10397,
782         10349,
783         10300,
784         10251,
785         10202,
786         10153,
787         10103,
788         10054,
789         10004,
790         9954,
791         9904,
792         9854,
793         9804,
794         9753,
795         9703,
796         9652,
797         9601,
798         9549,
799         9498,
800         9446,
801         9394,
802         9342,
803         9290,
804         9237,
805         9185,
806         9132,
807         9078,
808         9025,
809         8971,
810         8918,
811         8863,
812         8809,
813         8754,
814         8700,
815         8644,
816         8589,
817         8533,
818         8477,
819         8421,
820         8365,
821         8308,
822         8251,
823         8193,
824         8135,
825         8077,
826         8019,
827         7960,
828         7901,
829         7841,
830         7782,
831         7721,
832         7661,
833         7600,
834         7538,
835         7477,
836         7414,
837         7352,
838         7289,
839         7225,
840         7161,
841         7096,
842         7031,
843         6966,
844         6900,
845         6833,
846         6766,
847         6698,
848         6630,
849         6561,
850         6492,
851         6421,
852         6350,
853         6279,
854         6207,
855         6133,
856         6060,
857         5985,
858         5909,
859         5833,
860         5756,
861         5678,
862         5599,
863         5518,
864         5437,
865         5355,
866         5271,
867         5186,
868         5100,
869         5013,
870         4924,
871         4834,
872         4742,
873         4648,
874         4553,
875         4455,
876         4356,
877         4254,
878         4150,
879         4044,
880         3935,
881         3823,
882         3707,
883         3588,
884         3465,
885         3338,
886         3206,
887         3069,
888         2925,
889         2774,
890         2614,
891         2445,
892         2263,
893         2065,
894         1846,
895         1598,
896         1305,
897         922,
898         0,
899         0       //extra for when exacty 1
900 };
901
902 fix isqrt_guess_table[] = {
903 //      0,
904         0x80000000,
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
1033 };
1034