From fba6e1e3d3a490b7503d31a43c706f3024eae9f5 Mon Sep 17 00:00:00 2001 From: Brick <6098371+0x1F9F1@users.noreply.github.com> Date: Wed, 23 Aug 2023 19:09:03 +0100 Subject: [PATCH] Removed ResamplerFilterDifference It takes 1 extra multiply to calculate the correct interpolation, but I think the improvement in cache locality (and binary size) outweighs that. --- build-scripts/gen_audio_resampler_filter.c | 33 +- src/audio/SDL_audio_resampler_filter.h | 519 +-------------------- src/audio/SDL_audiocvt.c | 6 +- 3 files changed, 20 insertions(+), 538 deletions(-) diff --git a/build-scripts/gen_audio_resampler_filter.c b/build-scripts/gen_audio_resampler_filter.c index 7d2ca04c07..b2ee5083bb 100644 --- a/build-scripts/gen_audio_resampler_filter.c +++ b/build-scripts/gen_audio_resampler_filter.c @@ -50,6 +50,7 @@ gcc -o genfilter build-scripts/gen_audio_resampler_filter.c -lm && ./genfilter > #define RESAMPLER_BITS_PER_ZERO_CROSSING ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1) #define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << RESAMPLER_BITS_PER_ZERO_CROSSING) #define RESAMPLER_FILTER_SIZE (RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS) +#define RESAMPLER_TABLE_SIZE (RESAMPLER_FILTER_SIZE + RESAMPLER_ZERO_CROSSINGS) /* This is a "modified" bessel function, so you can't use POSIX j0() */ static double @@ -75,25 +76,21 @@ bessel(const double x) /* build kaiser table with cardinal sine applied to it, and array of differences between elements. */ static void -kaiser_and_sinc(double *table, double *diffs, const int tablelen, const double beta) +kaiser_and_sinc(double *table, const int tablelen, const double beta) { const double bessel_beta = bessel(beta); int i; table[0] = 1.0; - diffs[tablelen - 1] = 0.0; for (i = 1; i < tablelen; i++) { - const double kaiser = bessel(beta * sqrt(1.0 - pow((double)i / (double)(tablelen - 1), 2.0))) / bessel_beta; + const double kaiser = bessel(beta * sqrt(1.0 - pow((double)i / (double)(tablelen), 2.0))) / bessel_beta; const double x = (((double) i) / ((double) RESAMPLER_SAMPLES_PER_ZERO_CROSSING)) * M_PI; table[i] = kaiser * (sin(x) / x); - diffs[i - 1] = table[i] - table[i - 1]; } } - -static double ResamplerFilter[RESAMPLER_FILTER_SIZE + 1]; -static double ResamplerFilterDifference[RESAMPLER_FILTER_SIZE + 1]; +static double ResamplerFilter[RESAMPLER_FILTER_SIZE]; static void PrepareResampleFilter(void) @@ -101,7 +98,7 @@ PrepareResampleFilter(void) /* if dB > 50, beta=(0.1102 * (dB - 8.7)), according to Matlab. */ const double dB = 80.0; const double beta = 0.1102 * (dB - 8.7); - kaiser_and_sinc(ResamplerFilter, ResamplerFilterDifference, RESAMPLER_FILTER_SIZE + 1, beta); + kaiser_and_sinc(ResamplerFilter, RESAMPLER_FILTER_SIZE, beta); } int main(void) @@ -139,20 +136,18 @@ int main(void) "#define RESAMPLER_BITS_PER_ZERO_CROSSING ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1)\n" "#define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << RESAMPLER_BITS_PER_ZERO_CROSSING)\n" "#define RESAMPLER_FILTER_SIZE (RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS)\n" + "#define RESAMPLER_TABLE_SIZE (RESAMPLER_FILTER_SIZE + RESAMPLER_ZERO_CROSSINGS)\n" "\n", RESAMPLER_ZERO_CROSSINGS, RESAMPLER_BITS_PER_SAMPLE ); - printf("static const float ResamplerFilter[RESAMPLER_FILTER_SIZE] = {"); - for (i = 0; i < RESAMPLER_FILTER_SIZE; i++) { - j = (i % RESAMPLER_ZERO_CROSSINGS) * RESAMPLER_SAMPLES_PER_ZERO_CROSSING + (i / RESAMPLER_ZERO_CROSSINGS); - printf("%s%12.9ff,", (i % RESAMPLER_ZERO_CROSSINGS) ? "" : "\n ", ResamplerFilter[j]); - } - printf("\n};\n\n"); - - printf("static const float ResamplerFilterDifference[RESAMPLER_FILTER_SIZE] = {"); - for (i = 0; i < RESAMPLER_FILTER_SIZE; i++) { - j = (i % RESAMPLER_ZERO_CROSSINGS) * RESAMPLER_SAMPLES_PER_ZERO_CROSSING + (i / RESAMPLER_ZERO_CROSSINGS); - printf("%s%12.9ff,", (i % RESAMPLER_ZERO_CROSSINGS) ? "" : "\n ", ResamplerFilterDifference[j]); + printf("static const float ResamplerFilter[RESAMPLER_TABLE_SIZE] = {"); + for (i = 0; i < RESAMPLER_TABLE_SIZE; i++) { + double v = 0.0; + if (i < RESAMPLER_FILTER_SIZE) { + j = (i % RESAMPLER_ZERO_CROSSINGS) * RESAMPLER_SAMPLES_PER_ZERO_CROSSING + (i / RESAMPLER_ZERO_CROSSINGS); + v = ResamplerFilter[j]; + } + printf("%s%12.9ff,", (i % RESAMPLER_ZERO_CROSSINGS) ? "" : "\n ", v); } printf("\n};\n\n"); diff --git a/src/audio/SDL_audio_resampler_filter.h b/src/audio/SDL_audio_resampler_filter.h index 08b615547a..b0097050a1 100644 --- a/src/audio/SDL_audio_resampler_filter.h +++ b/src/audio/SDL_audio_resampler_filter.h @@ -26,8 +26,9 @@ #define RESAMPLER_BITS_PER_ZERO_CROSSING ((RESAMPLER_BITS_PER_SAMPLE / 2) + 1) #define RESAMPLER_SAMPLES_PER_ZERO_CROSSING (1 << RESAMPLER_BITS_PER_ZERO_CROSSING) #define RESAMPLER_FILTER_SIZE (RESAMPLER_SAMPLES_PER_ZERO_CROSSING * RESAMPLER_ZERO_CROSSINGS) +#define RESAMPLER_TABLE_SIZE (RESAMPLER_FILTER_SIZE + RESAMPLER_ZERO_CROSSINGS) -static const float ResamplerFilter[RESAMPLER_FILTER_SIZE] = { +static const float ResamplerFilter[RESAMPLER_TABLE_SIZE] = { 1.000000000f, 0.000000000f,-0.000000000f, 0.000000000f,-0.000000000f, 0.999993165f,-0.001679888f, 0.000529080f,-0.000151513f, 0.000027455f, 0.999972661f,-0.003351212f, 0.001055794f,-0.000302183f, 0.000054683f, @@ -540,520 +541,6 @@ static const float ResamplerFilter[RESAMPLER_FILTER_SIZE] = { 0.005090874f,-0.001601309f, 0.000459559f,-0.000083727f, 0.000003250f, 0.003385399f,-0.001065208f, 0.000305539f,-0.000055591f, 0.000002140f, 0.001688435f,-0.000531434f, 0.000152351f,-0.000027682f, 0.000001057f, -}; - -static const float ResamplerFilterDifference[RESAMPLER_FILTER_SIZE] = { - -0.000006835f,-0.001679888f, 0.000529080f,-0.000151513f, 0.000027455f, - -0.000020504f,-0.001671324f, 0.000526714f,-0.000150671f, 0.000027228f, - -0.000034173f,-0.001662743f, 0.000524335f,-0.000149826f, 0.000027001f, - -0.000047841f,-0.001654144f, 0.000521943f,-0.000148978f, 0.000026775f, - -0.000061508f,-0.001645530f, 0.000519539f,-0.000148128f, 0.000026548f, - -0.000075173f,-0.001636899f, 0.000517123f,-0.000147274f, 0.000026321f, - -0.000088836f,-0.001628252f, 0.000514695f,-0.000146418f, 0.000026095f, - -0.000102496f,-0.001619589f, 0.000512255f,-0.000145560f, 0.000025868f, - -0.000116154f,-0.001610911f, 0.000509804f,-0.000144699f, 0.000025642f, - -0.000129809f,-0.001602218f, 0.000507340f,-0.000143835f, 0.000025415f, - -0.000143460f,-0.001593510f, 0.000504866f,-0.000142969f, 0.000025189f, - -0.000157107f,-0.001584788f, 0.000502380f,-0.000142101f, 0.000024963f, - -0.000170750f,-0.001576051f, 0.000499883f,-0.000141230f, 0.000024738f, - -0.000184388f,-0.001567301f, 0.000497375f,-0.000140357f, 0.000024512f, - -0.000198021f,-0.001558537f, 0.000494856f,-0.000139481f, 0.000024287f, - -0.000211649f,-0.001549759f, 0.000492327f,-0.000138604f, 0.000024061f, - -0.000225271f,-0.001540969f, 0.000489787f,-0.000137724f, 0.000023836f, - -0.000238887f,-0.001532166f, 0.000487237f,-0.000136842f, 0.000023612f, - -0.000252497f,-0.001523351f, 0.000484677f,-0.000135959f, 0.000023387f, - -0.000266100f,-0.001514523f, 0.000482106f,-0.000135073f, 0.000023163f, - -0.000279695f,-0.001505684f, 0.000479526f,-0.000134185f, 0.000022939f, - -0.000293283f,-0.001496833f, 0.000476936f,-0.000133296f, 0.000022715f, - -0.000306863f,-0.001487971f, 0.000474337f,-0.000132404f, 0.000022492f, - -0.000320435f,-0.001479098f, 0.000471728f,-0.000131511f, 0.000022269f, - -0.000333998f,-0.001470214f, 0.000469110f,-0.000130617f, 0.000022046f, - -0.000347551f,-0.001461320f, 0.000466483f,-0.000129720f, 0.000021824f, - -0.000361096f,-0.001452416f, 0.000463846f,-0.000128822f, 0.000021601f, - -0.000374631f,-0.001443503f, 0.000461201f,-0.000127923f, 0.000021380f, - -0.000388155f,-0.001434579f, 0.000458548f,-0.000127022f, 0.000021158f, - -0.000401669f,-0.001425647f, 0.000455885f,-0.000126119f, 0.000020937f, - -0.000415172f,-0.001416706f, 0.000453215f,-0.000125216f, 0.000020717f, - -0.000428664f,-0.001407756f, 0.000450536f,-0.000124311f, 0.000020496f, - -0.000442144f,-0.001398798f, 0.000447850f,-0.000123404f, 0.000020277f, - -0.000455612f,-0.001389831f, 0.000445155f,-0.000122497f, 0.000020057f, - -0.000469068f,-0.001380858f, 0.000442453f,-0.000121588f, 0.000019838f, - -0.000482511f,-0.001371876f, 0.000439743f,-0.000120678f, 0.000019620f, - -0.000495941f,-0.001362888f, 0.000437025f,-0.000119767f, 0.000019402f, - -0.000509358f,-0.001353893f, 0.000434301f,-0.000118855f, 0.000019184f, - -0.000522761f,-0.001344891f, 0.000431569f,-0.000117942f, 0.000018967f, - -0.000536149f,-0.001335883f, 0.000428830f,-0.000117029f, 0.000018750f, - -0.000549523f,-0.001326869f, 0.000426084f,-0.000116114f, 0.000018534f, - -0.000562883f,-0.001317849f, 0.000423332f,-0.000115199f, 0.000018318f, - -0.000576227f,-0.001308824f, 0.000420573f,-0.000114282f, 0.000018103f, - -0.000589555f,-0.001299794f, 0.000417808f,-0.000113365f, 0.000017889f, - -0.000602868f,-0.001290759f, 0.000415036f,-0.000112448f, 0.000017675f, - -0.000616164f,-0.001281720f, 0.000412258f,-0.000111530f, 0.000017461f, - -0.000629443f,-0.001272676f, 0.000409475f,-0.000110611f, 0.000017248f, - -0.000642705f,-0.001263628f, 0.000406685f,-0.000109692f, 0.000017036f, - -0.000655950f,-0.001254577f, 0.000403890f,-0.000108772f, 0.000016824f, - -0.000669178f,-0.001245523f, 0.000401090f,-0.000107852f, 0.000016612f, - -0.000682387f,-0.001236465f, 0.000398284f,-0.000106932f, 0.000016402f, - -0.000695577f,-0.001227404f, 0.000395473f,-0.000106011f, 0.000016192f, - -0.000708749f,-0.001218341f, 0.000392656f,-0.000105090f, 0.000015982f, - -0.000721902f,-0.001209276f, 0.000389835f,-0.000104169f, 0.000015773f, - -0.000735035f,-0.001200209f, 0.000387009f,-0.000103247f, 0.000015565f, - -0.000748148f,-0.001191140f, 0.000384179f,-0.000102326f, 0.000015358f, - -0.000761241f,-0.001182070f, 0.000381343f,-0.000101404f, 0.000015151f, - -0.000774314f,-0.001172999f, 0.000378504f,-0.000100483f, 0.000014944f, - -0.000787365f,-0.001163927f, 0.000375660f,-0.000099561f, 0.000014739f, - -0.000800396f,-0.001154854f, 0.000372812f,-0.000098640f, 0.000014534f, - -0.000813404f,-0.001145781f, 0.000369961f,-0.000097718f, 0.000014330f, - -0.000826391f,-0.001136708f, 0.000367105f,-0.000096797f, 0.000014126f, - -0.000839355f,-0.001127635f, 0.000364246f,-0.000095876f, 0.000013923f, - -0.000852297f,-0.001118564f, 0.000361384f,-0.000094956f, 0.000013721f, - -0.000865216f,-0.001109492f, 0.000358518f,-0.000094035f, 0.000013520f, - -0.000878111f,-0.001100422f, 0.000355648f,-0.000093115f, 0.000013319f, - -0.000890983f,-0.001091354f, 0.000352776f,-0.000092195f, 0.000013119f, - -0.000903830f,-0.001082287f, 0.000349901f,-0.000091276f, 0.000012920f, - -0.000916653f,-0.001073222f, 0.000347023f,-0.000090358f, 0.000012721f, - -0.000929452f,-0.001064159f, 0.000344142f,-0.000089439f, 0.000012524f, - -0.000942225f,-0.001055099f, 0.000341259f,-0.000088522f, 0.000012327f, - -0.000954973f,-0.001046042f, 0.000338374f,-0.000087605f, 0.000012130f, - -0.000967695f,-0.001036988f, 0.000335486f,-0.000086688f, 0.000011935f, - -0.000980391f,-0.001027937f, 0.000332596f,-0.000085773f, 0.000011740f, - -0.000993061f,-0.001018890f, 0.000329704f,-0.000084858f, 0.000011546f, - -0.001005704f,-0.001009846f, 0.000326810f,-0.000083944f, 0.000011353f, - -0.001018320f,-0.001000807f, 0.000323915f,-0.000083030f, 0.000011161f, - -0.001030908f,-0.000991772f, 0.000321018f,-0.000082118f, 0.000010970f, - -0.001043469f,-0.000982742f, 0.000318119f,-0.000081206f, 0.000010779f, - -0.001056001f,-0.000973717f, 0.000315220f,-0.000080296f, 0.000010589f, - -0.001068505f,-0.000964697f, 0.000312319f,-0.000079386f, 0.000010400f, - -0.001080981f,-0.000955682f, 0.000309417f,-0.000078478f, 0.000010212f, - -0.001093427f,-0.000946674f, 0.000306514f,-0.000077570f, 0.000010025f, - -0.001105844f,-0.000937671f, 0.000303610f,-0.000076664f, 0.000009838f, - -0.001118231f,-0.000928674f, 0.000300706f,-0.000075759f, 0.000009653f, - -0.001130588f,-0.000919685f, 0.000297802f,-0.000074855f, 0.000009468f, - -0.001142915f,-0.000910702f, 0.000294897f,-0.000073952f, 0.000009284f, - -0.001155211f,-0.000901726f, 0.000291991f,-0.000073051f, 0.000009101f, - -0.001167476f,-0.000892757f, 0.000289086f,-0.000072151f, 0.000008919f, - -0.001179709f,-0.000883796f, 0.000286180f,-0.000071252f, 0.000008738f, - -0.001191911f,-0.000874843f, 0.000283275f,-0.000070355f, 0.000008557f, - -0.001204081f,-0.000865898f, 0.000280370f,-0.000069459f, 0.000008378f, - -0.001216218f,-0.000856961f, 0.000277466f,-0.000068565f, 0.000008199f, - -0.001228323f,-0.000848033f, 0.000274562f,-0.000067672f, 0.000008022f, - -0.001240395f,-0.000839114f, 0.000271658f,-0.000066781f, 0.000007845f, - -0.001252434f,-0.000830204f, 0.000268756f,-0.000065891f, 0.000007669f, - -0.001264439f,-0.000821304f, 0.000265854f,-0.000065003f, 0.000007494f, - -0.001276410f,-0.000812413f, 0.000262954f,-0.000064117f, 0.000007320f, - -0.001288347f,-0.000803532f, 0.000260054f,-0.000063232f, 0.000007147f, - -0.001300249f,-0.000794661f, 0.000257156f,-0.000062349f, 0.000006975f, - -0.001312117f,-0.000785800f, 0.000254260f,-0.000061468f, 0.000006804f, - -0.001323950f,-0.000776950f, 0.000251364f,-0.000060589f, 0.000006634f, - -0.001335747f,-0.000768112f, 0.000248471f,-0.000059711f, 0.000006464f, - -0.001347508f,-0.000759284f, 0.000245579f,-0.000058836f, 0.000006296f, - -0.001359233f,-0.000750467f, 0.000242689f,-0.000057962f, 0.000006129f, - -0.001370922f,-0.000741663f, 0.000239802f,-0.000057090f, 0.000005962f, - -0.001382574f,-0.000732870f, 0.000236916f,-0.000056221f, 0.000005797f, - -0.001394189f,-0.000724089f, 0.000234033f,-0.000055353f, 0.000005632f, - -0.001405767f,-0.000715321f, 0.000231152f,-0.000054488f, 0.000005469f, - -0.001417308f,-0.000706565f, 0.000228273f,-0.000053624f, 0.000005306f, - -0.001428810f,-0.000697823f, 0.000225397f,-0.000052763f, 0.000005145f, - -0.001440275f,-0.000689093f, 0.000222524f,-0.000051904f, 0.000004984f, - -0.001451701f,-0.000680376f, 0.000219654f,-0.000051047f, 0.000004825f, - -0.001463088f,-0.000671674f, 0.000216787f,-0.000050192f, 0.000004666f, - -0.001474436f,-0.000662985f, 0.000213923f,-0.000049339f, 0.000004509f, - -0.001485745f,-0.000654310f, 0.000211062f,-0.000048489f, 0.000004352f, - -0.001497014f,-0.000645649f, 0.000208204f,-0.000047641f, 0.000004196f, - -0.001508244f,-0.000637003f, 0.000205350f,-0.000046796f, 0.000004042f, - -0.001519433f,-0.000628372f, 0.000202499f,-0.000045953f, 0.000003888f, - -0.001530582f,-0.000619756f, 0.000199652f,-0.000045112f, 0.000003736f, - -0.001541690f,-0.000611154f, 0.000196809f,-0.000044274f, 0.000003584f, - -0.001552757f,-0.000602569f, 0.000193969f,-0.000043438f, 0.000003434f, - -0.001563782f,-0.000593999f, 0.000191134f,-0.000042605f, 0.000003284f, - -0.001574766f,-0.000585445f, 0.000188303f,-0.000041774f, 0.000003136f, - -0.001585708f,-0.000576907f, 0.000185476f,-0.000040946f, 0.000002988f, - -0.001596608f,-0.000568385f, 0.000182653f,-0.000040120f, 0.000002842f, - -0.001607466f,-0.000559880f, 0.000179835f,-0.000039297f, 0.000002696f, - -0.001618281f,-0.000551392f, 0.000177021f,-0.000038477f, 0.000002552f, - -0.001629053f,-0.000542921f, 0.000174212f,-0.000037660f, 0.000002408f, - -0.001639782f,-0.000534467f, 0.000171408f,-0.000036845f, 0.000002266f, - -0.001650467f,-0.000526031f, 0.000168608f,-0.000036033f, 0.000002125f, - -0.001661108f,-0.000517612f, 0.000165814f,-0.000035223f, 0.000001985f, - -0.001671706f,-0.000509211f, 0.000163025f,-0.000034417f, 0.000001845f, - -0.001682259f,-0.000500828f, 0.000160240f,-0.000033613f, 0.000001707f, - -0.001692767f,-0.000492464f, 0.000157461f,-0.000032813f, 0.000001570f, - -0.001703231f,-0.000484118f, 0.000154688f,-0.000032015f, 0.000001434f, - -0.001713650f,-0.000475791f, 0.000151920f,-0.000031220f, 0.000001299f, - -0.001724023f,-0.000467483f, 0.000149157f,-0.000030427f, 0.000001165f, - -0.001734351f,-0.000459194f, 0.000146400f,-0.000029638f, 0.000001032f, - -0.001744632f,-0.000450925f, 0.000143649f,-0.000028852f, 0.000000900f, - -0.001754868f,-0.000442675f, 0.000140904f,-0.000028069f, 0.000000769f, - -0.001765057f,-0.000434445f, 0.000138165f,-0.000027289f, 0.000000639f, - -0.001775200f,-0.000426235f, 0.000135432f,-0.000026512f, 0.000000511f, - -0.001785296f,-0.000418045f, 0.000132705f,-0.000025738f, 0.000000383f, - -0.001795345f,-0.000409876f, 0.000129985f,-0.000024967f, 0.000000256f, - -0.001805346f,-0.000401727f, 0.000127270f,-0.000024200f, 0.000000131f, - -0.001815300f,-0.000393599f, 0.000124563f,-0.000023435f, 0.000000006f, - -0.001825206f,-0.000385493f, 0.000121861f,-0.000022674f,-0.000000117f, - -0.001835064f,-0.000377407f, 0.000119167f,-0.000021916f,-0.000000240f, - -0.001844874f,-0.000369343f, 0.000116479f,-0.000021161f,-0.000000361f, - -0.001854635f,-0.000361300f, 0.000113798f,-0.000020409f,-0.000000481f, - -0.001864347f,-0.000353280f, 0.000111124f,-0.000019660f,-0.000000601f, - -0.001874010f,-0.000345281f, 0.000108457f,-0.000018915f,-0.000000719f, - -0.001883624f,-0.000337305f, 0.000105797f,-0.000018174f,-0.000000836f, - -0.001893189f,-0.000329351f, 0.000103145f,-0.000017435f,-0.000000952f, - -0.001902703f,-0.000321419f, 0.000100499f,-0.000016700f,-0.000001067f, - -0.001912168f,-0.000313511f, 0.000097861f,-0.000015968f,-0.000001181f, - -0.001921583f,-0.000305625f, 0.000095231f,-0.000015240f,-0.000001294f, - -0.001930947f,-0.000297763f, 0.000092608f,-0.000014515f,-0.000001406f, - -0.001940261f,-0.000289924f, 0.000089993f,-0.000013793f,-0.000001517f, - -0.001949524f,-0.000282108f, 0.000087385f,-0.000013075f,-0.000001626f, - -0.001958735f,-0.000274316f, 0.000084785f,-0.000012361f,-0.000001735f, - -0.001967896f,-0.000266548f, 0.000082194f,-0.000011650f,-0.000001843f, - -0.001977005f,-0.000258804f, 0.000079610f,-0.000010942f,-0.000001949f, - -0.001986062f,-0.000251085f, 0.000077034f,-0.000010238f,-0.000002055f, - -0.001995068f,-0.000243389f, 0.000074466f,-0.000009538f,-0.000002159f, - -0.002004021f,-0.000235719f, 0.000071907f,-0.000008841f,-0.000002262f, - -0.002012922f,-0.000228073f, 0.000069356f,-0.000008147f,-0.000002365f, - -0.002021771f,-0.000220452f, 0.000066813f,-0.000007458f,-0.000002466f, - -0.002030566f,-0.000212856f, 0.000064279f,-0.000006772f,-0.000002566f, - -0.002039309f,-0.000205286f, 0.000061753f,-0.000006089f,-0.000002666f, - -0.002047999f,-0.000197741f, 0.000059236f,-0.000005410f,-0.000002764f, - -0.002056635f,-0.000190222f, 0.000056728f,-0.000004735f,-0.000002861f, - -0.002065218f,-0.000182728f, 0.000054229f,-0.000004064f,-0.000002957f, - -0.002073747f,-0.000175261f, 0.000051738f,-0.000003396f,-0.000003052f, - -0.002082222f,-0.000167819f, 0.000049256f,-0.000002732f,-0.000003146f, - -0.002090643f,-0.000160404f, 0.000046784f,-0.000002071f,-0.000003239f, - -0.002099010f,-0.000153016f, 0.000044320f,-0.000001415f,-0.000003331f, - -0.002107322f,-0.000145654f, 0.000041866f,-0.000000762f,-0.000003421f, - -0.002115579f,-0.000138319f, 0.000039420f,-0.000000113f,-0.000003511f, - -0.002123782f,-0.000131010f, 0.000036985f, 0.000000532f,-0.000003600f, - -0.002131930f,-0.000123729f, 0.000034558f, 0.000001174f,-0.000003688f, - -0.002140022f,-0.000116475f, 0.000032141f, 0.000001812f,-0.000003774f, - -0.002148059f,-0.000109249f, 0.000029733f, 0.000002445f,-0.000003860f, - -0.002156041f,-0.000102050f, 0.000027335f, 0.000003075f,-0.000003945f, - -0.002163966f,-0.000094879f, 0.000024947f, 0.000003702f,-0.000004028f, - -0.002171836f,-0.000087735f, 0.000022568f, 0.000004324f,-0.000004111f, - -0.002179650f,-0.000080620f, 0.000020200f, 0.000004942f,-0.000004193f, - -0.002187407f,-0.000073533f, 0.000017841f, 0.000005557f,-0.000004273f, - -0.002195108f,-0.000066474f, 0.000015492f, 0.000006168f,-0.000004353f, - -0.002202752f,-0.000059444f, 0.000013153f, 0.000006774f,-0.000004431f, - -0.002210340f,-0.000052442f, 0.000010824f, 0.000007377f,-0.000004509f, - -0.002217870f,-0.000045469f, 0.000008505f, 0.000007976f,-0.000004585f, - -0.002225344f,-0.000038524f, 0.000006196f, 0.000008571f,-0.000004661f, - -0.002232760f,-0.000031609f, 0.000003897f, 0.000009162f,-0.000004735f, - -0.002240119f,-0.000024723f, 0.000001609f, 0.000009749f,-0.000004809f, - -0.002247421f,-0.000017866f,-0.000000669f, 0.000010332f,-0.000004881f, - -0.002254664f,-0.000011039f,-0.000002936f, 0.000010911f,-0.000004953f, - -0.002261850f,-0.000004241f,-0.000005193f, 0.000011486f,-0.000005023f, - -0.002268978f, 0.000002527f,-0.000007440f, 0.000012057f,-0.000005093f, - -0.002276047f, 0.000009265f,-0.000009676f, 0.000012625f,-0.000005161f, - -0.002283059f, 0.000015974f,-0.000011901f, 0.000013188f,-0.000005229f, - -0.002290012f, 0.000022652f,-0.000014115f, 0.000013747f,-0.000005295f, - -0.002296906f, 0.000029300f,-0.000016319f, 0.000014302f,-0.000005361f, - -0.002303742f, 0.000035918f,-0.000018512f, 0.000014853f,-0.000005425f, - -0.002310518f, 0.000042505f,-0.000020694f, 0.000015400f,-0.000005489f, - -0.002317236f, 0.000049062f,-0.000022865f, 0.000015943f,-0.000005551f, - -0.002323895f, 0.000055588f,-0.000025026f, 0.000016482f,-0.000005613f, - -0.002330494f, 0.000062083f,-0.000027175f, 0.000017016f,-0.000005674f, - -0.002337034f, 0.000068548f,-0.000029313f, 0.000017547f,-0.000005734f, - -0.002343515f, 0.000074981f,-0.000031440f, 0.000018074f,-0.000005792f, - -0.002349936f, 0.000081383f,-0.000033556f, 0.000018596f,-0.000005850f, - -0.002356297f, 0.000087754f,-0.000035660f, 0.000019115f,-0.000005907f, - -0.002362598f, 0.000094094f,-0.000037754f, 0.000019629f,-0.000005963f, - -0.002368839f, 0.000100402f,-0.000039836f, 0.000020140f,-0.000006018f, - -0.002375020f, 0.000106678f,-0.000041907f, 0.000020646f,-0.000006072f, - -0.002381141f, 0.000112923f,-0.000043966f, 0.000021148f,-0.000006125f, - -0.002387202f, 0.000119136f,-0.000046014f, 0.000021646f,-0.000006177f, - -0.002393202f, 0.000125317f,-0.000048050f, 0.000022140f,-0.000006228f, - -0.002399142f, 0.000131466f,-0.000050075f, 0.000022630f,-0.000006279f, - -0.002405021f, 0.000137583f,-0.000052088f, 0.000023115f,-0.000006328f, - -0.002410839f, 0.000143667f,-0.000054090f, 0.000023597f,-0.000006377f, - -0.002416596f, 0.000149720f,-0.000056080f, 0.000024074f,-0.000006424f, - -0.002422293f, 0.000155740f,-0.000058058f, 0.000024547f,-0.000006471f, - -0.002427928f, 0.000161727f,-0.000060024f, 0.000025017f,-0.000006517f, - -0.002433502f, 0.000167682f,-0.000061979f, 0.000025482f,-0.000006561f, - -0.002439015f, 0.000173604f,-0.000063922f, 0.000025943f,-0.000006605f, - -0.002444467f, 0.000179493f,-0.000065853f, 0.000026399f,-0.000006648f, - -0.002449857f, 0.000185350f,-0.000067772f, 0.000026852f,-0.000006690f, - -0.002455186f, 0.000191173f,-0.000069679f, 0.000027300f,-0.000006732f, - -0.002460453f, 0.000196963f,-0.000071575f, 0.000027745f,-0.000006772f, - -0.002465658f, 0.000202721f,-0.000073458f, 0.000028185f,-0.000006811f, - -0.002470801f, 0.000208445f,-0.000075329f, 0.000028621f,-0.000006850f, - -0.002475883f, 0.000214135f,-0.000077188f, 0.000029053f,-0.000006888f, - -0.002480903f, 0.000219792f,-0.000079035f, 0.000029481f,-0.000006925f, - -0.002485860f, 0.000225416f,-0.000080870f, 0.000029904f,-0.000006961f, - -0.002490756f, 0.000231006f,-0.000082693f, 0.000030324f,-0.000006996f, - -0.002495590f, 0.000236563f,-0.000084503f, 0.000030739f,-0.000007030f, - -0.002500361f, 0.000242086f,-0.000086301f, 0.000031150f,-0.000007064f, - -0.002505070f, 0.000247575f,-0.000088087f, 0.000031557f,-0.000007096f, - -0.002509716f, 0.000253030f,-0.000089861f, 0.000031960f,-0.000007128f, - -0.002514301f, 0.000258451f,-0.000091623f, 0.000032359f,-0.000007159f, - -0.002518822f, 0.000263839f,-0.000093372f, 0.000032754f,-0.000007189f, - -0.002523281f, 0.000269192f,-0.000095108f, 0.000033144f,-0.000007218f, - -0.002527678f, 0.000274511f,-0.000096833f, 0.000033531f,-0.000007247f, - -0.002532012f, 0.000279796f,-0.000098544f, 0.000033913f,-0.000007274f, - -0.002536283f, 0.000285046f,-0.000100244f, 0.000034291f,-0.000007301f, - -0.002540492f, 0.000290263f,-0.000101931f, 0.000034665f,-0.000007327f, - -0.002544637f, 0.000295444f,-0.000103605f, 0.000035035f,-0.000007352f, - -0.002548720f, 0.000300592f,-0.000105267f, 0.000035401f,-0.000007377f, - -0.002552740f, 0.000305705f,-0.000106917f, 0.000035763f,-0.000007400f, - -0.002556697f, 0.000310783f,-0.000108553f, 0.000036120f,-0.000007423f, - -0.002560591f, 0.000315827f,-0.000110178f, 0.000036474f,-0.000007445f, - -0.002564422f, 0.000320836f,-0.000111789f, 0.000036823f,-0.000007466f, - -0.002568189f, 0.000325810f,-0.000113388f, 0.000037169f,-0.000007487f, - -0.002571894f, 0.000330749f,-0.000114975f, 0.000037510f,-0.000007506f, - -0.002575536f, 0.000335654f,-0.000116549f, 0.000037847f,-0.000007525f, - -0.002579114f, 0.000340524f,-0.000118110f, 0.000038180f,-0.000007543f, - -0.002582629f, 0.000345359f,-0.000119658f, 0.000038509f,-0.000007561f, - -0.002586081f, 0.000350158f,-0.000121194f, 0.000038834f,-0.000007577f, - -0.002589470f, 0.000354923f,-0.000122717f, 0.000039155f,-0.000007593f, - -0.002592796f, 0.000359653f,-0.000124227f, 0.000039472f,-0.000007608f, - -0.002596058f, 0.000364347f,-0.000125725f, 0.000039784f,-0.000007623f, - -0.002599257f, 0.000369007f,-0.000127209f, 0.000040093f,-0.000007637f, - -0.002602393f, 0.000373631f,-0.000128681f, 0.000040398f,-0.000007649f, - -0.002605465f, 0.000378220f,-0.000130141f, 0.000040698f,-0.000007662f, - -0.002608474f, 0.000382774f,-0.000131587f, 0.000040995f,-0.000007673f, - -0.002611419f, 0.000387292f,-0.000133020f, 0.000041288f,-0.000007684f, - -0.002614301f, 0.000391775f,-0.000134441f, 0.000041576f,-0.000007694f, - -0.002617120f, 0.000396223f,-0.000135849f, 0.000041861f,-0.000007704f, - -0.002619876f, 0.000400636f,-0.000137244f, 0.000042141f,-0.000007712f, - -0.002622568f, 0.000405012f,-0.000138627f, 0.000042418f,-0.000007720f, - -0.002625197f, 0.000409354f,-0.000139996f, 0.000042690f,-0.000007728f, - -0.002627762f, 0.000413660f,-0.000141353f, 0.000042959f,-0.000007734f, - -0.002630264f, 0.000417930f,-0.000142696f, 0.000043224f,-0.000007740f, - -0.002632702f, 0.000422165f,-0.000144027f, 0.000043484f,-0.000007745f, - -0.002635078f, 0.000426365f,-0.000145345f, 0.000043741f,-0.000007750f, - -0.002637389f, 0.000430528f,-0.000146650f, 0.000043994f,-0.000007754f, - -0.002639638f, 0.000434657f,-0.000147942f, 0.000044243f,-0.000007757f, - -0.002641823f, 0.000438749f,-0.000149222f, 0.000044488f,-0.000007760f, - -0.002643945f, 0.000442806f,-0.000150488f, 0.000044729f,-0.000007762f, - -0.002646004f, 0.000446827f,-0.000151742f, 0.000044966f,-0.000007763f, - -0.002647999f, 0.000450813f,-0.000152982f, 0.000045199f,-0.000007764f, - -0.002649931f, 0.000454763f,-0.000154210f, 0.000045428f,-0.000007764f, - -0.002651800f, 0.000458677f,-0.000155425f, 0.000045654f,-0.000007764f, - -0.002653606f, 0.000462556f,-0.000156627f, 0.000045876f,-0.000007763f, - -0.002655348f, 0.000466399f,-0.000157816f, 0.000046093f,-0.000007761f, - -0.002657027f, 0.000470206f,-0.000158992f, 0.000046307f,-0.000007758f, - -0.002658644f, 0.000473977f,-0.000160156f, 0.000046517f,-0.000007756f, - -0.002660197f, 0.000477713f,-0.000161306f, 0.000046724f,-0.000007752f, - -0.002661687f, 0.000481413f,-0.000162444f, 0.000046926f,-0.000007748f, - -0.002663114f, 0.000485077f,-0.000163569f, 0.000047125f,-0.000007743f, - -0.002664478f, 0.000488705f,-0.000164680f, 0.000047320f,-0.000007738f, - -0.002665779f, 0.000492298f,-0.000165780f, 0.000047511f,-0.000007732f, - -0.002667018f, 0.000495855f,-0.000166866f, 0.000047698f,-0.000007725f, - -0.002668193f, 0.000499377f,-0.000167939f, 0.000047882f,-0.000007718f, - -0.002669306f, 0.000502862f,-0.000169000f, 0.000048061f,-0.000007711f, - -0.002670356f, 0.000506312f,-0.000170047f, 0.000048237f,-0.000007703f, - -0.002671344f, 0.000509726f,-0.000171082f, 0.000048410f,-0.000007694f, - -0.002672268f, 0.000513105f,-0.000172104f, 0.000048578f,-0.000007685f, - -0.002673130f, 0.000516447f,-0.000173113f, 0.000048743f,-0.000007675f, - -0.002673930f, 0.000519754f,-0.000174110f, 0.000048905f,-0.000007665f, - -0.002674667f, 0.000523026f,-0.000175093f, 0.000049062f,-0.000007654f, - -0.002675342f, 0.000526262f,-0.000176064f, 0.000049216f,-0.000007642f, - -0.002675955f, 0.000529462f,-0.000177022f, 0.000049367f,-0.000007631f, - -0.002676505f, 0.000532626f,-0.000177968f, 0.000049513f,-0.000007618f, - -0.002676993f, 0.000535755f,-0.000178900f, 0.000049656f,-0.000007605f, - -0.002677419f, 0.000538848f,-0.000179820f, 0.000049796f,-0.000007592f, - -0.002677783f, 0.000541906f,-0.000180728f, 0.000049932f,-0.000007578f, - -0.002678085f, 0.000544928f,-0.000181622f, 0.000050064f,-0.000007564f, - -0.002678325f, 0.000547915f,-0.000182504f, 0.000050193f,-0.000007549f, - -0.002678503f, 0.000550866f,-0.000183373f, 0.000050318f,-0.000007533f, - -0.002678619f, 0.000553782f,-0.000184230f, 0.000050440f,-0.000007518f, - -0.002678674f, 0.000556662f,-0.000185074f, 0.000050558f,-0.000007501f, - -0.002678667f, 0.000559507f,-0.000185905f, 0.000050673f,-0.000007484f, - -0.002678599f, 0.000562316f,-0.000186724f, 0.000050784f,-0.000007467f, - -0.002678469f, 0.000565090f,-0.000187530f, 0.000050891f,-0.000007450f, - -0.002678278f, 0.000567829f,-0.000188324f, 0.000050996f,-0.000007431f, - -0.002678025f, 0.000570532f,-0.000189105f, 0.000051096f,-0.000007413f, - -0.002677712f, 0.000573200f,-0.000189873f, 0.000051194f,-0.000007394f, - -0.002677337f, 0.000575833f,-0.000190629f, 0.000051288f,-0.000007374f, - -0.002676902f, 0.000578431f,-0.000191373f, 0.000051378f,-0.000007355f, - -0.002676406f, 0.000580993f,-0.000192104f, 0.000051465f,-0.000007334f, - -0.002675848f, 0.000583521f,-0.000192823f, 0.000051549f,-0.000007314f, - -0.002675231f, 0.000586013f,-0.000193529f, 0.000051629f,-0.000007293f, - -0.002674552f, 0.000588471f,-0.000194223f, 0.000051706f,-0.000007271f, - -0.002673814f, 0.000590893f,-0.000194905f, 0.000051780f,-0.000007249f, - -0.002673015f, 0.000593280f,-0.000195574f, 0.000051850f,-0.000007227f, - -0.002672155f, 0.000595633f,-0.000196231f, 0.000051918f,-0.000007204f, - -0.002671236f, 0.000597950f,-0.000196876f, 0.000051981f,-0.000007181f, - -0.002670256f, 0.000600233f,-0.000197508f, 0.000052042f,-0.000007158f, - -0.002669217f, 0.000602481f,-0.000198128f, 0.000052099f,-0.000007134f, - -0.002668118f, 0.000604694f,-0.000198736f, 0.000052153f,-0.000007110f, - -0.002666959f, 0.000606873f,-0.000199332f, 0.000052204f,-0.000007085f, - -0.002665741f, 0.000609017f,-0.000199916f, 0.000052252f,-0.000007060f, - -0.002664463f, 0.000611126f,-0.000200487f, 0.000052296f,-0.000007035f, - -0.002663126f, 0.000613201f,-0.000201047f, 0.000052338f,-0.000007009f, - -0.002661730f, 0.000615242f,-0.000201594f, 0.000052376f,-0.000006983f, - -0.002660275f, 0.000617248f,-0.000202130f, 0.000052411f,-0.000006957f, - -0.002658761f, 0.000619219f,-0.000202653f, 0.000052443f,-0.000006930f, - -0.002657188f, 0.000621157f,-0.000203164f, 0.000052472f,-0.000006903f, - -0.002655556f, 0.000623060f,-0.000203664f, 0.000052498f,-0.000006876f, - -0.002653866f, 0.000624929f,-0.000204151f, 0.000052520f,-0.000006848f, - -0.002652118f, 0.000626764f,-0.000204627f, 0.000052540f,-0.000006820f, - -0.002650311f, 0.000628565f,-0.000205091f, 0.000052557f,-0.000006792f, - -0.002648446f, 0.000630332f,-0.000205543f, 0.000052570f,-0.000006764f, - -0.002646523f, 0.000632065f,-0.000205983f, 0.000052581f,-0.000006735f, - -0.002644543f, 0.000633764f,-0.000206411f, 0.000052589f,-0.000006706f, - -0.002642504f, 0.000635429f,-0.000206828f, 0.000052593f,-0.000006676f, - -0.002640408f, 0.000637061f,-0.000207233f, 0.000052595f,-0.000006647f, - -0.002638255f, 0.000638659f,-0.000207626f, 0.000052594f,-0.000006617f, - -0.002636045f, 0.000640224f,-0.000208008f, 0.000052590f,-0.000006586f, - -0.002633777f, 0.000641754f,-0.000208378f, 0.000052583f,-0.000006556f, - -0.002631453f, 0.000643252f,-0.000208737f, 0.000052573f,-0.000006525f, - -0.002629071f, 0.000644716f,-0.000209084f, 0.000052560f,-0.000006494f, - -0.002626634f, 0.000646147f,-0.000209419f, 0.000052545f,-0.000006463f, - -0.002624139f, 0.000647545f,-0.000209744f, 0.000052527f,-0.000006431f, - -0.002621589f, 0.000648909f,-0.000210056f, 0.000052505f,-0.000006400f, - -0.002618982f, 0.000650241f,-0.000210358f, 0.000052482f,-0.000006368f, - -0.002616319f, 0.000651539f,-0.000210648f, 0.000052455f,-0.000006335f, - -0.002613600f, 0.000652805f,-0.000210927f, 0.000052425f,-0.000006303f, - -0.002610826f, 0.000654038f,-0.000211194f, 0.000052393f,-0.000006270f, - -0.002607996f, 0.000655238f,-0.000211451f, 0.000052359f,-0.000006237f, - -0.002605111f, 0.000656406f,-0.000211696f, 0.000052321f,-0.000006204f, - -0.002602171f, 0.000657541f,-0.000211930f, 0.000052281f,-0.000006171f, - -0.002599176f, 0.000658643f,-0.000212153f, 0.000052238f,-0.000006137f, - -0.002596126f, 0.000659713f,-0.000212365f, 0.000052193f,-0.000006104f, - -0.002593021f, 0.000660751f,-0.000212566f, 0.000052144f,-0.000006070f, - -0.002589862f, 0.000661756f,-0.000212756f, 0.000052094f,-0.000006035f, - -0.002586648f, 0.000662730f,-0.000212935f, 0.000052041f,-0.000006001f, - -0.002583381f, 0.000663671f,-0.000213104f, 0.000051985f,-0.000005967f, - -0.002580059f, 0.000664581f,-0.000213261f, 0.000051926f,-0.000005932f, - -0.002576684f, 0.000665458f,-0.000213408f, 0.000051866f,-0.000005897f, - -0.002573255f, 0.000666304f,-0.000213544f, 0.000051802f,-0.000005862f, - -0.002569773f, 0.000667118f,-0.000213669f, 0.000051736f,-0.000005827f, - -0.002566238f, 0.000667901f,-0.000213783f, 0.000051668f,-0.000005792f, - -0.002562650f, 0.000668652f,-0.000213887f, 0.000051597f,-0.000005756f, - -0.002559009f, 0.000669372f,-0.000213980f, 0.000051524f,-0.000005721f, - -0.002555315f, 0.000670060f,-0.000214063f, 0.000051449f,-0.000005685f, - -0.002551569f, 0.000670717f,-0.000214136f, 0.000051371f,-0.000005649f, - -0.002547771f, 0.000671343f,-0.000214197f, 0.000051290f,-0.000005613f, - -0.002543920f, 0.000671938f,-0.000214249f, 0.000051208f,-0.000005577f, - -0.002540018f, 0.000672503f,-0.000214290f, 0.000051123f,-0.000005540f, - -0.002536065f, 0.000673036f,-0.000214321f, 0.000051036f,-0.000005504f, - -0.002532059f, 0.000673539f,-0.000214342f, 0.000050946f,-0.000005467f, - -0.002528003f, 0.000674011f,-0.000214352f, 0.000050854f,-0.000005431f, - -0.002523895f, 0.000674453f,-0.000214352f, 0.000050760f,-0.000005394f, - -0.002519737f, 0.000674864f,-0.000214342f, 0.000050664f,-0.000005357f, - -0.002515528f, 0.000675245f,-0.000214322f, 0.000050565f,-0.000005320f, - -0.002511269f, 0.000675596f,-0.000214292f, 0.000050465f,-0.000005283f, - -0.002506959f, 0.000675917f,-0.000214253f, 0.000050362f,-0.000005246f, - -0.002502600f, 0.000676208f,-0.000214203f, 0.000050257f,-0.000005208f, - -0.002498191f, 0.000676469f,-0.000214143f, 0.000050149f,-0.000005171f, - -0.002493732f, 0.000676700f,-0.000214074f, 0.000050040f,-0.000005134f, - -0.002489224f, 0.000676902f,-0.000213994f, 0.000049929f,-0.000005096f, - -0.002484666f, 0.000677074f,-0.000213905f, 0.000049815f,-0.000005059f, - -0.002480060f, 0.000677217f,-0.000213807f, 0.000049700f,-0.000005021f, - -0.002475405f, 0.000677330f,-0.000213698f, 0.000049582f,-0.000004983f, - -0.002470702f, 0.000677414f,-0.000213581f, 0.000049463f,-0.000004945f, - -0.002465950f, 0.000677470f,-0.000213453f, 0.000049341f,-0.000004908f, - -0.002461150f, 0.000677496f,-0.000213317f, 0.000049218f,-0.000004870f, - -0.002456302f, 0.000677494f,-0.000213170f, 0.000049092f,-0.000004832f, - -0.002451407f, 0.000677462f,-0.000213015f, 0.000048965f,-0.000004794f, - -0.002446465f, 0.000677403f,-0.000212850f, 0.000048835f,-0.000004756f, - -0.002441475f, 0.000677314f,-0.000212676f, 0.000048704f,-0.000004718f, - -0.002436438f, 0.000677198f,-0.000212492f, 0.000048571f,-0.000004680f, - -0.002431355f, 0.000677053f,-0.000212300f, 0.000048436f,-0.000004641f, - -0.002426225f, 0.000676880f,-0.000212098f, 0.000048299f,-0.000004603f, - -0.002421049f, 0.000676679f,-0.000211888f, 0.000048161f,-0.000004565f, - -0.002415827f, 0.000676450f,-0.000211668f, 0.000048020f,-0.000004527f, - -0.002410559f, 0.000676193f,-0.000211439f, 0.000047878f,-0.000004489f, - -0.002405246f, 0.000675909f,-0.000211202f, 0.000047734f,-0.000004450f, - -0.002399888f, 0.000675597f,-0.000210956f, 0.000047589f,-0.000004412f, - -0.002394484f, 0.000675258f,-0.000210701f, 0.000047441f,-0.000004374f, - -0.002389035f, 0.000674892f,-0.000210437f, 0.000047292f,-0.000004336f, - -0.002383542f, 0.000674498f,-0.000210164f, 0.000047141f,-0.000004297f, - -0.002378005f, 0.000674078f,-0.000209883f, 0.000046989f,-0.000004259f, - -0.002372423f, 0.000673630f,-0.000209594f, 0.000046835f,-0.000004221f, - -0.002366798f, 0.000673156f,-0.000209295f, 0.000046679f,-0.000004183f, - -0.002361129f, 0.000672656f,-0.000208989f, 0.000046522f,-0.000004144f, - -0.002355417f, 0.000672128f,-0.000208674f, 0.000046363f,-0.000004106f, - -0.002349661f, 0.000671575f,-0.000208350f, 0.000046202f,-0.000004068f, - -0.002343863f, 0.000670995f,-0.000208019f, 0.000046040f,-0.000004030f, - -0.002338022f, 0.000670389f,-0.000207679f, 0.000045877f,-0.000003992f, - -0.002332139f, 0.000669757f,-0.000207331f, 0.000045712f,-0.000003954f, - -0.002326213f, 0.000669099f,-0.000206975f, 0.000045545f,-0.000003916f, - -0.002320246f, 0.000668416f,-0.000206610f, 0.000045377f,-0.000003878f, - -0.002314237f, 0.000667707f,-0.000206238f, 0.000045208f,-0.000003840f, - -0.002308187f, 0.000666972f,-0.000205858f, 0.000045037f,-0.000003802f, - -0.002302095f, 0.000666213f,-0.000205470f, 0.000044864f,-0.000003764f, - -0.002295963f, 0.000665428f,-0.000205074f, 0.000044691f,-0.000003726f, - -0.002289790f, 0.000664618f,-0.000204670f, 0.000044516f,-0.000003688f, - -0.002283577f, 0.000663783f,-0.000204259f, 0.000044339f,-0.000003651f, - -0.002277323f, 0.000662923f,-0.000203840f, 0.000044162f,-0.000003613f, - -0.002271030f, 0.000662039f,-0.000203413f, 0.000043982f,-0.000003575f, - -0.002264697f, 0.000661130f,-0.000202979f, 0.000043802f,-0.000003538f, - -0.002258325f, 0.000660197f,-0.000202537f, 0.000043620f,-0.000003501f, - -0.002251914f, 0.000659240f,-0.000202088f, 0.000043438f,-0.000003463f, - -0.002245464f, 0.000658258f,-0.000201632f, 0.000043253f,-0.000003426f, - -0.002238975f, 0.000657253f,-0.000201168f, 0.000043068f,-0.000003389f, - -0.002232449f, 0.000656224f,-0.000200697f, 0.000042882f,-0.000003351f, - -0.002225884f, 0.000655171f,-0.000200218f, 0.000042694f,-0.000003314f, - -0.002219281f, 0.000654094f,-0.000199733f, 0.000042505f,-0.000003277f, - -0.002212641f, 0.000652995f,-0.000199240f, 0.000042315f,-0.000003241f, - -0.002205964f, 0.000651872f,-0.000198741f, 0.000042124f,-0.000003204f, - -0.002199250f, 0.000650726f,-0.000198234f, 0.000041931f,-0.000003167f, - -0.002192499f, 0.000649557f,-0.000197721f, 0.000041738f,-0.000003130f, - -0.002185712f, 0.000648365f,-0.000197200f, 0.000041544f,-0.000003094f, - -0.002178889f, 0.000647151f,-0.000196673f, 0.000041348f,-0.000003057f, - -0.002172030f, 0.000645914f,-0.000196139f, 0.000041152f,-0.000003021f, - -0.002165135f, 0.000644654f,-0.000195599f, 0.000040954f,-0.000002985f, - -0.002158205f, 0.000643373f,-0.000195052f, 0.000040756f,-0.000002949f, - -0.002151240f, 0.000642069f,-0.000194498f, 0.000040556f,-0.000002913f, - -0.002144240f, 0.000640743f,-0.000193938f, 0.000040356f,-0.000002877f, - -0.002137205f, 0.000639396f,-0.000193371f, 0.000040154f,-0.000002841f, - -0.002130137f, 0.000638027f,-0.000192798f, 0.000039952f,-0.000002806f, - -0.002123034f, 0.000636636f,-0.000192219f, 0.000039749f,-0.000002770f, - -0.002115898f, 0.000635224f,-0.000191633f, 0.000039544f,-0.000002735f, - -0.002108728f, 0.000633791f,-0.000191041f, 0.000039339f,-0.000002699f, - -0.002101526f, 0.000632337f,-0.000190443f, 0.000039134f,-0.000002664f, - -0.002094290f, 0.000630862f,-0.000189839f, 0.000038927f,-0.000002629f, - -0.002087022f, 0.000629366f,-0.000189229f, 0.000038719f,-0.000002594f, - -0.002079722f, 0.000627849f,-0.000188613f, 0.000038511f,-0.000002560f, - -0.002072389f, 0.000626313f,-0.000187991f, 0.000038302f,-0.000002525f, - -0.002065025f, 0.000624755f,-0.000187363f, 0.000038092f,-0.000002491f, - -0.002057630f, 0.000623178f,-0.000186730f, 0.000037882f,-0.000002456f, - -0.002050203f, 0.000621580f,-0.000186090f, 0.000037670f,-0.000002422f, - -0.002042746f, 0.000619963f,-0.000185445f, 0.000037458f,-0.000002388f, - -0.002035258f, 0.000618326f,-0.000184795f, 0.000037246f,-0.000002354f, - -0.002027739f, 0.000616669f,-0.000184139f, 0.000037032f,-0.000002320f, - -0.002020191f, 0.000614993f,-0.000183477f, 0.000036818f,-0.000002287f, - -0.002012613f, 0.000613298f,-0.000182810f, 0.000036604f,-0.000002253f, - -0.002005005f, 0.000611583f,-0.000182137f, 0.000036388f,-0.000002220f, - -0.001997369f, 0.000609850f,-0.000181460f, 0.000036172f,-0.000002187f, - -0.001989703f, 0.000608097f,-0.000180777f, 0.000035956f,-0.000002154f, - -0.001982009f, 0.000606326f,-0.000180088f, 0.000035739f,-0.000002121f, - -0.001974287f, 0.000604537f,-0.000179395f, 0.000035521f,-0.000002088f, - -0.001966536f, 0.000602729f,-0.000178696f, 0.000035303f,-0.000002056f, - -0.001958758f, 0.000600903f,-0.000177993f, 0.000035085f,-0.000002023f, - -0.001950952f, 0.000599059f,-0.000177285f, 0.000034865f,-0.000001991f, - -0.001943120f, 0.000597197f,-0.000176571f, 0.000034646f,-0.000001959f, - -0.001935260f, 0.000595317f,-0.000175853f, 0.000034426f,-0.000001927f, - -0.001927374f, 0.000593420f,-0.000175130f, 0.000034205f,-0.000001896f, - -0.001919461f, 0.000591505f,-0.000174403f, 0.000033984f,-0.000001864f, - -0.001911523f, 0.000589573f,-0.000173670f, 0.000033763f,-0.000001833f, - -0.001903559f, 0.000587624f,-0.000172933f, 0.000033541f,-0.000001802f, - -0.001895569f, 0.000585657f,-0.000172192f, 0.000033318f,-0.000001771f, - -0.001887555f, 0.000583674f,-0.000171446f, 0.000033096f,-0.000001740f, - -0.001879515f, 0.000581675f,-0.000170696f, 0.000032873f,-0.000001709f, - -0.001871451f, 0.000579658f,-0.000169941f, 0.000032650f,-0.000001679f, - -0.001863363f, 0.000577626f,-0.000169182f, 0.000032426f,-0.000001649f, - -0.001855251f, 0.000575577f,-0.000168419f, 0.000032202f,-0.000001619f, - -0.001847115f, 0.000573512f,-0.000167651f, 0.000031978f,-0.000001589f, - -0.001838956f, 0.000571431f,-0.000166879f, 0.000031753f,-0.000001559f, - -0.001830774f, 0.000569335f,-0.000166104f, 0.000031528f,-0.000001529f, - -0.001822569f, 0.000567222f,-0.000165324f, 0.000031303f,-0.000001500f, - -0.001814342f, 0.000565095f,-0.000164541f, 0.000031078f,-0.000001471f, - -0.001806092f, 0.000562952f,-0.000163753f, 0.000030853f,-0.000001442f, - -0.001797821f, 0.000560794f,-0.000162962f, 0.000030627f,-0.000001413f, - -0.001789528f, 0.000558621f,-0.000162166f, 0.000030401f,-0.000001385f, - -0.001781213f, 0.000556433f,-0.000161368f, 0.000030175f,-0.000001356f, - -0.001772878f, 0.000554231f,-0.000160565f, 0.000029949f,-0.000001328f, - -0.001764522f, 0.000552014f,-0.000159759f, 0.000029723f,-0.000001300f, - -0.001756146f, 0.000549782f,-0.000158949f, 0.000029496f,-0.000001272f, - -0.001747749f, 0.000547537f,-0.000158136f, 0.000029270f,-0.000001245f, - -0.001739333f, 0.000545277f,-0.000157320f, 0.000029043f,-0.000001217f, - -0.001730897f, 0.000543004f,-0.000156500f, 0.000028816f,-0.000001190f, - -0.001722442f, 0.000540717f,-0.000155676f, 0.000028590f,-0.000001163f, - -0.001713968f, 0.000538416f,-0.000154850f, 0.000028363f,-0.000001136f, - -0.001705475f, 0.000536102f,-0.000154020f, 0.000028136f,-0.000001110f, - -0.001696964f, 0.000533774f,-0.000153187f, 0.000027909f,-0.000001083f, - -0.001688435f, 0.000531434f,-0.000152351f, 0.000027682f,-0.000001057f, + 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, }; diff --git a/src/audio/SDL_audiocvt.c b/src/audio/SDL_audiocvt.c index 9b34823b6e..913d6a3191 100644 --- a/src/audio/SDL_audiocvt.c +++ b/src/audio/SDL_audiocvt.c @@ -109,10 +109,10 @@ static void ResampleAudio(const int chans, const float *inbuf, const int inframe for (j = 0; j < RESAMPLER_ZERO_CROSSINGS; j++) { const int filt_ind1 = filterindex + j; - const int filt_ind2 = RESAMPLER_FILTER_SIZE - 1 - filt_ind1; + const int filt_ind2 = (RESAMPLER_FILTER_SIZE - 1) - filt_ind1; - const float scale1 = ResamplerFilter[filt_ind1] + (interpolation1 * ResamplerFilterDifference[filt_ind1]); - const float scale2 = ResamplerFilter[filt_ind2] + (interpolation2 * ResamplerFilterDifference[filt_ind2]); + const float scale1 = (ResamplerFilter[filt_ind1] * interpolation2) + (ResamplerFilter[filt_ind1 + RESAMPLER_ZERO_CROSSINGS] * interpolation1); + const float scale2 = (ResamplerFilter[filt_ind2] * interpolation1) + (ResamplerFilter[filt_ind2 + RESAMPLER_ZERO_CROSSINGS] * interpolation2); const int srcframe1 = srcindex - j; const int srcframe2 = srcframe1 + RESAMPLER_ZERO_CROSSINGS;