]> git.sesse.net Git - vlc/blob - modules/audio_filter/resampler/bandlimited.h
90f32db31c609394a0115522164bc825f6cef941
[vlc] / modules / audio_filter / resampler / bandlimited.h
1 /*****************************************************************************
2  * bandlimited.h : bandlimited interpolation resampler
3  *****************************************************************************
4  * Copyright (C) 2002 the VideoLAN team
5  * $Id$
6  *
7  * Authors: Gildas Bazin <gbazin@netcourrier.com>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  * 
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 /* Conversion constants */
25 #define Nhc       8
26 #define Npc      (1<<Nhc)
27
28 /* Description of constants:
29  *
30  * Npc - is the number of look-up values available for the lowpass filter
31  *    between the beginning of its impulse response and the "cutoff time"
32  *    of the filter.  The cutoff time is defined as the reciprocal of the
33  *    lowpass-filter cut off frequence in Hz.  For example, if the
34  *    lowpass filter were a sinc function, Npc would be the index of the
35  *    impulse-response lookup-table corresponding to the first zero-
36  *    crossing of the sinc function.  (The inverse first zero-crossing
37  *    time of a sinc function equals its nominal cutoff frequency in Hz.)
38  *    Npc must be a power of 2 due to the details of the current
39  *    implementation. The default value of 512 is sufficiently high that
40  *    using linear interpolation to fill in between the table entries
41  *    gives approximately 16-bit accuracy in filter coefficients.
42  *
43  * Nhc - is log base 2 of Npc.
44  */
45
46 #define SMALL_FILTER_NMULT ((int16_t)13)
47 #define SMALL_FILTER_SCALE 13128 /* Unity-gain scale factor */
48 #define SMALL_FILTER_NWING 1536 /* Filter table length */
49 static float SMALL_FILTER_FLOAT_IMP[] /* Impulse response */ = {
50 0.900000,
51 0.899980,
52 0.899920,
53 0.899821,
54 0.899681,
55 0.899502,
56 0.899283,
57 0.899024,
58 0.898726,
59 0.898388,
60 0.898010,
61 0.897592,
62 0.897135,
63 0.896638,
64 0.896102,
65 0.895526,
66 0.894911,
67 0.894256,
68 0.893562,
69 0.892829,
70 0.892056,
71 0.891244,
72 0.890394,
73 0.889504,
74 0.888575,
75 0.887608,
76 0.886602,
77 0.885557,
78 0.884474,
79 0.883352,
80 0.882192,
81 0.880993,
82 0.879756,
83 0.878482,
84 0.877169,
85 0.875818,
86 0.874430,
87 0.873004,
88 0.871541,
89 0.870040,
90 0.868502,
91 0.866927,
92 0.865315,
93 0.863667,
94 0.861981,
95 0.860259,
96 0.858501,
97 0.856707,
98 0.854876,
99 0.853010,
100 0.851108,
101 0.849170,
102 0.847197,
103 0.845189,
104 0.843146,
105 0.841067,
106 0.838954,
107 0.836807,
108 0.834625,
109 0.832409,
110 0.830160,
111 0.827876,
112 0.825559,
113 0.823209,
114 0.820825,
115 0.818408,
116 0.815959,
117 0.813477,
118 0.810963,
119 0.808417,
120 0.805839,
121 0.803229,
122 0.800588,
123 0.797916,
124 0.795213,
125 0.792479,
126 0.789714,
127 0.786919,
128 0.784095,
129 0.781240,
130 0.778356,
131 0.775442,
132 0.772500,
133 0.769529,
134 0.766529,
135 0.763501,
136 0.760444,
137 0.757361,
138 0.754249,
139 0.751110,
140 0.747945,
141 0.744753,
142 0.741534,
143 0.738289,
144 0.735018,
145 0.731721,
146 0.728400,
147 0.725053,
148 0.721681,
149 0.718285,
150 0.714865,
151 0.711420,
152 0.707953,
153 0.704461,
154 0.700947,
155 0.697410,
156 0.693851,
157 0.690269,
158 0.686665,
159 0.683040,
160 0.679394,
161 0.675727,
162 0.672039,
163 0.668331,
164 0.664602,
165 0.660854,
166 0.657087,
167 0.653300,
168 0.649495,
169 0.645671,
170 0.641829,
171 0.637969,
172 0.634091,
173 0.630197,
174 0.626285,
175 0.622357,
176 0.618412,
177 0.614452,
178 0.610476,
179 0.606485,
180 0.602478,
181 0.598457,
182 0.594422,
183 0.590373,
184 0.586310,
185 0.582234,
186 0.578144,
187 0.574042,
188 0.569928,
189 0.565801,
190 0.561663,
191 0.557514,
192 0.553353,
193 0.549182,
194 0.545001,
195 0.540809,
196 0.536607,
197 0.532397,
198 0.528177,
199 0.523948,
200 0.519711,
201 0.515466,
202 0.511214,
203 0.506954,
204 0.502686,
205 0.498413,
206 0.494132,
207 0.489846,
208 0.485554,
209 0.481256,
210 0.476954,
211 0.472646,
212 0.468335,
213 0.464019,
214 0.459699,
215 0.455377,
216 0.451050,
217 0.446722,
218 0.442390,
219 0.438057,
220 0.433722,
221 0.429385,
222 0.425048,
223 0.420709,
224 0.416370,
225 0.412031,
226 0.407692,
227 0.403354,
228 0.399016,
229 0.394679,
230 0.390344,
231 0.386011,
232 0.381680,
233 0.377351,
234 0.373025,
235 0.368702,
236 0.364382,
237 0.360066,
238 0.355754,
239 0.351446,
240 0.347143,
241 0.342844,
242 0.338551,
243 0.334264,
244 0.329982,
245 0.325706,
246 0.321437,
247 0.317174,
248 0.312918,
249 0.308670,
250 0.304429,
251 0.300197,
252 0.295972,
253 0.291756,
254 0.287548,
255 0.283350,
256 0.279161,
257 0.274982,
258 0.270812,
259 0.266653,
260 0.262504,
261 0.258366,
262 0.254239,
263 0.250123,
264 0.246018,
265 0.241926,
266 0.237846,
267 0.233777,
268 0.229722,
269 0.225679,
270 0.221650,
271 0.217634,
272 0.213632,
273 0.209643,
274 0.205669,
275 0.201709,
276 0.197764,
277 0.193833,
278 0.189918,
279 0.186018,
280 0.182134,
281 0.178265,
282 0.174413,
283 0.170577,
284 0.166758,
285 0.162955,
286 0.159169,
287 0.155401,
288 0.151650,
289 0.147916,
290 0.144201,
291 0.140503,
292 0.136824,
293 0.133163,
294 0.129521,
295 0.125898,
296 0.122294,
297 0.118710,
298 0.115145,
299 0.111599,
300 0.108073,
301 0.104568,
302 0.101083,
303 0.097618,
304 0.094174,
305 0.090750,
306 0.087348,
307 0.083966,
308 0.080606,
309 0.077268,
310 0.073951,
311 0.070656,
312 0.067383,
313 0.064132,
314 0.060903,
315 0.057697,
316 0.054513,
317 0.051352,
318 0.048214,
319 0.045099,
320 0.042006,
321 0.038938,
322 0.035892,
323 0.032870,
324 0.029872,
325 0.026898,
326 0.023947,
327 0.021021,
328 0.018118,
329 0.015240,
330 0.012386,
331 0.009557,
332 0.006752,
333 0.003972,
334 0.001217,
335 -0.001514,
336 -0.004219,
337 -0.006900,
338 -0.009555,
339 -0.012186,
340 -0.014790,
341 -0.017370,
342 -0.019924,
343 -0.022453,
344 -0.024956,
345 -0.027433,
346 -0.029885,
347 -0.032310,
348 -0.034710,
349 -0.037085,
350 -0.039433,
351 -0.041755,
352 -0.044051,
353 -0.046321,
354 -0.048565,
355 -0.050782,
356 -0.052974,
357 -0.055139,
358 -0.057278,
359 -0.059391,
360 -0.061477,
361 -0.063537,
362 -0.065570,
363 -0.067577,
364 -0.069558,
365 -0.071513,
366 -0.073440,
367 -0.075342,
368 -0.077217,
369 -0.079065,
370 -0.080887,
371 -0.082683,
372 -0.084452,
373 -0.086195,
374 -0.087911,
375 -0.089601,
376 -0.091265,
377 -0.092902,
378 -0.094513,
379 -0.096097,
380 -0.097656,
381 -0.099188,
382 -0.100693,
383 -0.102173,
384 -0.103626,
385 -0.105053,
386 -0.106454,
387 -0.107830,
388 -0.109179,
389 -0.110502,
390 -0.111799,
391 -0.113070,
392 -0.114316,
393 -0.115536,
394 -0.116730,
395 -0.117899,
396 -0.119042,
397 -0.120159,
398 -0.121251,
399 -0.122318,
400 -0.123360,
401 -0.124376,
402 -0.125368,
403 -0.126334,
404 -0.127275,
405 -0.128192,
406 -0.129083,
407 -0.129950,
408 -0.130793,
409 -0.131611,
410 -0.132404,
411 -0.133174,
412 -0.133919,
413 -0.134640,
414 -0.135337,
415 -0.136010,
416 -0.136659,
417 -0.137284,
418 -0.137886,
419 -0.138465,
420 -0.139020,
421 -0.139552,
422 -0.140061,
423 -0.140547,
424 -0.141010,
425 -0.141451,
426 -0.141868,
427 -0.142263,
428 -0.142636,
429 -0.142987,
430 -0.143316,
431 -0.143622,
432 -0.143907,
433 -0.144170,
434 -0.144412,
435 -0.144632,
436 -0.144830,
437 -0.145008,
438 -0.145165,
439 -0.145301,
440 -0.145416,
441 -0.145511,
442 -0.145585,
443 -0.145639,
444 -0.145673,
445 -0.145687,
446 -0.145681,
447 -0.145656,
448 -0.145611,
449 -0.145547,
450 -0.145464,
451 -0.145361,
452 -0.145240,
453 -0.145100,
454 -0.144942,
455 -0.144766,
456 -0.144571,
457 -0.144358,
458 -0.144127,
459 -0.143879,
460 -0.143613,
461 -0.143330,
462 -0.143030,
463 -0.142713,
464 -0.142379,
465 -0.142028,
466 -0.141661,
467 -0.141278,
468 -0.140878,
469 -0.140463,
470 -0.140032,
471 -0.139585,
472 -0.139123,
473 -0.138646,
474 -0.138153,
475 -0.137646,
476 -0.137124,
477 -0.136588,
478 -0.136037,
479 -0.135473,
480 -0.134894,
481 -0.134302,
482 -0.133696,
483 -0.133076,
484 -0.132444,
485 -0.131798,
486 -0.131140,
487 -0.130469,
488 -0.129785,
489 -0.129089,
490 -0.128381,
491 -0.127662,
492 -0.126930,
493 -0.126187,
494 -0.125433,
495 -0.124668,
496 -0.123891,
497 -0.123104,
498 -0.122306,
499 -0.121498,
500 -0.120680,
501 -0.119851,
502 -0.119013,
503 -0.118165,
504 -0.117308,
505 -0.116441,
506 -0.115565,
507 -0.114681,
508 -0.113788,
509 -0.112886,
510 -0.111976,
511 -0.111057,
512 -0.110131,
513 -0.109197,
514 -0.108255,
515 -0.107306,
516 -0.106350,
517 -0.105386,
518 -0.104416,
519 -0.103439,
520 -0.102455,
521 -0.101466,
522 -0.100470,
523 -0.099468,
524 -0.098460,
525 -0.097447,
526 -0.096428,
527 -0.095404,
528 -0.094375,
529 -0.093341,
530 -0.092303,
531 -0.091260,
532 -0.090212,
533 -0.089161,
534 -0.088105,
535 -0.087046,
536 -0.085982,
537 -0.084916,
538 -0.083846,
539 -0.082773,
540 -0.081697,
541 -0.080618,
542 -0.079536,
543 -0.078452,
544 -0.077366,
545 -0.076277,
546 -0.075187,
547 -0.074095,
548 -0.073001,
549 -0.071905,
550 -0.070808,
551 -0.069710,
552 -0.068611,
553 -0.067512,
554 -0.066411,
555 -0.065310,
556 -0.064209,
557 -0.063107,
558 -0.062005,
559 -0.060903,
560 -0.059802,
561 -0.058701,
562 -0.057600,
563 -0.056500,
564 -0.055401,
565 -0.054303,
566 -0.053206,
567 -0.052110,
568 -0.051015,
569 -0.049922,
570 -0.048831,
571 -0.047741,
572 -0.046654,
573 -0.045568,
574 -0.044485,
575 -0.043403,
576 -0.042325,
577 -0.041249,
578 -0.040175,
579 -0.039105,
580 -0.038037,
581 -0.036973,
582 -0.035912,
583 -0.034854,
584 -0.033799,
585 -0.032749,
586 -0.031701,
587 -0.030658,
588 -0.029619,
589 -0.028583,
590 -0.027552,
591 -0.026525,
592 -0.025502,
593 -0.024484,
594 -0.023471,
595 -0.022462,
596 -0.021458,
597 -0.020459,
598 -0.019464,
599 -0.018475,
600 -0.017491,
601 -0.016513,
602 -0.015539,
603 -0.014572,
604 -0.013610,
605 -0.012653,
606 -0.011702,
607 -0.010757,
608 -0.009818,
609 -0.008885,
610 -0.007958,
611 -0.007038,
612 -0.006123,
613 -0.005215,
614 -0.004313,
615 -0.003418,
616 -0.002530,
617 -0.001648,
618 -0.000772,
619 0.000096,
620 0.000958,
621 0.001813,
622 0.002660,
623 0.003501,
624 0.004335,
625 0.005161,
626 0.005980,
627 0.006792,
628 0.007597,
629 0.008394,
630 0.009183,
631 0.009965,
632 0.010740,
633 0.011507,
634 0.012266,
635 0.013018,
636 0.013762,
637 0.014498,
638 0.015226,
639 0.015946,
640 0.016658,
641 0.017363,
642 0.018059,
643 0.018747,
644 0.019428,
645 0.020100,
646 0.020764,
647 0.021420,
648 0.022067,
649 0.022707,
650 0.023338,
651 0.023961,
652 0.024575,
653 0.025181,
654 0.025779,
655 0.026369,
656 0.026950,
657 0.027523,
658 0.028087,
659 0.028643,
660 0.029191,
661 0.029730,
662 0.030260,
663 0.030782,
664 0.031296,
665 0.031801,
666 0.032297,
667 0.032785,
668 0.033265,
669 0.033736,
670 0.034199,
671 0.034653,
672 0.035098,
673 0.035536,
674 0.035964,
675 0.036384,
676 0.036796,
677 0.037199,
678 0.037594,
679 0.037980,
680 0.038358,
681 0.038727,
682 0.039088,
683 0.039441,
684 0.039785,
685 0.040121,
686 0.040448,
687 0.040768,
688 0.041078,
689 0.041381,
690 0.041675,
691 0.041961,
692 0.042239,
693 0.042509,
694 0.042770,
695 0.043024,
696 0.043269,
697 0.043506,
698 0.043735,
699 0.043956,
700 0.044169,
701 0.044375,
702 0.044572,
703 0.044761,
704 0.044943,
705 0.045116,
706 0.045282,
707 0.045440,
708 0.045591,
709 0.045734,
710 0.045869,
711 0.045996,
712 0.046117,
713 0.046229,
714 0.046334,
715 0.046432,
716 0.046522,
717 0.046605,
718 0.046681,
719 0.046750,
720 0.046811,
721 0.046865,
722 0.046913,
723 0.046953,
724 0.046986,
725 0.047012,
726 0.047032,
727 0.047044,
728 0.047050,
729 0.047049,
730 0.047042,
731 0.047028,
732 0.047007,
733 0.046980,
734 0.046946,
735 0.046907,
736 0.046860,
737 0.046808,
738 0.046749,
739 0.046684,
740 0.046613,
741 0.046536,
742 0.046453,
743 0.046365,
744 0.046270,
745 0.046169,
746 0.046063,
747 0.045951,
748 0.045834,
749 0.045711,
750 0.045583,
751 0.045449,
752 0.045310,
753 0.045165,
754 0.045016,
755 0.044861,
756 0.044701,
757 0.044536,
758 0.044366,
759 0.044192,
760 0.044012,
761 0.043828,
762 0.043639,
763 0.043445,
764 0.043247,
765 0.043045,
766 0.042838,
767 0.042626,
768 0.042411,
769 0.042191,
770 0.041967,
771 0.041738,
772 0.041506,
773 0.041270,
774 0.041030,
775 0.040786,
776 0.040539,
777 0.040288,
778 0.040033,
779 0.039774,
780 0.039513,
781 0.039247,
782 0.038979,
783 0.038707,
784 0.038432,
785 0.038154,
786 0.037872,
787 0.037588,
788 0.037301,
789 0.037011,
790 0.036718,
791 0.036422,
792 0.036124,
793 0.035823,
794 0.035520,
795 0.035214,
796 0.034906,
797 0.034595,
798 0.034282,
799 0.033967,
800 0.033650,
801 0.033330,
802 0.033009,
803 0.032686,
804 0.032361,
805 0.032034,
806 0.031705,
807 0.031375,
808 0.031043,
809 0.030709,
810 0.030374,
811 0.030037,
812 0.029700,
813 0.029360,
814 0.029020,
815 0.028678,
816 0.028336,
817 0.027992,
818 0.027647,
819 0.027301,
820 0.026955,
821 0.026607,
822 0.026259,
823 0.025910,
824 0.025561,
825 0.025210,
826 0.024860,
827 0.024508,
828 0.024157,
829 0.023805,
830 0.023453,
831 0.023100,
832 0.022748,
833 0.022395,
834 0.022042,
835 0.021689,
836 0.021336,
837 0.020983,
838 0.020630,
839 0.020278,
840 0.019926,
841 0.019573,
842 0.019222,
843 0.018870,
844 0.018520,
845 0.018169,
846 0.017819,
847 0.017470,
848 0.017121,
849 0.016773,
850 0.016426,
851 0.016080,
852 0.015734,
853 0.015389,
854 0.015045,
855 0.014702,
856 0.014360,
857 0.014019,
858 0.013679,
859 0.013341,
860 0.013003,
861 0.012667,
862 0.012332,
863 0.011998,
864 0.011665,
865 0.011334,
866 0.011004,
867 0.010676,
868 0.010349,
869 0.010024,
870 0.009700,
871 0.009377,
872 0.009057,
873 0.008738,
874 0.008421,
875 0.008105,
876 0.007791,
877 0.007479,
878 0.007169,
879 0.006861,
880 0.006554,
881 0.006249,
882 0.005947,
883 0.005646,
884 0.005347,
885 0.005051,
886 0.004756,
887 0.004464,
888 0.004173,
889 0.003885,
890 0.003599,
891 0.003315,
892 0.003033,
893 0.002753,
894 0.002476,
895 0.002201,
896 0.001928,
897 0.001658,
898 0.001390,
899 0.001124,
900 0.000861,
901 0.000600,
902 0.000341,
903 0.000085,
904 -0.000169,
905 -0.000420,
906 -0.000669,
907 -0.000915,
908 -0.001159,
909 -0.001400,
910 -0.001639,
911 -0.001875,
912 -0.002109,
913 -0.002340,
914 -0.002568,
915 -0.002794,
916 -0.003017,
917 -0.003238,
918 -0.003456,
919 -0.003671,
920 -0.003884,
921 -0.004094,
922 -0.004301,
923 -0.004506,
924 -0.004708,
925 -0.004907,
926 -0.005104,
927 -0.005298,
928 -0.005489,
929 -0.005678,
930 -0.005863,
931 -0.006046,
932 -0.006227,
933 -0.006405,
934 -0.006579,
935 -0.006752,
936 -0.006921,
937 -0.007088,
938 -0.007252,
939 -0.007413,
940 -0.007572,
941 -0.007728,
942 -0.007881,
943 -0.008031,
944 -0.008179,
945 -0.008324,
946 -0.008466,
947 -0.008606,
948 -0.008743,
949 -0.008877,
950 -0.009008,
951 -0.009137,
952 -0.009263,
953 -0.009387,
954 -0.009507,
955 -0.009626,
956 -0.009741,
957 -0.009854,
958 -0.009964,
959 -0.010071,
960 -0.010176,
961 -0.010278,
962 -0.010378,
963 -0.010475,
964 -0.010569,
965 -0.010661,
966 -0.010751,
967 -0.010837,
968 -0.010922,
969 -0.011003,
970 -0.011082,
971 -0.011159,
972 -0.011233,
973 -0.011305,
974 -0.011374,
975 -0.011441,
976 -0.011505,
977 -0.011567,
978 -0.011626,
979 -0.011683,
980 -0.011738,
981 -0.011790,
982 -0.011840,
983 -0.011887,
984 -0.011932,
985 -0.011975,
986 -0.012016,
987 -0.012054,
988 -0.012090,
989 -0.012124,
990 -0.012156,
991 -0.012185,
992 -0.012212,
993 -0.012237,
994 -0.012260,
995 -0.012281,
996 -0.012299,
997 -0.012316,
998 -0.012330,
999 -0.012342,
1000 -0.012352,
1001 -0.012361,
1002 -0.012367,
1003 -0.012371,
1004 -0.012373,
1005 -0.012374,
1006 -0.012372,
1007 -0.012368,
1008 -0.012363,
1009 -0.012356,
1010 -0.012346,
1011 -0.012335,
1012 -0.012323,
1013 -0.012308,
1014 -0.012292,
1015 -0.012274,
1016 -0.012254,
1017 -0.012232,
1018 -0.012209,
1019 -0.012184,
1020 -0.012157,
1021 -0.012129,
1022 -0.012099,
1023 -0.012068,
1024 -0.012035,
1025 -0.012001,
1026 -0.011965,
1027 -0.011927,
1028 -0.011888,
1029 -0.011848,
1030 -0.011806,
1031 -0.011763,
1032 -0.011718,
1033 -0.011672,
1034 -0.011625,
1035 -0.011576,
1036 -0.011527,
1037 -0.011475,
1038 -0.011423,
1039 -0.011369,
1040 -0.011314,
1041 -0.011258,
1042 -0.011201,
1043 -0.011143,
1044 -0.011083,
1045 -0.011022,
1046 -0.010961,
1047 -0.010898,
1048 -0.010834,
1049 -0.010769,
1050 -0.010704,
1051 -0.010637,
1052 -0.010569,
1053 -0.010501,
1054 -0.010431,
1055 -0.010361,
1056 -0.010289,
1057 -0.010217,
1058 -0.010144,
1059 -0.010070,
1060 -0.009996,
1061 -0.009921,
1062 -0.009845,
1063 -0.009768,
1064 -0.009690,
1065 -0.009612,
1066 -0.009533,
1067 -0.009454,
1068 -0.009374,
1069 -0.009293,
1070 -0.009212,
1071 -0.009130,
1072 -0.009048,
1073 -0.008965,
1074 -0.008882,
1075 -0.008798,
1076 -0.008714,
1077 -0.008629,
1078 -0.008544,
1079 -0.008459,
1080 -0.008373,
1081 -0.008287,
1082 -0.008200,
1083 -0.008113,
1084 -0.008026,
1085 -0.007938,
1086 -0.007851,
1087 -0.007763,
1088 -0.007674,
1089 -0.007586,
1090 -0.007497,
1091 -0.007408,
1092 -0.007319,
1093 -0.007230,
1094 -0.007141,
1095 -0.007051,
1096 -0.006962,
1097 -0.006872,
1098 -0.006783,
1099 -0.006693,
1100 -0.006603,
1101 -0.006514,
1102 -0.006424,
1103 -0.006334,
1104 -0.006244,
1105 -0.006155,
1106 -0.006065,
1107 -0.005976,
1108 -0.005886,
1109 -0.005797,
1110 -0.005708,
1111 -0.005619,
1112 -0.005530,
1113 -0.005441,
1114 -0.005352,
1115 -0.005264,
1116 -0.005176,
1117 -0.005088,
1118 -0.005000,
1119 -0.004912,
1120 -0.004825,
1121 -0.004738,
1122 -0.004651,
1123 -0.004565,
1124 -0.004479,
1125 -0.004393,
1126 -0.004307,
1127 -0.004222,
1128 -0.004137,
1129 -0.004053,
1130 -0.003969,
1131 -0.003885,
1132 -0.003802,
1133 -0.003719,
1134 -0.003636,
1135 -0.003554,
1136 -0.003472,
1137 -0.003391,
1138 -0.003310,
1139 -0.003230,
1140 -0.003150,
1141 -0.003071,
1142 -0.002992,
1143 -0.002913,
1144 -0.002835,
1145 -0.002758,
1146 -0.002681,
1147 -0.002604,
1148 -0.002528,
1149 -0.002453,
1150 -0.002378,
1151 -0.002304,
1152 -0.002230,
1153 -0.002157,
1154 -0.002084,
1155 -0.002012,
1156 -0.001941,
1157 -0.001870,
1158 -0.001800,
1159 -0.001730,
1160 -0.001661,
1161 -0.001593,
1162 -0.001525,
1163 -0.001458,
1164 -0.001391,
1165 -0.001325,
1166 -0.001260,
1167 -0.001195,
1168 -0.001131,
1169 -0.001068,
1170 -0.001005,
1171 -0.000943,
1172 -0.000881,
1173 -0.000821,
1174 -0.000760,
1175 -0.000701,
1176 -0.000642,
1177 -0.000584,
1178 -0.000526,
1179 -0.000470,
1180 -0.000413,
1181 -0.000358,
1182 -0.000303,
1183 -0.000249,
1184 -0.000196,
1185 -0.000143,
1186 -0.000091,
1187 -0.000039,
1188 0.000011,
1189 0.000061,
1190 0.000111,
1191 0.000159,
1192 0.000207,
1193 0.000254,
1194 0.000301,
1195 0.000347,
1196 0.000392,
1197 0.000437,
1198 0.000480,
1199 0.000523,
1200 0.000566,
1201 0.000608,
1202 0.000649,
1203 0.000689,
1204 0.000729,
1205 0.000768,
1206 0.000806,
1207 0.000844,
1208 0.000881,
1209 0.000917,
1210 0.000953,
1211 0.000988,
1212 0.001022,
1213 0.001056,
1214 0.001089,
1215 0.001121,
1216 0.001153,
1217 0.001184,
1218 0.001214,
1219 0.001244,
1220 0.001273,
1221 0.001302,
1222 0.001329,
1223 0.001356,
1224 0.001383,
1225 0.001409,
1226 0.001434,
1227 0.001459,
1228 0.001483,
1229 0.001506,
1230 0.001529,
1231 0.001551,
1232 0.001573,
1233 0.001594,
1234 0.001614,
1235 0.001634,
1236 0.001653,
1237 0.001671,
1238 0.001689,
1239 0.001707,
1240 0.001724,
1241 0.001740,
1242 0.001756,
1243 0.001771,
1244 0.001785,
1245 0.001799,
1246 0.001813,
1247 0.001826,
1248 0.001838,
1249 0.001850,
1250 0.001862,
1251 0.001872,
1252 0.001883,
1253 0.001893,
1254 0.001902,
1255 0.001911,
1256 0.001919,
1257 0.001927,
1258 0.001934,
1259 0.001941,
1260 0.001947,
1261 0.001953,
1262 0.001959,
1263 0.001964,
1264 0.001968,
1265 0.001972,
1266 0.001976,
1267 0.001979,
1268 0.001982,
1269 0.001984,
1270 0.001986,
1271 0.001988,
1272 0.001989,
1273 0.001990,
1274 0.001990,
1275 0.001990,
1276 0.001989,
1277 0.001988,
1278 0.001987,
1279 0.001986,
1280 0.001984,
1281 0.001981,
1282 0.001979,
1283 0.001976,
1284 0.001972,
1285 0.001968,
1286 0.001964,
1287 0.001960,
1288 0.001955,
1289 0.001950,
1290 0.001945,
1291 0.001939,
1292 0.001933,
1293 0.001927,
1294 0.001921,
1295 0.001914,
1296 0.001907,
1297 0.001900,
1298 0.001892,
1299 0.001884,
1300 0.001876,
1301 0.001868,
1302 0.001859,
1303 0.001850,
1304 0.001841,
1305 0.001832,
1306 0.001822,
1307 0.001813,
1308 0.001803,
1309 0.001792,
1310 0.001782,
1311 0.001772,
1312 0.001761,
1313 0.001750,
1314 0.001739,
1315 0.001727,
1316 0.001716,
1317 0.001704,
1318 0.001693,
1319 0.001681,
1320 0.001669,
1321 0.001656,
1322 0.001644,
1323 0.001631,
1324 0.001619,
1325 0.001606,
1326 0.001593,
1327 0.001580,
1328 0.001567,
1329 0.001554,
1330 0.001540,
1331 0.001527,
1332 0.001514,
1333 0.001500,
1334 0.001486,
1335 0.001472,
1336 0.001459,
1337 0.001445,
1338 0.001431,
1339 0.001417,
1340 0.001402,
1341 0.001388,
1342 0.001374,
1343 0.001360,
1344 0.001345,
1345 0.001331,
1346 0.001317,
1347 0.001302,
1348 0.001288,
1349 0.001273,
1350 0.001259,
1351 0.001244,
1352 0.001230,
1353 0.001215,
1354 0.001200,
1355 0.001186,
1356 0.001171,
1357 0.001157,
1358 0.001142,
1359 0.001128,
1360 0.001113,
1361 0.001098,
1362 0.001084,
1363 0.001069,
1364 0.001055,
1365 0.001041,
1366 0.001026,
1367 0.001012,
1368 0.000997,
1369 0.000983,
1370 0.000969,
1371 0.000955,
1372 0.000940,
1373 0.000926,
1374 0.000912,
1375 0.000898,
1376 0.000884,
1377 0.000870,
1378 0.000856,
1379 0.000843,
1380 0.000829,
1381 0.000815,
1382 0.000802,
1383 0.000788,
1384 0.000775,
1385 0.000761,
1386 0.000748,
1387 0.000735,
1388 0.000722,
1389 0.000709,
1390 0.000696,
1391 0.000683,
1392 0.000670,
1393 0.000657,
1394 0.000645,
1395 0.000632,
1396 0.000620,
1397 0.000608,
1398 0.000595,
1399 0.000583,
1400 0.000571,
1401 0.000559,
1402 0.000547,
1403 0.000536,
1404 0.000524,
1405 0.000512,
1406 0.000501,
1407 0.000490,
1408 0.000479,
1409 0.000467,
1410 0.000456,
1411 0.000446,
1412 0.000435,
1413 0.000424,
1414 0.000414,
1415 0.000403,
1416 0.000393,
1417 0.000383,
1418 0.000373,
1419 0.000363,
1420 0.000353,
1421 0.000343,
1422 0.000333,
1423 0.000324,
1424 0.000315,
1425 0.000305,
1426 0.000296,
1427 0.000287,
1428 0.000278,
1429 0.000269,
1430 0.000261,
1431 0.000252,
1432 0.000244,
1433 0.000235,
1434 0.000227,
1435 0.000219,
1436 0.000211,
1437 0.000203,
1438 0.000196,
1439 0.000188,
1440 0.000181,
1441 0.000173,
1442 0.000166,
1443 0.000159,
1444 0.000152,
1445 0.000145,
1446 0.000138,
1447 0.000131,
1448 0.000125,
1449 0.000118,
1450 0.000112,
1451 0.000106,
1452 0.000100,
1453 0.000094,
1454 0.000088,
1455 0.000082,
1456 0.000077,
1457 0.000071,
1458 0.000066,
1459 0.000060,
1460 0.000055,
1461 0.000050,
1462 0.000045,
1463 0.000040,
1464 0.000035,
1465 0.000031,
1466 0.000026,
1467 0.000022,
1468 0.000017,
1469 0.000013,
1470 0.000009,
1471 0.000005,
1472 0.000001,
1473 -0.000003,
1474 -0.000007,
1475 -0.000010,
1476 -0.000014,
1477 -0.000017,
1478 -0.000021,
1479 -0.000024,
1480 -0.000027,
1481 -0.000030,
1482 -0.000033,
1483 -0.000036,
1484 -0.000039,
1485 -0.000042,
1486 -0.000044,
1487 -0.000047,
1488 -0.000049,
1489 -0.000052,
1490 -0.000054,
1491 -0.000056,
1492 -0.000059,
1493 -0.000061,
1494 -0.000063,
1495 -0.000065,
1496 -0.000066,
1497 -0.000068,
1498 -0.000070,
1499 -0.000071,
1500 -0.000073,
1501 -0.000074,
1502 -0.000076,
1503 -0.000077,
1504 -0.000078,
1505 -0.000080,
1506 -0.000081,
1507 -0.000082,
1508 -0.000083,
1509 -0.000084,
1510 -0.000085,
1511 -0.000085,
1512 -0.000086,
1513 -0.000087,
1514 -0.000087,
1515 -0.000088,
1516 -0.000089,
1517 -0.000089,
1518 -0.000089,
1519 -0.000090,
1520 -0.000090,
1521 -0.000090,
1522 -0.000091,
1523 -0.000091,
1524 -0.000091,
1525 -0.000091,
1526 -0.000091,
1527 -0.000091,
1528 -0.000091,
1529 -0.000091,
1530 -0.000091,
1531 -0.000090,
1532 -0.000090,
1533 -0.000090,
1534 -0.000090,
1535 -0.000089,
1536 -0.000089,
1537 -0.000089,
1538 -0.000088,
1539 -0.000088,
1540 -0.000087,
1541 -0.000087,
1542 -0.000086,
1543 -0.000085,
1544 -0.000085,
1545 -0.000084,
1546 -0.000084,
1547 -0.000083,
1548 -0.000082,
1549 -0.000081,
1550 -0.000081,
1551 -0.000080,
1552 -0.000079,
1553 -0.000078,
1554 -0.000077,
1555 -0.000077,
1556 -0.000076,
1557 -0.000075,
1558 -0.000074,
1559 -0.000073,
1560 -0.000072,
1561 -0.000071,
1562 -0.000070,
1563 -0.000069,
1564 -0.000068,
1565 -0.000067,
1566 -0.000066,
1567 -0.000065,
1568 -0.000064,
1569 -0.000063,
1570 -0.000062,
1571 -0.000061,
1572 -0.000060,
1573 -0.000059,
1574 -0.000058,
1575 -0.000057,
1576 -0.000056,
1577 -0.000055,
1578 -0.000054,
1579 -0.000052,
1580 -0.000051,
1581 -0.000050,
1582 -0.000049,
1583 -0.000048,
1584 -0.000047,
1585 -0.000046
1586 };
1587
1588 static float SMALL_FILTER_FLOAT_IMPD[] /* Impulse response */ = {
1589 -0.000020,
1590 -0.000060,
1591 -0.000100,
1592 -0.000139,
1593 -0.000179,
1594 -0.000219,
1595 -0.000259,
1596 -0.000299,
1597 -0.000338,
1598 -0.000378,
1599 -0.000418,
1600 -0.000457,
1601 -0.000497,
1602 -0.000536,
1603 -0.000576,
1604 -0.000615,
1605 -0.000655,
1606 -0.000694,
1607 -0.000733,
1608 -0.000772,
1609 -0.000812,
1610 -0.000851,
1611 -0.000890,
1612 -0.000929,
1613 -0.000967,
1614 -0.001006,
1615 -0.001045,
1616 -0.001083,
1617 -0.001122,
1618 -0.001160,
1619 -0.001199,
1620 -0.001237,
1621 -0.001275,
1622 -0.001313,
1623 -0.001351,
1624 -0.001388,
1625 -0.001426,
1626 -0.001463,
1627 -0.001501,
1628 -0.001538,
1629 -0.001575,
1630 -0.001612,
1631 -0.001649,
1632 -0.001685,
1633 -0.001722,
1634 -0.001758,
1635 -0.001794,
1636 -0.001830,
1637 -0.001866,
1638 -0.001902,
1639 -0.001938,
1640 -0.001973,
1641 -0.002008,
1642 -0.002043,
1643 -0.002078,
1644 -0.002113,
1645 -0.002147,
1646 -0.002182,
1647 -0.002216,
1648 -0.002250,
1649 -0.002284,
1650 -0.002317,
1651 -0.002350,
1652 -0.002384,
1653 -0.002417,
1654 -0.002449,
1655 -0.002482,
1656 -0.002514,
1657 -0.002546,
1658 -0.002578,
1659 -0.002610,
1660 -0.002641,
1661 -0.002672,
1662 -0.002703,
1663 -0.002734,
1664 -0.002765,
1665 -0.002795,
1666 -0.002825,
1667 -0.002855,
1668 -0.002884,
1669 -0.002913,
1670 -0.002942,
1671 -0.002971,
1672 -0.003000,
1673 -0.003028,
1674 -0.003056,
1675 -0.003084,
1676 -0.003111,
1677 -0.003139,
1678 -0.003166,
1679 -0.003192,
1680 -0.003219,
1681 -0.003245,
1682 -0.003271,
1683 -0.003296,
1684 -0.003322,
1685 -0.003347,
1686 -0.003372,
1687 -0.003396,
1688 -0.003420,
1689 -0.003444,
1690 -0.003468,
1691 -0.003491,
1692 -0.003514,
1693 -0.003537,
1694 -0.003559,
1695 -0.003582,
1696 -0.003604,
1697 -0.003625,
1698 -0.003646,
1699 -0.003667,
1700 -0.003688,
1701 -0.003708,
1702 -0.003728,
1703 -0.003748,
1704 -0.003767,
1705 -0.003787,
1706 -0.003805,
1707 -0.003824,
1708 -0.003842,
1709 -0.003860,
1710 -0.003877,
1711 -0.003895,
1712 -0.003912,
1713 -0.003928,
1714 -0.003944,
1715 -0.003960,
1716 -0.003976,
1717 -0.003991,
1718 -0.004006,
1719 -0.004021,
1720 -0.004035,
1721 -0.004049,
1722 -0.004063,
1723 -0.004076,
1724 -0.004089,
1725 -0.004102,
1726 -0.004114,
1727 -0.004126,
1728 -0.004138,
1729 -0.004149,
1730 -0.004161,
1731 -0.004171,
1732 -0.004182,
1733 -0.004192,
1734 -0.004201,
1735 -0.004211,
1736 -0.004220,
1737 -0.004229,
1738 -0.004237,
1739 -0.004245,
1740 -0.004253,
1741 -0.004260,
1742 -0.004267,
1743 -0.004274,
1744 -0.004280,
1745 -0.004286,
1746 -0.004292,
1747 -0.004297,
1748 -0.004303,
1749 -0.004307,
1750 -0.004312,
1751 -0.004316,
1752 -0.004320,
1753 -0.004323,
1754 -0.004326,
1755 -0.004329,
1756 -0.004331,
1757 -0.004333,
1758 -0.004335,
1759 -0.004337,
1760 -0.004338,
1761 -0.004339,
1762 -0.004339,
1763 -0.004339,
1764 -0.004339,
1765 -0.004338,
1766 -0.004338,
1767 -0.004337,
1768 -0.004335,
1769 -0.004333,
1770 -0.004331,
1771 -0.004329,
1772 -0.004326,
1773 -0.004323,
1774 -0.004320,
1775 -0.004316,
1776 -0.004312,
1777 -0.004308,
1778 -0.004303,
1779 -0.004298,
1780 -0.004293,
1781 -0.004288,
1782 -0.004282,
1783 -0.004276,
1784 -0.004269,
1785 -0.004263,
1786 -0.004256,
1787 -0.004248,
1788 -0.004241,
1789 -0.004233,
1790 -0.004225,
1791 -0.004216,
1792 -0.004207,
1793 -0.004198,
1794 -0.004189,
1795 -0.004179,
1796 -0.004170,
1797 -0.004159,
1798 -0.004149,
1799 -0.004138,
1800 -0.004127,
1801 -0.004116,
1802 -0.004104,
1803 -0.004092,
1804 -0.004080,
1805 -0.004068,
1806 -0.004055,
1807 -0.004043,
1808 -0.004029,
1809 -0.004016,
1810 -0.004002,
1811 -0.003988,
1812 -0.003974,
1813 -0.003960,
1814 -0.003945,
1815 -0.003930,
1816 -0.003915,
1817 -0.003900,
1818 -0.003884,
1819 -0.003868,
1820 -0.003852,
1821 -0.003836,
1822 -0.003819,
1823 -0.003803,
1824 -0.003786,
1825 -0.003768,
1826 -0.003751,
1827 -0.003733,
1828 -0.003716,
1829 -0.003697,
1830 -0.003679,
1831 -0.003661,
1832 -0.003642,
1833 -0.003623,
1834 -0.003604,
1835 -0.003585,
1836 -0.003565,
1837 -0.003545,
1838 -0.003526,
1839 -0.003506,
1840 -0.003485,
1841 -0.003465,
1842 -0.003444,
1843 -0.003423,
1844 -0.003402,
1845 -0.003381,
1846 -0.003360,
1847 -0.003339,
1848 -0.003317,
1849 -0.003295,
1850 -0.003273,
1851 -0.003251,
1852 -0.003229,
1853 -0.003206,
1854 -0.003184,
1855 -0.003161,
1856 -0.003138,
1857 -0.003115,
1858 -0.003092,
1859 -0.003069,
1860 -0.003045,
1861 -0.003022,
1862 -0.002998,
1863 -0.002974,
1864 -0.002951,
1865 -0.002927,
1866 -0.002902,
1867 -0.002878,
1868 -0.002854,
1869 -0.002829,
1870 -0.002805,
1871 -0.002780,
1872 -0.002755,
1873 -0.002731,
1874 -0.002706,
1875 -0.002681,
1876 -0.002655,
1877 -0.002630,
1878 -0.002605,
1879 -0.002580,
1880 -0.002554,
1881 -0.002529,
1882 -0.002503,
1883 -0.002477,
1884 -0.002452,
1885 -0.002426,
1886 -0.002400,
1887 -0.002374,
1888 -0.002348,
1889 -0.002322,
1890 -0.002296,
1891 -0.002270,
1892 -0.002244,
1893 -0.002218,
1894 -0.002191,
1895 -0.002165,
1896 -0.002139,
1897 -0.002113,
1898 -0.002086,
1899 -0.002060,
1900 -0.002034,
1901 -0.002007,
1902 -0.001981,
1903 -0.001954,
1904 -0.001928,
1905 -0.001901,
1906 -0.001875,
1907 -0.001849,
1908 -0.001822,
1909 -0.001796,
1910 -0.001769,
1911 -0.001743,
1912 -0.001716,
1913 -0.001690,
1914 -0.001664,
1915 -0.001637,
1916 -0.001611,
1917 -0.001585,
1918 -0.001558,
1919 -0.001532,
1920 -0.001506,
1921 -0.001480,
1922 -0.001453,
1923 -0.001427,
1924 -0.001401,
1925 -0.001375,
1926 -0.001349,
1927 -0.001323,
1928 -0.001297,
1929 -0.001271,
1930 -0.001246,
1931 -0.001220,
1932 -0.001194,
1933 -0.001169,
1934 -0.001143,
1935 -0.001118,
1936 -0.001092,
1937 -0.001067,
1938 -0.001042,
1939 -0.001016,
1940 -0.000991,
1941 -0.000966,
1942 -0.000941,
1943 -0.000916,
1944 -0.000892,
1945 -0.000867,
1946 -0.000842,
1947 -0.000818,
1948 -0.000794,
1949 -0.000769,
1950 -0.000745,
1951 -0.000721,
1952 -0.000697,
1953 -0.000673,
1954 -0.000649,
1955 -0.000626,
1956 -0.000602,
1957 -0.000579,
1958 -0.000555,
1959 -0.000532,
1960 -0.000509,
1961 -0.000486,
1962 -0.000463,
1963 -0.000440,
1964 -0.000418,
1965 -0.000395,
1966 -0.000373,
1967 -0.000351,
1968 -0.000329,
1969 -0.000307,
1970 -0.000285,
1971 -0.000263,
1972 -0.000242,
1973 -0.000220,
1974 -0.000199,
1975 -0.000178,
1976 -0.000157,
1977 -0.000136,
1978 -0.000115,
1979 -0.000095,
1980 -0.000074,
1981 -0.000054,
1982 -0.000034,
1983 -0.000014,
1984 0.000006,
1985 0.000025,
1986 0.000045,
1987 0.000064,
1988 0.000083,
1989 0.000102,
1990 0.000121,
1991 0.000140,
1992 0.000158,
1993 0.000177,
1994 0.000195,
1995 0.000213,
1996 0.000231,
1997 0.000248,
1998 0.000266,
1999 0.000283,
2000 0.000300,
2001 0.000317,
2002 0.000334,
2003 0.000351,
2004 0.000367,
2005 0.000383,
2006 0.000399,
2007 0.000415,
2008 0.000431,
2009 0.000447,
2010 0.000462,
2011 0.000477,
2012 0.000492,
2013 0.000507,
2014 0.000522,
2015 0.000536,
2016 0.000551,
2017 0.000565,
2018 0.000579,
2019 0.000592,
2020 0.000606,
2021 0.000619,
2022 0.000633,
2023 0.000646,
2024 0.000658,
2025 0.000671,
2026 0.000684,
2027 0.000696,
2028 0.000708,
2029 0.000720,
2030 0.000731,
2031 0.000743,
2032 0.000754,
2033 0.000765,
2034 0.000776,
2035 0.000787,
2036 0.000798,
2037 0.000808,
2038 0.000818,
2039 0.000828,
2040 0.000838,
2041 0.000848,
2042 0.000857,
2043 0.000867,
2044 0.000876,
2045 0.000885,
2046 0.000893,
2047 0.000902,
2048 0.000910,
2049 0.000918,
2050 0.000926,
2051 0.000934,
2052 0.000942,
2053 0.000949,
2054 0.000956,
2055 0.000963,
2056 0.000970,
2057 0.000977,
2058 0.000983,
2059 0.000990,
2060 0.000996,
2061 0.001002,
2062 0.001008,
2063 0.001013,
2064 0.001019,
2065 0.001024,
2066 0.001029,
2067 0.001034,
2068 0.001039,
2069 0.001043,
2070 0.001047,
2071 0.001052,
2072 0.001056,
2073 0.001059,
2074 0.001063,
2075 0.001067,
2076 0.001070,
2077 0.001073,
2078 0.001076,
2079 0.001079,
2080 0.001082,
2081 0.001084,
2082 0.001086,
2083 0.001088,
2084 0.001090,
2085 0.001092,
2086 0.001094,
2087 0.001095,
2088 0.001097,
2089 0.001098,
2090 0.001099,
2091 0.001100,
2092 0.001101,
2093 0.001101,
2094 0.001101,
2095 0.001102,
2096 0.001102,
2097 0.001102,
2098 0.001102,
2099 0.001101,
2100 0.001101,
2101 0.001100,
2102 0.001099,
2103 0.001098,
2104 0.001097,
2105 0.001096,
2106 0.001095,
2107 0.001093,
2108 0.001091,
2109 0.001090,
2110 0.001088,
2111 0.001086,
2112 0.001083,
2113 0.001081,
2114 0.001079,
2115 0.001076,
2116 0.001073,
2117 0.001070,
2118 0.001068,
2119 0.001064,
2120 0.001061,
2121 0.001058,
2122 0.001054,
2123 0.001051,
2124 0.001047,
2125 0.001043,
2126 0.001039,
2127 0.001035,
2128 0.001031,
2129 0.001027,
2130 0.001023,
2131 0.001018,
2132 0.001014,
2133 0.001009,
2134 0.001004,
2135 0.000999,
2136 0.000994,
2137 0.000989,
2138 0.000984,
2139 0.000979,
2140 0.000973,
2141 0.000968,
2142 0.000962,
2143 0.000957,
2144 0.000951,
2145 0.000945,
2146 0.000939,
2147 0.000933,
2148 0.000927,
2149 0.000921,
2150 0.000914,
2151 0.000908,
2152 0.000902,
2153 0.000895,
2154 0.000889,
2155 0.000882,
2156 0.000875,
2157 0.000869,
2158 0.000862,
2159 0.000855,
2160 0.000848,
2161 0.000841,
2162 0.000834,
2163 0.000826,
2164 0.000819,
2165 0.000812,
2166 0.000805,
2167 0.000797,
2168 0.000790,
2169 0.000782,
2170 0.000775,
2171 0.000767,
2172 0.000759,
2173 0.000752,
2174 0.000744,
2175 0.000736,
2176 0.000728,
2177 0.000720,
2178 0.000712,
2179 0.000704,
2180 0.000696,
2181 0.000688,
2182 0.000680,
2183 0.000672,
2184 0.000664,
2185 0.000656,
2186 0.000648,
2187 0.000639,
2188 0.000631,
2189 0.000623,
2190 0.000615,
2191 0.000606,
2192 0.000598,
2193 0.000590,
2194 0.000581,
2195 0.000573,
2196 0.000564,
2197 0.000556,
2198 0.000547,
2199 0.000539,
2200 0.000531,
2201 0.000522,
2202 0.000514,
2203 0.000505,
2204 0.000497,
2205 0.000488,
2206 0.000480,
2207 0.000471,
2208 0.000463,
2209 0.000454,
2210 0.000446,
2211 0.000437,
2212 0.000429,
2213 0.000420,
2214 0.000412,
2215 0.000403,
2216 0.000395,
2217 0.000386,
2218 0.000378,
2219 0.000369,
2220 0.000361,
2221 0.000353,
2222 0.000344,
2223 0.000336,
2224 0.000327,
2225 0.000319,
2226 0.000311,
2227 0.000303,
2228 0.000294,
2229 0.000286,
2230 0.000278,
2231 0.000270,
2232 0.000261,
2233 0.000253,
2234 0.000245,
2235 0.000237,
2236 0.000229,
2237 0.000221,
2238 0.000213,
2239 0.000205,
2240 0.000197,
2241 0.000189,
2242 0.000181,
2243 0.000174,
2244 0.000166,
2245 0.000158,
2246 0.000150,
2247 0.000143,
2248 0.000135,
2249 0.000128,
2250 0.000120,
2251 0.000113,
2252 0.000105,
2253 0.000098,
2254 0.000090,
2255 0.000083,
2256 0.000076,
2257 0.000069,
2258 0.000061,
2259 0.000054,
2260 0.000047,
2261 0.000040,
2262 0.000033,
2263 0.000026,
2264 0.000019,
2265 0.000013,
2266 0.000006,
2267 -0.000001,
2268 -0.000008,
2269 -0.000014,
2270 -0.000021,
2271 -0.000027,
2272 -0.000034,
2273 -0.000040,
2274 -0.000046,
2275 -0.000053,
2276 -0.000059,
2277 -0.000065,
2278 -0.000071,
2279 -0.000077,
2280 -0.000083,
2281 -0.000089,
2282 -0.000095,
2283 -0.000100,
2284 -0.000106,
2285 -0.000112,
2286 -0.000117,
2287 -0.000123,
2288 -0.000128,
2289 -0.000134,
2290 -0.000139,
2291 -0.000144,
2292 -0.000150,
2293 -0.000155,
2294 -0.000160,
2295 -0.000165,
2296 -0.000170,
2297 -0.000175,
2298 -0.000180,
2299 -0.000184,
2300 -0.000189,
2301 -0.000194,
2302 -0.000198,
2303 -0.000203,
2304 -0.000207,
2305 -0.000211,
2306 -0.000216,
2307 -0.000220,
2308 -0.000224,
2309 -0.000228,
2310 -0.000232,
2311 -0.000236,
2312 -0.000240,
2313 -0.000244,
2314 -0.000248,
2315 -0.000251,
2316 -0.000255,
2317 -0.000258,
2318 -0.000262,
2319 -0.000265,
2320 -0.000269,
2321 -0.000272,
2322 -0.000275,
2323 -0.000278,
2324 -0.000281,
2325 -0.000284,
2326 -0.000287,
2327 -0.000290,
2328 -0.000293,
2329 -0.000296,
2330 -0.000298,
2331 -0.000301,
2332 -0.000303,
2333 -0.000306,
2334 -0.000308,
2335 -0.000311,
2336 -0.000313,
2337 -0.000315,
2338 -0.000317,
2339 -0.000319,
2340 -0.000321,
2341 -0.000323,
2342 -0.000325,
2343 -0.000327,
2344 -0.000329,
2345 -0.000330,
2346 -0.000332,
2347 -0.000334,
2348 -0.000335,
2349 -0.000337,
2350 -0.000338,
2351 -0.000339,
2352 -0.000340,
2353 -0.000342,
2354 -0.000343,
2355 -0.000344,
2356 -0.000345,
2357 -0.000346,
2358 -0.000347,
2359 -0.000347,
2360 -0.000348,
2361 -0.000349,
2362 -0.000350,
2363 -0.000350,
2364 -0.000351,
2365 -0.000351,
2366 -0.000352,
2367 -0.000352,
2368 -0.000352,
2369 -0.000352,
2370 -0.000353,
2371 -0.000353,
2372 -0.000353,
2373 -0.000353,
2374 -0.000353,
2375 -0.000353,
2376 -0.000353,
2377 -0.000353,
2378 -0.000352,
2379 -0.000352,
2380 -0.000352,
2381 -0.000351,
2382 -0.000351,
2383 -0.000350,
2384 -0.000350,
2385 -0.000349,
2386 -0.000349,
2387 -0.000348,
2388 -0.000347,
2389 -0.000346,
2390 -0.000346,
2391 -0.000345,
2392 -0.000344,
2393 -0.000343,
2394 -0.000342,
2395 -0.000341,
2396 -0.000340,
2397 -0.000339,
2398 -0.000338,
2399 -0.000336,
2400 -0.000335,
2401 -0.000334,
2402 -0.000333,
2403 -0.000331,
2404 -0.000330,
2405 -0.000328,
2406 -0.000327,
2407 -0.000325,
2408 -0.000324,
2409 -0.000322,
2410 -0.000321,
2411 -0.000319,
2412 -0.000317,
2413 -0.000316,
2414 -0.000314,
2415 -0.000312,
2416 -0.000310,
2417 -0.000308,
2418 -0.000306,
2419 -0.000305,
2420 -0.000303,
2421 -0.000301,
2422 -0.000299,
2423 -0.000297,
2424 -0.000295,
2425 -0.000293,
2426 -0.000290,
2427 -0.000288,
2428 -0.000286,
2429 -0.000284,
2430 -0.000282,
2431 -0.000280,
2432 -0.000277,
2433 -0.000275,
2434 -0.000273,
2435 -0.000270,
2436 -0.000268,
2437 -0.000266,
2438 -0.000263,
2439 -0.000261,
2440 -0.000259,
2441 -0.000256,
2442 -0.000254,
2443 -0.000251,
2444 -0.000249,
2445 -0.000246,
2446 -0.000244,
2447 -0.000241,
2448 -0.000239,
2449 -0.000236,
2450 -0.000234,
2451 -0.000231,
2452 -0.000228,
2453 -0.000226,
2454 -0.000223,
2455 -0.000221,
2456 -0.000218,
2457 -0.000215,
2458 -0.000213,
2459 -0.000210,
2460 -0.000207,
2461 -0.000205,
2462 -0.000202,
2463 -0.000199,
2464 -0.000197,
2465 -0.000194,
2466 -0.000191,
2467 -0.000189,
2468 -0.000186,
2469 -0.000183,
2470 -0.000180,
2471 -0.000178,
2472 -0.000175,
2473 -0.000172,
2474 -0.000169,
2475 -0.000167,
2476 -0.000164,
2477 -0.000161,
2478 -0.000159,
2479 -0.000156,
2480 -0.000153,
2481 -0.000150,
2482 -0.000148,
2483 -0.000145,
2484 -0.000142,
2485 -0.000140,
2486 -0.000137,
2487 -0.000134,
2488 -0.000131,
2489 -0.000129,
2490 -0.000126,
2491 -0.000123,
2492 -0.000121,
2493 -0.000118,
2494 -0.000115,
2495 -0.000113,
2496 -0.000110,
2497 -0.000107,
2498 -0.000105,
2499 -0.000102,
2500 -0.000100,
2501 -0.000097,
2502 -0.000094,
2503 -0.000092,
2504 -0.000089,
2505 -0.000087,
2506 -0.000084,
2507 -0.000082,
2508 -0.000079,
2509 -0.000077,
2510 -0.000074,
2511 -0.000072,
2512 -0.000069,
2513 -0.000067,
2514 -0.000064,
2515 -0.000062,
2516 -0.000059,
2517 -0.000057,
2518 -0.000055,
2519 -0.000052,
2520 -0.000050,
2521 -0.000048,
2522 -0.000045,
2523 -0.000043,
2524 -0.000041,
2525 -0.000038,
2526 -0.000036,
2527 -0.000034,
2528 -0.000032,
2529 -0.000029,
2530 -0.000027,
2531 -0.000025,
2532 -0.000023,
2533 -0.000021,
2534 -0.000019,
2535 -0.000016,
2536 -0.000014,
2537 -0.000012,
2538 -0.000010,
2539 -0.000008,
2540 -0.000006,
2541 -0.000004,
2542 -0.000002,
2543 -0.000000,
2544 0.000002,
2545 0.000004,
2546 0.000005,
2547 0.000007,
2548 0.000009,
2549 0.000011,
2550 0.000013,
2551 0.000015,
2552 0.000016,
2553 0.000018,
2554 0.000020,
2555 0.000022,
2556 0.000023,
2557 0.000025,
2558 0.000027,
2559 0.000028,
2560 0.000030,
2561 0.000031,
2562 0.000033,
2563 0.000034,
2564 0.000036,
2565 0.000037,
2566 0.000039,
2567 0.000040,
2568 0.000042,
2569 0.000043,
2570 0.000045,
2571 0.000046,
2572 0.000047,
2573 0.000049,
2574 0.000050,
2575 0.000051,
2576 0.000052,
2577 0.000054,
2578 0.000055,
2579 0.000056,
2580 0.000057,
2581 0.000058,
2582 0.000060,
2583 0.000061,
2584 0.000062,
2585 0.000063,
2586 0.000064,
2587 0.000065,
2588 0.000066,
2589 0.000067,
2590 0.000068,
2591 0.000069,
2592 0.000070,
2593 0.000070,
2594 0.000071,
2595 0.000072,
2596 0.000073,
2597 0.000074,
2598 0.000075,
2599 0.000075,
2600 0.000076,
2601 0.000077,
2602 0.000077,
2603 0.000078,
2604 0.000079,
2605 0.000079,
2606 0.000080,
2607 0.000081,
2608 0.000081,
2609 0.000082,
2610 0.000082,
2611 0.000083,
2612 0.000083,
2613 0.000084,
2614 0.000084,
2615 0.000085,
2616 0.000085,
2617 0.000085,
2618 0.000086,
2619 0.000086,
2620 0.000087,
2621 0.000087,
2622 0.000087,
2623 0.000087,
2624 0.000088,
2625 0.000088,
2626 0.000088,
2627 0.000088,
2628 0.000089,
2629 0.000089,
2630 0.000089,
2631 0.000089,
2632 0.000089,
2633 0.000089,
2634 0.000090,
2635 0.000090,
2636 0.000090,
2637 0.000090,
2638 0.000090,
2639 0.000090,
2640 0.000090,
2641 0.000090,
2642 0.000090,
2643 0.000090,
2644 0.000090,
2645 0.000090,
2646 0.000089,
2647 0.000089,
2648 0.000089,
2649 0.000089,
2650 0.000089,
2651 0.000089,
2652 0.000089,
2653 0.000088,
2654 0.000088,
2655 0.000088,
2656 0.000088,
2657 0.000088,
2658 0.000087,
2659 0.000087,
2660 0.000087,
2661 0.000086,
2662 0.000086,
2663 0.000086,
2664 0.000086,
2665 0.000085,
2666 0.000085,
2667 0.000084,
2668 0.000084,
2669 0.000084,
2670 0.000083,
2671 0.000083,
2672 0.000083,
2673 0.000082,
2674 0.000082,
2675 0.000081,
2676 0.000081,
2677 0.000080,
2678 0.000080,
2679 0.000079,
2680 0.000079,
2681 0.000078,
2682 0.000078,
2683 0.000077,
2684 0.000077,
2685 0.000076,
2686 0.000076,
2687 0.000075,
2688 0.000075,
2689 0.000074,
2690 0.000074,
2691 0.000073,
2692 0.000073,
2693 0.000072,
2694 0.000071,
2695 0.000071,
2696 0.000070,
2697 0.000070,
2698 0.000069,
2699 0.000068,
2700 0.000068,
2701 0.000067,
2702 0.000067,
2703 0.000066,
2704 0.000065,
2705 0.000065,
2706 0.000064,
2707 0.000063,
2708 0.000063,
2709 0.000062,
2710 0.000061,
2711 0.000061,
2712 0.000060,
2713 0.000059,
2714 0.000059,
2715 0.000058,
2716 0.000057,
2717 0.000057,
2718 0.000056,
2719 0.000055,
2720 0.000055,
2721 0.000054,
2722 0.000053,
2723 0.000053,
2724 0.000052,
2725 0.000051,
2726 0.000051,
2727 0.000050,
2728 0.000049,
2729 0.000049,
2730 0.000048,
2731 0.000047,
2732 0.000047,
2733 0.000046,
2734 0.000045,
2735 0.000045,
2736 0.000044,
2737 0.000043,
2738 0.000042,
2739 0.000042,
2740 0.000041,
2741 0.000040,
2742 0.000040,
2743 0.000039,
2744 0.000038,
2745 0.000038,
2746 0.000037,
2747 0.000036,
2748 0.000036,
2749 0.000035,
2750 0.000034,
2751 0.000034,
2752 0.000033,
2753 0.000032,
2754 0.000032,
2755 0.000031,
2756 0.000030,
2757 0.000030,
2758 0.000029,
2759 0.000028,
2760 0.000028,
2761 0.000027,
2762 0.000027,
2763 0.000026,
2764 0.000025,
2765 0.000025,
2766 0.000024,
2767 0.000023,
2768 0.000023,
2769 0.000022,
2770 0.000022,
2771 0.000021,
2772 0.000020,
2773 0.000020,
2774 0.000019,
2775 0.000019,
2776 0.000018,
2777 0.000017,
2778 0.000017,
2779 0.000016,
2780 0.000016,
2781 0.000015,
2782 0.000015,
2783 0.000014,
2784 0.000014,
2785 0.000013,
2786 0.000012,
2787 0.000012,
2788 0.000011,
2789 0.000011,
2790 0.000010,
2791 0.000010,
2792 0.000009,
2793 0.000009,
2794 0.000008,
2795 0.000008,
2796 0.000007,
2797 0.000007,
2798 0.000006,
2799 0.000006,
2800 0.000005,
2801 0.000005,
2802 0.000005,
2803 0.000004,
2804 0.000004,
2805 0.000003,
2806 0.000003,
2807 0.000002,
2808 0.000002,
2809 0.000002,
2810 0.000001,
2811 0.000001,
2812 0.000000,
2813 -0.000000,
2814 -0.000000,
2815 -0.000001,
2816 -0.000001,
2817 -0.000002,
2818 -0.000002,
2819 -0.000002,
2820 -0.000003,
2821 -0.000003,
2822 -0.000003,
2823 -0.000004,
2824 -0.000004,
2825 -0.000004,
2826 -0.000005,
2827 -0.000005,
2828 -0.000005,
2829 -0.000006,
2830 -0.000006,
2831 -0.000006,
2832 -0.000007,
2833 -0.000007,
2834 -0.000007,
2835 -0.000007,
2836 -0.000008,
2837 -0.000008,
2838 -0.000008,
2839 -0.000008,
2840 -0.000009,
2841 -0.000009,
2842 -0.000009,
2843 -0.000009,
2844 -0.000010,
2845 -0.000010,
2846 -0.000010,
2847 -0.000010,
2848 -0.000010,
2849 -0.000011,
2850 -0.000011,
2851 -0.000011,
2852 -0.000011,
2853 -0.000011,
2854 -0.000011,
2855 -0.000012,
2856 -0.000012,
2857 -0.000012,
2858 -0.000012,
2859 -0.000012,
2860 -0.000012,
2861 -0.000013,
2862 -0.000013,
2863 -0.000013,
2864 -0.000013,
2865 -0.000013,
2866 -0.000013,
2867 -0.000013,
2868 -0.000013,
2869 -0.000013,
2870 -0.000014,
2871 -0.000014,
2872 -0.000014,
2873 -0.000014,
2874 -0.000014,
2875 -0.000014,
2876 -0.000014,
2877 -0.000014,
2878 -0.000014,
2879 -0.000014,
2880 -0.000014,
2881 -0.000014,
2882 -0.000014,
2883 -0.000014,
2884 -0.000014,
2885 -0.000014,
2886 -0.000014,
2887 -0.000014,
2888 -0.000015,
2889 -0.000015,
2890 -0.000015,
2891 -0.000015,
2892 -0.000015,
2893 -0.000015,
2894 -0.000015,
2895 -0.000015,
2896 -0.000015,
2897 -0.000015,
2898 -0.000015,
2899 -0.000015,
2900 -0.000015,
2901 -0.000014,
2902 -0.000014,
2903 -0.000014,
2904 -0.000014,
2905 -0.000014,
2906 -0.000014,
2907 -0.000014,
2908 -0.000014,
2909 -0.000014,
2910 -0.000014,
2911 -0.000014,
2912 -0.000014,
2913 -0.000014,
2914 -0.000014,
2915 -0.000014,
2916 -0.000014,
2917 -0.000014,
2918 -0.000014,
2919 -0.000014,
2920 -0.000014,
2921 -0.000014,
2922 -0.000013,
2923 -0.000013,
2924 -0.000013,
2925 -0.000013,
2926 -0.000013,
2927 -0.000013,
2928 -0.000013,
2929 -0.000013,
2930 -0.000013,
2931 -0.000013,
2932 -0.000013,
2933 -0.000013,
2934 -0.000012,
2935 -0.000012,
2936 -0.000012,
2937 -0.000012,
2938 -0.000012,
2939 -0.000012,
2940 -0.000012,
2941 -0.000012,
2942 -0.000012,
2943 -0.000012,
2944 -0.000011,
2945 -0.000011,
2946 -0.000011,
2947 -0.000011,
2948 -0.000011,
2949 -0.000011,
2950 -0.000011,
2951 -0.000011,
2952 -0.000011,
2953 -0.000010,
2954 -0.000010,
2955 -0.000010,
2956 -0.000010,
2957 -0.000010,
2958 -0.000010,
2959 -0.000010,
2960 -0.000010,
2961 -0.000010,
2962 -0.000009,
2963 -0.000009,
2964 -0.000009,
2965 -0.000009,
2966 -0.000009,
2967 -0.000009,
2968 -0.000009,
2969 -0.000009,
2970 -0.000008,
2971 -0.000008,
2972 -0.000008,
2973 -0.000008,
2974 -0.000008,
2975 -0.000008,
2976 -0.000008,
2977 -0.000008,
2978 -0.000007,
2979 -0.000007,
2980 -0.000007,
2981 -0.000007,
2982 -0.000007,
2983 -0.000007,
2984 -0.000007,
2985 -0.000007,
2986 -0.000007,
2987 -0.000006,
2988 -0.000006,
2989 -0.000006,
2990 -0.000006,
2991 -0.000006,
2992 -0.000006,
2993 -0.000006,
2994 -0.000006,
2995 -0.000006,
2996 -0.000005,
2997 -0.000005,
2998 -0.000005,
2999 -0.000005,
3000 -0.000005,
3001 -0.000005,
3002 -0.000005,
3003 -0.000005,
3004 -0.000005,
3005 -0.000004,
3006 -0.000004,
3007 -0.000004,
3008 -0.000004,
3009 -0.000004,
3010 -0.000004,
3011 -0.000004,
3012 -0.000004,
3013 -0.000004,
3014 -0.000004,
3015 -0.000003,
3016 -0.000003,
3017 -0.000003,
3018 -0.000003,
3019 -0.000003,
3020 -0.000003,
3021 -0.000003,
3022 -0.000003,
3023 -0.000003,
3024 -0.000003,
3025 -0.000003,
3026 -0.000002,
3027 -0.000002,
3028 -0.000002,
3029 -0.000002,
3030 -0.000002,
3031 -0.000002,
3032 -0.000002,
3033 -0.000002,
3034 -0.000002,
3035 -0.000002,
3036 -0.000002,
3037 -0.000002,
3038 -0.000002,
3039 -0.000001,
3040 -0.000001,
3041 -0.000001,
3042 -0.000001,
3043 -0.000001,
3044 -0.000001,
3045 -0.000001,
3046 -0.000001,
3047 -0.000001,
3048 -0.000001,
3049 -0.000001,
3050 -0.000001,
3051 -0.000001,
3052 -0.000001,
3053 -0.000001,
3054 -0.000001,
3055 -0.000000,
3056 -0.000000,
3057 -0.000000,
3058 -0.000000,
3059 -0.000000,
3060 -0.000000,
3061 -0.000000,
3062 -0.000000,
3063 -0.000000,
3064 -0.000000,
3065 0.000000,
3066 0.000000,
3067 0.000000,
3068 0.000000,
3069 0.000000,
3070 0.000000,
3071 0.000000,
3072 0.000000,
3073 0.000000,
3074 0.000000,
3075 0.000000,
3076 0.000000,
3077 0.000000,
3078 0.000000,
3079 0.000001,
3080 0.000001,
3081 0.000001,
3082 0.000001,
3083 0.000001,
3084 0.000001,
3085 0.000001,
3086 0.000001,
3087 0.000001,
3088 0.000001,
3089 0.000001,
3090 0.000001,
3091 0.000001,
3092 0.000001,
3093 0.000001,
3094 0.000001,
3095 0.000001,
3096 0.000001,
3097 0.000001,
3098 0.000001,
3099 0.000001,
3100 0.000001,
3101 0.000001,
3102 0.000001,
3103 0.000001,
3104 0.000001,
3105 0.000001,
3106 0.000001,
3107 0.000001,
3108 0.000001,
3109 0.000001,
3110 0.000001,
3111 0.000001,
3112 0.000001,
3113 0.000001,
3114 0.000001,
3115 0.000001,
3116 0.000001,
3117 0.000001,
3118 0.000001,
3119 0.000001,
3120 0.000001,
3121 0.000001,
3122 0.000001,
3123 0.000001,
3124 0.000001
3125 };