spandsp  0.0.6
math_fixed_tables.h
1 static const uint16_t fixed_reciprocal_table[129] =
2 {
3  32768,
4  32514,
5  32264,
6  32018,
7  31775,
8  31536,
9  31301,
10  31069,
11  30840,
12  30615,
13  30394,
14  30175,
15  29959,
16  29747,
17  29537,
18  29331,
19  29127,
20  28926,
21  28728,
22  28533,
23  28340,
24  28150,
25  27962,
26  27777,
27  27594,
28  27414,
29  27236,
30  27060,
31  26887,
32  26715,
33  26546,
34  26379,
35  26214,
36  26052,
37  25891,
38  25732,
39  25575,
40  25420,
41  25267,
42  25116,
43  24966,
44  24818,
45  24672,
46  24528,
47  24385,
48  24245,
49  24105,
50  23967,
51  23831,
52  23697,
53  23564,
54  23432,
55  23302,
56  23173,
57  23046,
58  22920,
59  22795,
60  22672,
61  22550,
62  22429,
63  22310,
64  22192,
65  22075,
66  21960,
67  21845,
68  21732,
69  21620,
70  21509,
71  21400,
72  21291,
73  21183,
74  21077,
75  20972,
76  20867,
77  20764,
78  20662,
79  20560,
80  20460,
81  20361,
82  20262,
83  20165,
84  20068,
85  19973,
86  19878,
87  19784,
88  19692,
89  19600,
90  19508,
91  19418,
92  19329,
93  19240,
94  19152,
95  19065,
96  18979,
97  18893,
98  18809,
99  18725,
100  18641,
101  18559,
102  18477,
103  18396,
104  18316,
105  18236,
106  18157,
107  18079,
108  18001,
109  17924,
110  17848,
111  17772,
112  17697,
113  17623,
114  17549,
115  17476,
116  17404,
117  17332,
118  17261,
119  17190,
120  17120,
121  17050,
122  16981,
123  16913,
124  16845,
125  16777,
126  16710,
127  16644,
128  16578,
129  16513,
130  16448,
131  16384
132 };
133 
134 static const uint16_t fixed_sqrt_table[193] =
135 {
136  32768,
137  33023,
138  33276,
139  33527,
140  33776,
141  34024,
142  34270,
143  34514,
144  34756,
145  34996,
146  35235,
147  35472,
148  35708,
149  35942,
150  36175,
151  36406,
152  36636,
153  36864,
154  37091,
155  37316,
156  37540,
157  37763,
158  37985,
159  38205,
160  38424,
161  38642,
162  38858,
163  39073,
164  39287,
165  39500,
166  39712,
167  39923,
168  40132,
169  40341,
170  40548,
171  40755,
172  40960,
173  41164,
174  41368,
175  41570,
176  41771,
177  41972,
178  42171,
179  42369,
180  42567,
181  42763,
182  42959,
183  43154,
184  43348,
185  43541,
186  43733,
187  43925,
188  44115,
189  44305,
190  44494,
191  44682,
192  44869,
193  45056,
194  45242,
195  45427,
196  45611,
197  45795,
198  45977,
199  46160,
200  46341,
201  46522,
202  46702,
203  46881,
204  47059,
205  47237,
206  47415,
207  47591,
208  47767,
209  47942,
210  48117,
211  48291,
212  48465,
213  48637,
214  48809,
215  48981,
216  49152,
217  49322,
218  49492,
219  49661,
220  49830,
221  49998,
222  50166,
223  50332,
224  50499,
225  50665,
226  50830,
227  50995,
228  51159,
229  51323,
230  51486,
231  51649,
232  51811,
233  51972,
234  52134,
235  52294,
236  52454,
237  52614,
238  52773,
239  52932,
240  53090,
241  53248,
242  53405,
243  53562,
244  53719,
245  53874,
246  54030,
247  54185,
248  54340,
249  54494,
250  54647,
251  54801,
252  54954,
253  55106,
254  55258,
255  55410,
256  55561,
257  55712,
258  55862,
259  56012,
260  56162,
261  56311,
262  56459,
263  56608,
264  56756,
265  56903,
266  57051,
267  57198,
268  57344,
269  57490,
270  57636,
271  57781,
272  57926,
273  58071,
274  58215,
275  58359,
276  58503,
277  58646,
278  58789,
279  58931,
280  59073,
281  59215,
282  59357,
283  59498,
284  59639,
285  59779,
286  59919,
287  60059,
288  60199,
289  60338,
290  60477,
291  60615,
292  60753,
293  60891,
294  61029,
295  61166,
296  61303,
297  61440,
298  61576,
299  61712,
300  61848,
301  61984,
302  62119,
303  62254,
304  62388,
305  62523,
306  62657,
307  62790,
308  62924,
309  63057,
310  63190,
311  63323,
312  63455,
313  63587,
314  63719,
315  63850,
316  63982,
317  64113,
318  64243,
319  64374,
320  64504,
321  64634,
322  64763,
323  64893,
324  65022,
325  65151,
326  65279,
327  65408,
328  65535
329 };
330 
331 static const int16_t fixed_log10_table[129] =
332 {
333  -9864,
334  -9753,
335  -9644,
336  -9534,
337  -9426,
338  -9319,
339  -9212,
340  -9106,
341  -9001,
342  -8897,
343  -8794,
344  -8691,
345  -8589,
346  -8488,
347  -8387,
348  -8287,
349  -8188,
350  -8090,
351  -7992,
352  -7895,
353  -7798,
354  -7702,
355  -7607,
356  -7512,
357  -7419,
358  -7325,
359  -7233,
360  -7140,
361  -7049,
362  -6958,
363  -6868,
364  -6778,
365  -6689,
366  -6600,
367  -6512,
368  -6424,
369  -6337,
370  -6251,
371  -6165,
372  -6079,
373  -5994,
374  -5910,
375  -5826,
376  -5742,
377  -5659,
378  -5577,
379  -5495,
380  -5413,
381  -5332,
382  -5252,
383  -5171,
384  -5092,
385  -5012,
386  -4934,
387  -4855,
388  -4777,
389  -4700,
390  -4623,
391  -4546,
392  -4470,
393  -4394,
394  -4318,
395  -4243,
396  -4168,
397  -4094,
398  -4020,
399  -3947,
400  -3873,
401  -3801,
402  -3728,
403  -3656,
404  -3584,
405  -3513,
406  -3442,
407  -3371,
408  -3301,
409  -3231,
410  -3162,
411  -3092,
412  -3023,
413  -2955,
414  -2887,
415  -2819,
416  -2751,
417  -2684,
418  -2617,
419  -2550,
420  -2484,
421  -2418,
422  -2352,
423  -2287,
424  -2222,
425  -2157,
426  -2092,
427  -2028,
428  -1964,
429  -1900,
430  -1837,
431  -1774,
432  -1711,
433  -1648,
434  -1586,
435  -1524,
436  -1462,
437  -1401,
438  -1340,
439  -1279,
440  -1218,
441  -1158,
442  -1097,
443  -1038,
444  -978,
445  -918,
446  -859,
447  -800,
448  -742,
449  -683,
450  -625,
451  -567,
452  -509,
453  -452,
454  -395,
455  -338,
456  -281,
457  -224,
458  -168,
459  -112,
460  -56,
461  0
462 };
463 
464 static const int16_t fixed_sine_table[257] =
465 {
466  0,
467  201,
468  402,
469  603,
470  804,
471  1005,
472  1206,
473  1407,
474  1608,
475  1809,
476  2009,
477  2210,
478  2411,
479  2611,
480  2811,
481  3012,
482  3212,
483  3412,
484  3612,
485  3812,
486  4011,
487  4211,
488  4410,
489  4609,
490  4808,
491  5007,
492  5205,
493  5404,
494  5602,
495  5800,
496  5998,
497  6195,
498  6393,
499  6590,
500  6787,
501  6983,
502  7180,
503  7376,
504  7571,
505  7767,
506  7962,
507  8157,
508  8351,
509  8546,
510  8740,
511  8933,
512  9127,
513  9319,
514  9512,
515  9704,
516  9896,
517  10088,
518  10279,
519  10469,
520  10660,
521  10850,
522  11039,
523  11228,
524  11417,
525  11605,
526  11793,
527  11980,
528  12167,
529  12354,
530  12540,
531  12725,
532  12910,
533  13095,
534  13279,
535  13463,
536  13646,
537  13828,
538  14010,
539  14192,
540  14373,
541  14553,
542  14733,
543  14912,
544  15091,
545  15269,
546  15447,
547  15624,
548  15800,
549  15976,
550  16151,
551  16326,
552  16500,
553  16673,
554  16846,
555  17018,
556  17190,
557  17361,
558  17531,
559  17700,
560  17869,
561  18037,
562  18205,
563  18372,
564  18538,
565  18703,
566  18868,
567  19032,
568  19195,
569  19358,
570  19520,
571  19681,
572  19841,
573  20001,
574  20160,
575  20318,
576  20475,
577  20632,
578  20788,
579  20943,
580  21097,
581  21251,
582  21403,
583  21555,
584  21706,
585  21856,
586  22006,
587  22154,
588  22302,
589  22449,
590  22595,
591  22740,
592  22884,
593  23028,
594  23170,
595  23312,
596  23453,
597  23593,
598  23732,
599  23870,
600  24008,
601  24144,
602  24279,
603  24414,
604  24548,
605  24680,
606  24812,
607  24943,
608  25073,
609  25202,
610  25330,
611  25457,
612  25583,
613  25708,
614  25833,
615  25956,
616  26078,
617  26199,
618  26320,
619  26439,
620  26557,
621  26674,
622  26791,
623  26906,
624  27020,
625  27133,
626  27246,
627  27357,
628  27467,
629  27576,
630  27684,
631  27791,
632  27897,
633  28002,
634  28106,
635  28209,
636  28311,
637  28411,
638  28511,
639  28610,
640  28707,
641  28803,
642  28899,
643  28993,
644  29086,
645  29178,
646  29269,
647  29359,
648  29448,
649  29535,
650  29622,
651  29707,
652  29792,
653  29875,
654  29957,
655  30038,
656  30118,
657  30196,
658  30274,
659  30350,
660  30425,
661  30499,
662  30572,
663  30644,
664  30715,
665  30784,
666  30853,
667  30920,
668  30986,
669  31050,
670  31114,
671  31177,
672  31238,
673  31298,
674  31357,
675  31415,
676  31471,
677  31527,
678  31581,
679  31634,
680  31686,
681  31737,
682  31786,
683  31834,
684  31881,
685  31927,
686  31972,
687  32015,
688  32058,
689  32099,
690  32138,
691  32177,
692  32214,
693  32251,
694  32286,
695  32319,
696  32352,
697  32383,
698  32413,
699  32442,
700  32470,
701  32496,
702  32522,
703  32546,
704  32568,
705  32590,
706  32610,
707  32629,
708  32647,
709  32664,
710  32679,
711  32693,
712  32706,
713  32718,
714  32729,
715  32738,
716  32746,
717  32753,
718  32758,
719  32762,
720  32766,
721  32767,
722  32767
723 };
724 
725 static const uint16_t fixed_arctan_table[257] =
726 {
727  1,
728  41,
729  81,
730  122,
731  163,
732  204,
733  244,
734  285,
735  326,
736  367,
737  407,
738  448,
739  489,
740  529,
741  570,
742  610,
743  651,
744  692,
745  732,
746  773,
747  813,
748  854,
749  894,
750  935,
751  975,
752  1015,
753  1056,
754  1096,
755  1136,
756  1177,
757  1217,
758  1257,
759  1297,
760  1337,
761  1377,
762  1417,
763  1457,
764  1497,
765  1537,
766  1577,
767  1617,
768  1656,
769  1696,
770  1736,
771  1775,
772  1815,
773  1854,
774  1894,
775  1933,
776  1973,
777  2012,
778  2051,
779  2090,
780  2129,
781  2168,
782  2207,
783  2246,
784  2285,
785  2324,
786  2363,
787  2401,
788  2440,
789  2478,
790  2517,
791  2555,
792  2594,
793  2632,
794  2670,
795  2708,
796  2746,
797  2784,
798  2822,
799  2860,
800  2897,
801  2935,
802  2973,
803  3010,
804  3047,
805  3085,
806  3122,
807  3159,
808  3196,
809  3233,
810  3270,
811  3307,
812  3344,
813  3380,
814  3417,
815  3453,
816  3490,
817  3526,
818  3562,
819  3599,
820  3635,
821  3670,
822  3706,
823  3742,
824  3778,
825  3813,
826  3849,
827  3884,
828  3920,
829  3955,
830  3990,
831  4025,
832  4060,
833  4095,
834  4129,
835  4164,
836  4199,
837  4233,
838  4267,
839  4302,
840  4336,
841  4370,
842  4404,
843  4438,
844  4471,
845  4505,
846  4539,
847  4572,
848  4605,
849  4639,
850  4672,
851  4705,
852  4738,
853  4771,
854  4803,
855  4836,
856  4869,
857  4901,
858  4933,
859  4966,
860  4998,
861  5030,
862  5062,
863  5094,
864  5125,
865  5157,
866  5188,
867  5220,
868  5251,
869  5282,
870  5313,
871  5344,
872  5375,
873  5406,
874  5437,
875  5467,
876  5498,
877  5528,
878  5559,
879  5589,
880  5619,
881  5649,
882  5679,
883  5708,
884  5738,
885  5768,
886  5797,
887  5826,
888  5856,
889  5885,
890  5914,
891  5943,
892  5972,
893  6000,
894  6029,
895  6058,
896  6086,
897  6114,
898  6142,
899  6171,
900  6199,
901  6227,
902  6254,
903  6282,
904  6310,
905  6337,
906  6365,
907  6392,
908  6419,
909  6446,
910  6473,
911  6500,
912  6527,
913  6554,
914  6580,
915  6607,
916  6633,
917  6660,
918  6686,
919  6712,
920  6738,
921  6764,
922  6790,
923  6815,
924  6841,
925  6867,
926  6892,
927  6917,
928  6943,
929  6968,
930  6993,
931  7018,
932  7043,
933  7068,
934  7092,
935  7117,
936  7141,
937  7166,
938  7190,
939  7214,
940  7238,
941  7262,
942  7286,
943  7310,
944  7334,
945  7358,
946  7381,
947  7405,
948  7428,
949  7451,
950  7475,
951  7498,
952  7521,
953  7544,
954  7566,
955  7589,
956  7612,
957  7635,
958  7657,
959  7679,
960  7702,
961  7724,
962  7746,
963  7768,
964  7790,
965  7812,
966  7834,
967  7856,
968  7877,
969  7899,
970  7920,
971  7942,
972  7963,
973  7984,
974  8005,
975  8026,
976  8047,
977  8068,
978  8089,
979  8110,
980  8131,
981  8151,
982  8172,
983  8192
984 };
985