diff --git a/User/fft_windows.c b/User/fft_windows.c new file mode 100644 index 0000000..a9834d0 --- /dev/null +++ b/User/fft_windows.c @@ -0,0 +1,11 @@ +#include "fft_windows.h" + +const float win_hamming_16[] = {0.08000000f, 0.11976909f, 0.23219992f, 0.39785218f, 0.58808309f, 0.77000000f, 0.91214782f, 0.98994790f, 0.98994790f, 0.91214782f, 0.77000000f, 0.58808309f, 0.39785218f, 0.23219992f, 0.11976909f, 0.08000000f}; +const float win_hamming_32[] = {0.08000000f, 0.08941623f, 0.11727941f, 0.16244882f, 0.22307522f, 0.29667656f, 0.38023958f, 0.47034322f, 0.56329862f, 0.65530016f, 0.74258131f, 0.82156875f, 0.88902874f, 0.94219944f, 0.97890406f, 0.99763989f, 0.99763989f, 0.97890406f, 0.94219944f, 0.88902874f, 0.82156875f, 0.74258131f, 0.65530016f, 0.56329862f, 0.47034322f, 0.38023958f, 0.29667656f, 0.22307522f, 0.16244882f, 0.11727941f, 0.08941623f, 0.08000000f}; +const float win_hamming_64[] = {0.08000000f, 0.08228584f, 0.08912066f, 0.10043651f, 0.11612094f, 0.13601808f, 0.15993016f, 0.18761956f, 0.21881106f, 0.25319469f, 0.29042872f, 0.33014310f, 0.37194313f, 0.41541338f, 0.46012184f, 0.50562416f, 0.55146812f, 0.59719810f, 0.64235963f, 0.68650386f, 0.72919207f, 0.77000000f, 0.80852209f, 0.84437549f, 0.87720386f, 0.90668095f, 0.93251381f, 0.95444568f, 0.97225861f, 0.98577555f, 0.99486218f, 0.99942818f, 0.99942818f, 0.99486218f, 0.98577555f, 0.97225861f, 0.95444568f, 0.93251381f, 0.90668095f, 0.87720386f, 0.84437549f, 0.80852209f, 0.77000000f, 0.72919207f, 0.68650386f, 0.64235963f, 0.59719810f, 0.55146812f, 0.50562416f, 0.46012184f, 0.41541338f, 0.37194313f, 0.33014310f, 0.29042872f, 0.25319469f, 0.21881106f, 0.18761956f, 0.15993016f, 0.13601808f, 0.11612094f, 0.10043651f, 0.08912066f, 0.08228584f, 0.08000000f}; +const float win_hamming_128[] = {0.08000000f, 0.08056285f, 0.08225002f, 0.08505738f, 0.08897806f, 0.09400246f, 0.10011830f, 0.10731060f, 0.11556177f, 0.12485160f, 0.13515738f, 0.14645387f, 0.15871343f, 0.17190607f, 0.18599949f, 0.20095922f, 0.21674863f, 0.23332909f, 0.25066003f, 0.26869903f, 0.28740195f, 0.30672302f, 0.32661496f, 0.34702909f, 0.36791545f, 0.38922293f, 0.41089938f, 0.43289177f, 0.45514627f, 0.47760842f, 0.50022325f, 0.52293542f, 0.54568935f, 0.56842936f, 0.59109980f, 0.61364519f, 0.63601036f, 0.65814057f, 0.67998167f, 0.70148022f, 0.72258359f, 0.74324016f, 0.76339936f, 0.78301186f, 0.80202967f, 0.82040626f, 0.83809664f, 0.85505753f, 0.87124742f, 0.88662669f, 0.90115771f, 0.91480492f, 0.92753491f, 0.93931655f, 0.95012099f, 0.95992179f, 0.96869497f, 0.97641907f, 0.98307517f, 0.98864700f, 0.99312091f, 0.99648596f, 0.99873391f, 0.99985927f, 0.99985927f, 0.99873391f, 0.99648596f, 0.99312091f, 0.98864700f, 0.98307517f, 0.97641907f, 0.96869497f, 0.95992179f, 0.95012099f, 0.93931655f, 0.92753491f, 0.91480492f, 0.90115771f, 0.88662669f, 0.87124742f, 0.85505753f, 0.83809664f, 0.82040626f, 0.80202967f, 0.78301186f, 0.76339936f, 0.74324016f, 0.72258359f, 0.70148022f, 0.67998167f, 0.65814057f, 0.63601036f, 0.61364519f, 0.59109980f, 0.56842936f, 0.54568935f, 0.52293542f, 0.50022325f, 0.47760842f, 0.45514627f, 0.43289177f, 0.41089938f, 0.38922293f, 0.36791545f, 0.34702909f, 0.32661496f, 0.30672302f, 0.28740195f, 0.26869903f, 0.25066003f, 0.23332909f, 0.21674863f, 0.20095922f, 0.18599949f, 0.17190607f, 0.15871343f, 0.14645387f, 0.13515738f, 0.12485160f, 0.11556177f, 0.10731060f, 0.10011830f, 0.09400246f, 0.08897806f, 0.08505738f, 0.08225002f, 0.08056285f, 0.08000000f}; +const float win_hamming_256[] = {0.08000000f, 0.08013963f, 0.08055844f, 0.08125618f, 0.08223242f, 0.08348657f, 0.08501786f, 0.08682537f, 0.08890801f, 0.09126449f, 0.09389341f, 0.09679315f, 0.09996197f, 0.10339793f, 0.10709894f, 0.11106277f, 0.11528701f, 0.11976909f, 0.12450629f, 0.12949573f, 0.13473439f, 0.14021908f, 0.14594648f, 0.15191311f, 0.15811535f, 0.16454942f, 0.17121143f, 0.17809733f, 0.18520294f, 0.19252394f, 0.20005590f, 0.20779423f, 0.21573425f, 0.22387112f, 0.23219992f, 0.24071558f, 0.24941294f, 0.25828671f, 0.26733150f, 0.27654184f, 0.28591211f, 0.29543665f, 0.30510965f, 0.31492526f, 0.32487751f, 0.33496036f, 0.34516768f, 0.35549329f, 0.36593092f, 0.37647422f, 0.38711679f, 0.39785218f, 0.40867387f, 0.41957529f, 0.43054981f, 0.44159078f, 0.45269150f, 0.46384522f, 0.47504517f, 0.48628456f, 0.49755655f, 0.50885432f, 0.52017099f, 0.53149970f, 0.54283358f, 0.55416573f, 0.56548928f, 0.57679736f, 0.58808309f, 0.59933964f, 0.61056016f, 0.62173785f, 0.63286591f, 0.64393759f, 0.65494618f, 0.66588498f, 0.67674735f, 0.68752671f, 0.69821650f, 0.70881024f, 0.71930150f, 0.72968391f, 0.73995115f, 0.75009701f, 0.76011532f, 0.77000000f, 0.77974505f, 0.78934454f, 0.79879267f, 0.80808368f, 0.81721193f, 0.82617190f, 0.83495812f, 0.84356529f, 0.85198815f, 0.86022162f, 0.86826067f, 0.87610044f, 0.88373617f, 0.89116321f, 0.89837706f, 0.90537335f, 0.91214782f, 0.91869636f, 0.92501499f, 0.93109988f, 0.93694734f, 0.94255381f, 0.94791590f, 0.95303033f, 0.95789403f, 0.96250401f, 0.96685750f, 0.97095185f, 0.97478456f, 0.97835332f, 0.98165596f, 0.98469047f, 0.98745501f, 0.98994790f, 0.99216763f, 0.99411285f, 0.99578238f, 0.99717520f, 0.99829048f, 0.99912753f, 0.99968585f, 0.99996509f, 0.99996509f, 0.99968585f, 0.99912753f, 0.99829048f, 0.99717520f, 0.99578238f, 0.99411285f, 0.99216763f, 0.98994790f, 0.98745501f, 0.98469047f, 0.98165596f, 0.97835332f, 0.97478456f, 0.97095185f, 0.96685750f, 0.96250401f, 0.95789403f, 0.95303033f, 0.94791590f, 0.94255381f, 0.93694734f, 0.93109988f, 0.92501499f, 0.91869636f, 0.91214782f, 0.90537335f, 0.89837706f, 0.89116321f, 0.88373617f, 0.87610044f, 0.86826067f, 0.86022162f, 0.85198815f, 0.84356529f, 0.83495812f, 0.82617190f, 0.81721193f, 0.80808368f, 0.79879267f, 0.78934454f, 0.77974505f, 0.77000000f, 0.76011532f, 0.75009701f, 0.73995115f, 0.72968391f, 0.71930150f, 0.70881024f, 0.69821650f, 0.68752671f, 0.67674735f, 0.66588498f, 0.65494618f, 0.64393759f, 0.63286591f, 0.62173785f, 0.61056016f, 0.59933964f, 0.58808309f, 0.57679736f, 0.56548928f, 0.55416573f, 0.54283358f, 0.53149970f, 0.52017099f, 0.50885432f, 0.49755655f, 0.48628456f, 0.47504517f, 0.46384522f, 0.45269150f, 0.44159078f, 0.43054981f, 0.41957529f, 0.40867387f, 0.39785218f, 0.38711679f, 0.37647422f, 0.36593092f, 0.35549329f, 0.34516768f, 0.33496036f, 0.32487751f, 0.31492526f, 0.30510965f, 0.29543665f, 0.28591211f, 0.27654184f, 0.26733150f, 0.25828671f, 0.24941294f, 0.24071558f, 0.23219992f, 0.22387112f, 0.21573425f, 0.20779423f, 0.20005590f, 0.19252394f, 0.18520294f, 0.17809733f, 0.17121143f, 0.16454942f, 0.15811535f, 0.15191311f, 0.14594648f, 0.14021908f, 0.13473439f, 0.12949573f, 0.12450629f, 0.11976909f, 0.11528701f, 0.11106277f, 0.10709894f, 0.10339793f, 0.09996197f, 0.09679315f, 0.09389341f, 0.09126449f, 0.08890801f, 0.08682537f, 0.08501786f, 0.08348657f, 0.08223242f, 0.08125618f, 0.08055844f, 0.08013963f, 0.08000000f}; +const float win_hamming_512[] = {0.08000000f, 0.08003477f, 0.08013909f, 0.08031292f, 0.08055626f, 0.08086906f, 0.08125127f, 0.08170284f, 0.08222370f, 0.08281376f, 0.08347295f, 0.08420116f, 0.08499828f, 0.08586418f, 0.08679875f, 0.08780184f, 0.08887329f, 0.09001294f, 0.09122063f, 0.09249617f, 0.09383936f, 0.09525001f, 0.09672789f, 0.09827280f, 0.09988448f, 0.10156271f, 0.10330722f, 0.10511775f, 0.10699403f, 0.10893578f, 0.11094270f, 0.11301448f, 0.11515082f, 0.11735139f, 0.11961586f, 0.12194389f, 0.12433512f, 0.12678919f, 0.12930573f, 0.13188437f, 0.13452471f, 0.13722635f, 0.13998888f, 0.14281189f, 0.14569495f, 0.14863762f, 0.15163946f, 0.15470002f, 0.15781883f, 0.16099542f, 0.16422931f, 0.16752001f, 0.17086702f, 0.17426984f, 0.17772796f, 0.18124085f, 0.18480797f, 0.18842880f, 0.19210278f, 0.19582935f, 0.19960796f, 0.20343803f, 0.20731899f, 0.21125024f, 0.21523120f, 0.21926125f, 0.22333980f, 0.22746622f, 0.23163990f, 0.23586019f, 0.24012646f, 0.24443807f, 0.24879437f, 0.25319469f, 0.25763837f, 0.26212475f, 0.26665313f, 0.27122284f, 0.27583319f, 0.28048347f, 0.28517299f, 0.28990103f, 0.29466689f, 0.29946984f, 0.30430915f, 0.30918410f, 0.31409394f, 0.31903793f, 0.32401534f, 0.32902539f, 0.33406735f, 0.33914043f, 0.34424389f, 0.34937694f, 0.35453881f, 0.35972872f, 0.36494588f, 0.37018951f, 0.37545881f, 0.38075299f, 0.38607124f, 0.39141277f, 0.39677676f, 0.40216240f, 0.40756889f, 0.41299539f, 0.41844110f, 0.42390518f, 0.42938682f, 0.43488518f, 0.44039943f, 0.44592874f, 0.45147227f, 0.45702919f, 0.46259865f, 0.46817981f, 0.47377183f, 0.47937386f, 0.48498506f, 0.49060458f, 0.49623157f, 0.50186517f, 0.50750453f, 0.51314881f, 0.51879715f, 0.52444870f, 0.53010260f, 0.53575799f, 0.54141402f, 0.54706984f, 0.55272459f, 0.55837742f, 0.56402747f, 0.56967389f, 0.57531582f, 0.58095241f, 0.58658281f, 0.59220616f, 0.59782163f, 0.60342835f, 0.60902548f, 0.61461218f, 0.62018760f, 0.62575089f, 0.63130122f, 0.63683774f, 0.64235963f, 0.64786604f, 0.65335614f, 0.65882910f, 0.66428410f, 0.66972031f, 0.67513691f, 0.68053307f, 0.68590799f, 0.69126085f, 0.69659084f, 0.70189716f, 0.70717900f, 0.71243557f, 0.71766606f, 0.72286969f, 0.72804568f, 0.73319324f, 0.73831159f, 0.74339995f, 0.74845757f, 0.75348367f, 0.75847749f, 0.76343829f, 0.76836530f, 0.77325778f, 0.77811501f, 0.78293623f, 0.78772072f, 0.79246776f, 0.79717663f, 0.80184662f, 0.80647702f, 0.81106714f, 0.81561627f, 0.82012373f, 0.82458885f, 0.82901093f, 0.83338932f, 0.83772336f, 0.84201238f, 0.84625575f, 0.85045281f, 0.85460293f, 0.85870550f, 0.86275987f, 0.86676546f, 0.87072163f, 0.87462781f, 0.87848340f, 0.88228781f, 0.88604048f, 0.88974082f, 0.89338829f, 0.89698234f, 0.90052241f, 0.90400798f, 0.90743851f, 0.91081349f, 0.91413241f, 0.91739477f, 0.92060007f, 0.92374783f, 0.92683757f, 0.92986882f, 0.93284114f, 0.93575406f, 0.93860715f, 0.94139997f, 0.94413211f, 0.94680315f, 0.94941269f, 0.95196032f, 0.95444568f, 0.95686838f, 0.95922805f, 0.96152434f, 0.96375690f, 0.96592540f, 0.96802950f, 0.97006889f, 0.97204326f, 0.97395231f, 0.97579575f, 0.97757331f, 0.97928471f, 0.98092969f, 0.98250802f, 0.98401944f, 0.98546374f, 0.98684068f, 0.98815007f, 0.98939171f, 0.99056540f, 0.99167097f, 0.99270826f, 0.99367711f, 0.99457736f, 0.99540889f, 0.99617157f, 0.99686528f, 0.99748992f, 0.99804539f, 0.99853161f, 0.99894851f, 0.99929602f, 0.99957409f, 0.99978268f, 0.99992176f, 0.99999131f, 0.99999131f, 0.99992176f, 0.99978268f, 0.99957409f, 0.99929602f, 0.99894851f, 0.99853161f, 0.99804539f, 0.99748992f, 0.99686528f, 0.99617157f, 0.99540889f, 0.99457736f, 0.99367711f, 0.99270826f, 0.99167097f, 0.99056540f, 0.98939171f, 0.98815007f, 0.98684068f, 0.98546374f, 0.98401944f, 0.98250802f, 0.98092969f, 0.97928471f, 0.97757331f, 0.97579575f, 0.97395231f, 0.97204326f, 0.97006889f, 0.96802950f, 0.96592540f, 0.96375690f, 0.96152434f, 0.95922805f, 0.95686838f, 0.95444568f, 0.95196032f, 0.94941269f, 0.94680315f, 0.94413211f, 0.94139997f, 0.93860715f, 0.93575406f, 0.93284114f, 0.92986882f, 0.92683757f, 0.92374783f, 0.92060007f, 0.91739477f, 0.91413241f, 0.91081349f, 0.90743851f, 0.90400798f, 0.90052241f, 0.89698234f, 0.89338829f, 0.88974082f, 0.88604048f, 0.88228781f, 0.87848340f, 0.87462781f, 0.87072163f, 0.86676546f, 0.86275987f, 0.85870550f, 0.85460293f, 0.85045281f, 0.84625575f, 0.84201238f, 0.83772336f, 0.83338932f, 0.82901093f, 0.82458885f, 0.82012373f, 0.81561627f, 0.81106714f, 0.80647702f, 0.80184662f, 0.79717663f, 0.79246776f, 0.78772072f, 0.78293623f, 0.77811501f, 0.77325778f, 0.76836530f, 0.76343829f, 0.75847749f, 0.75348367f, 0.74845757f, 0.74339995f, 0.73831159f, 0.73319324f, 0.72804568f, 0.72286969f, 0.71766606f, 0.71243557f, 0.70717900f, 0.70189716f, 0.69659084f, 0.69126085f, 0.68590799f, 0.68053307f, 0.67513691f, 0.66972031f, 0.66428410f, 0.65882910f, 0.65335614f, 0.64786604f, 0.64235963f, 0.63683774f, 0.63130122f, 0.62575089f, 0.62018760f, 0.61461218f, 0.60902548f, 0.60342835f, 0.59782163f, 0.59220616f, 0.58658281f, 0.58095241f, 0.57531582f, 0.56967389f, 0.56402747f, 0.55837742f, 0.55272459f, 0.54706984f, 0.54141402f, 0.53575799f, 0.53010260f, 0.52444870f, 0.51879715f, 0.51314881f, 0.50750453f, 0.50186517f, 0.49623157f, 0.49060458f, 0.48498506f, 0.47937386f, 0.47377183f, 0.46817981f, 0.46259865f, 0.45702919f, 0.45147227f, 0.44592874f, 0.44039943f, 0.43488518f, 0.42938682f, 0.42390518f, 0.41844110f, 0.41299539f, 0.40756889f, 0.40216240f, 0.39677676f, 0.39141277f, 0.38607124f, 0.38075299f, 0.37545881f, 0.37018951f, 0.36494588f, 0.35972872f, 0.35453881f, 0.34937694f, 0.34424389f, 0.33914043f, 0.33406735f, 0.32902539f, 0.32401534f, 0.31903793f, 0.31409394f, 0.30918410f, 0.30430915f, 0.29946984f, 0.29466689f, 0.28990103f, 0.28517299f, 0.28048347f, 0.27583319f, 0.27122284f, 0.26665313f, 0.26212475f, 0.25763837f, 0.25319469f, 0.24879437f, 0.24443807f, 0.24012646f, 0.23586019f, 0.23163990f, 0.22746622f, 0.22333980f, 0.21926125f, 0.21523120f, 0.21125024f, 0.20731899f, 0.20343803f, 0.19960796f, 0.19582935f, 0.19210278f, 0.18842880f, 0.18480797f, 0.18124085f, 0.17772796f, 0.17426984f, 0.17086702f, 0.16752001f, 0.16422931f, 0.16099542f, 0.15781883f, 0.15470002f, 0.15163946f, 0.14863762f, 0.14569495f, 0.14281189f, 0.13998888f, 0.13722635f, 0.13452471f, 0.13188437f, 0.12930573f, 0.12678919f, 0.12433512f, 0.12194389f, 0.11961586f, 0.11735139f, 0.11515082f, 0.11301448f, 0.11094270f, 0.10893578f, 0.10699403f, 0.10511775f, 0.10330722f, 0.10156271f, 0.09988448f, 0.09827280f, 0.09672789f, 0.09525001f, 0.09383936f, 0.09249617f, 0.09122063f, 0.09001294f, 0.08887329f, 0.08780184f, 0.08679875f, 0.08586418f, 0.08499828f, 0.08420116f, 0.08347295f, 0.08281376f, 0.08222370f, 0.08170284f, 0.08125127f, 0.08086906f, 0.08055626f, 0.08031292f, 0.08013909f, 0.08003477f, 0.08000000f}; +const float win_hamming_1024[] = {0.08000000f, 0.08000868f, 0.08003470f, 0.08007808f, 0.08013881f, 0.08021689f, 0.08031231f, 0.08042507f, 0.08055517f, 0.08070260f, 0.08086736f, 0.08104944f, 0.08124883f, 0.08146552f, 0.08169951f, 0.08195079f, 0.08221935f, 0.08250518f, 0.08280827f, 0.08312860f, 0.08346617f, 0.08382096f, 0.08419296f, 0.08458215f, 0.08498853f, 0.08541206f, 0.08585275f, 0.08631057f, 0.08678550f, 0.08727753f, 0.08778663f, 0.08831280f, 0.08885600f, 0.08941623f, 0.08999345f, 0.09058764f, 0.09119879f, 0.09182687f, 0.09247186f, 0.09313373f, 0.09381245f, 0.09450801f, 0.09522037f, 0.09594951f, 0.09669540f, 0.09745802f, 0.09823733f, 0.09903330f, 0.09984591f, 0.10067512f, 0.10152090f, 0.10238323f, 0.10326206f, 0.10415737f, 0.10506912f, 0.10599728f, 0.10694181f, 0.10790267f, 0.10887984f, 0.10987326f, 0.11088292f, 0.11190876f, 0.11295075f, 0.11400885f, 0.11508302f, 0.11617322f, 0.11727941f, 0.11840154f, 0.11953958f, 0.12069348f, 0.12186319f, 0.12304868f, 0.12424990f, 0.12546680f, 0.12669934f, 0.12794747f, 0.12921114f, 0.13049031f, 0.13178493f, 0.13309495f, 0.13442031f, 0.13576098f, 0.13711690f, 0.13848801f, 0.13987427f, 0.14127562f, 0.14269202f, 0.14412340f, 0.14556972f, 0.14703091f, 0.14850693f, 0.14999772f, 0.15150322f, 0.15302337f, 0.15455813f, 0.15610742f, 0.15767120f, 0.15924939f, 0.16084195f, 0.16244882f, 0.16406992f, 0.16570521f, 0.16735462f, 0.16901808f, 0.17069554f, 0.17238693f, 0.17409219f, 0.17581125f, 0.17754405f, 0.17929052f, 0.18105060f, 0.18282422f, 0.18461131f, 0.18641181f, 0.18822565f, 0.19005275f, 0.19189306f, 0.19374650f, 0.19561301f, 0.19749250f, 0.19938492f, 0.20129018f, 0.20320822f, 0.20513897f, 0.20708234f, 0.20903828f, 0.21100670f, 0.21298753f, 0.21498070f, 0.21698613f, 0.21900374f, 0.22103346f, 0.22307522f, 0.22512893f, 0.22719452f, 0.22927190f, 0.23136101f, 0.23346177f, 0.23557408f, 0.23769788f, 0.23983308f, 0.24197961f, 0.24413738f, 0.24630631f, 0.24848632f, 0.25067733f, 0.25287925f, 0.25509200f, 0.25731549f, 0.25954966f, 0.26179440f, 0.26404964f, 0.26631528f, 0.26859125f, 0.27087746f, 0.27317382f, 0.27548025f, 0.27779665f, 0.28012295f, 0.28245905f, 0.28480486f, 0.28716030f, 0.28952528f, 0.29189971f, 0.29428350f, 0.29667656f, 0.29907879f, 0.30149011f, 0.30391043f, 0.30633966f, 0.30877770f, 0.31122447f, 0.31367986f, 0.31614379f, 0.31861617f, 0.32109689f, 0.32358588f, 0.32608303f, 0.32858825f, 0.33110144f, 0.33362251f, 0.33615137f, 0.33868792f, 0.34123206f, 0.34378370f, 0.34634275f, 0.34890909f, 0.35148265f, 0.35406332f, 0.35665100f, 0.35924560f, 0.36184702f, 0.36445515f, 0.36706991f, 0.36969120f, 0.37231891f, 0.37495294f, 0.37759320f, 0.38023958f, 0.38289200f, 0.38555034f, 0.38821450f, 0.39088439f, 0.39355991f, 0.39624095f, 0.39892741f, 0.40161920f, 0.40431620f, 0.40701833f, 0.40972547f, 0.41243752f, 0.41515439f, 0.41787596f, 0.42060215f, 0.42333283f, 0.42606792f, 0.42880731f, 0.43155089f, 0.43429856f, 0.43705022f, 0.43980576f, 0.44256509f, 0.44532808f, 0.44809465f, 0.45086469f, 0.45363809f, 0.45641474f, 0.45919455f, 0.46197741f, 0.46476321f, 0.46755185f, 0.47034322f, 0.47313722f, 0.47593374f, 0.47873268f, 0.48153393f, 0.48433739f, 0.48714294f, 0.48995049f, 0.49275993f, 0.49557115f, 0.49838404f, 0.50119851f, 0.50401444f, 0.50683172f, 0.50965026f, 0.51246994f, 0.51529067f, 0.51811232f, 0.52093480f, 0.52375800f, 0.52658181f, 0.52940612f, 0.53223084f, 0.53505585f, 0.53788104f, 0.54070632f, 0.54353157f, 0.54635669f, 0.54918156f, 0.55200609f, 0.55483017f, 0.55765369f, 0.56047654f, 0.56329862f, 0.56611982f, 0.56894003f, 0.57175916f, 0.57457708f, 0.57739370f, 0.58020891f, 0.58302261f, 0.58583468f, 0.58864502f, 0.59145352f, 0.59426009f, 0.59706461f, 0.59986697f, 0.60266708f, 0.60546483f, 0.60826010f, 0.61105280f, 0.61384282f, 0.61663005f, 0.61941439f, 0.62219574f, 0.62497399f, 0.62774903f, 0.63052076f, 0.63328907f, 0.63605387f, 0.63881504f, 0.64157249f, 0.64432610f, 0.64707578f, 0.64982142f, 0.65256291f, 0.65530016f, 0.65803307f, 0.66076151f, 0.66348541f, 0.66620464f, 0.66891911f, 0.67162872f, 0.67433337f, 0.67703295f, 0.67972735f, 0.68241649f, 0.68510026f, 0.68777855f, 0.69045126f, 0.69311830f, 0.69577957f, 0.69843496f, 0.70108437f, 0.70372770f, 0.70636486f, 0.70899575f, 0.71162025f, 0.71423829f, 0.71684975f, 0.71945454f, 0.72205256f, 0.72464371f, 0.72722790f, 0.72980502f, 0.73237499f, 0.73493769f, 0.73749305f, 0.74004095f, 0.74258131f, 0.74511403f, 0.74763900f, 0.75015615f, 0.75266537f, 0.75516656f, 0.75765964f, 0.76014451f, 0.76262107f, 0.76508924f, 0.76754891f, 0.77000000f, 0.77244241f, 0.77487606f, 0.77730084f, 0.77971668f, 0.78212347f, 0.78452113f, 0.78690956f, 0.78928868f, 0.79165839f, 0.79401861f, 0.79636925f, 0.79871022f, 0.80104143f, 0.80336279f, 0.80567422f, 0.80797562f, 0.81026692f, 0.81254802f, 0.81481884f, 0.81707929f, 0.81932929f, 0.82156875f, 0.82379759f, 0.82601573f, 0.82822307f, 0.83041955f, 0.83260506f, 0.83477954f, 0.83694290f, 0.83909506f, 0.84123594f, 0.84336545f, 0.84548352f, 0.84759006f, 0.84968500f, 0.85176826f, 0.85383976f, 0.85589942f, 0.85794716f, 0.85998291f, 0.86200658f, 0.86401812f, 0.86601742f, 0.86800443f, 0.86997907f, 0.87194125f, 0.87389092f, 0.87582799f, 0.87775239f, 0.87966405f, 0.88156290f, 0.88344887f, 0.88532187f, 0.88718185f, 0.88902874f, 0.89086245f, 0.89268294f, 0.89449011f, 0.89628392f, 0.89806428f, 0.89983114f, 0.90158442f, 0.90332407f, 0.90505000f, 0.90676217f, 0.90846050f, 0.91014494f, 0.91181540f, 0.91347185f, 0.91511420f, 0.91674241f, 0.91835640f, 0.91995612f, 0.92154150f, 0.92311250f, 0.92466904f, 0.92621107f, 0.92773853f, 0.92925137f, 0.93074952f, 0.93223293f, 0.93370154f, 0.93515530f, 0.93659416f, 0.93801806f, 0.93942694f, 0.94082075f, 0.94219944f, 0.94356296f, 0.94491126f, 0.94624428f, 0.94756198f, 0.94886431f, 0.95015121f, 0.95142263f, 0.95267854f, 0.95391888f, 0.95514361f, 0.95635267f, 0.95754603f, 0.95872364f, 0.95988545f, 0.96103143f, 0.96216152f, 0.96327568f, 0.96437388f, 0.96545607f, 0.96652221f, 0.96757226f, 0.96860618f, 0.96962393f, 0.97062548f, 0.97161078f, 0.97257980f, 0.97353250f, 0.97446885f, 0.97538881f, 0.97629234f, 0.97717942f, 0.97805000f, 0.97890406f, 0.97974156f, 0.98056247f, 0.98136677f, 0.98215441f, 0.98292538f, 0.98367963f, 0.98441715f, 0.98513791f, 0.98584187f, 0.98652902f, 0.98719932f, 0.98785275f, 0.98848928f, 0.98910890f, 0.98971157f, 0.99029729f, 0.99086601f, 0.99141773f, 0.99195241f, 0.99247005f, 0.99297062f, 0.99345411f, 0.99392048f, 0.99436974f, 0.99480185f, 0.99521681f, 0.99561459f, 0.99599519f, 0.99635858f, 0.99670477f, 0.99703372f, 0.99734543f, 0.99763989f, 0.99791708f, 0.99817701f, 0.99841964f, 0.99864499f, 0.99885303f, 0.99904377f, 0.99921718f, 0.99937328f, 0.99951204f, 0.99963347f, 0.99973757f, 0.99982432f, 0.99989372f, 0.99994577f, 0.99998048f, 0.99999783f, 0.99999783f, 0.99998048f, 0.99994577f, 0.99989372f, 0.99982432f, 0.99973757f, 0.99963347f, 0.99951204f, 0.99937328f, 0.99921718f, 0.99904377f, 0.99885303f, 0.99864499f, 0.99841964f, 0.99817701f, 0.99791708f, 0.99763989f, 0.99734543f, 0.99703372f, 0.99670477f, 0.99635858f, 0.99599519f, 0.99561459f, 0.99521681f, 0.99480185f, 0.99436974f, 0.99392048f, 0.99345411f, 0.99297062f, 0.99247005f, 0.99195241f, 0.99141773f, 0.99086601f, 0.99029729f, 0.98971157f, 0.98910890f, 0.98848928f, 0.98785275f, 0.98719932f, 0.98652902f, 0.98584187f, 0.98513791f, 0.98441715f, 0.98367963f, 0.98292538f, 0.98215441f, 0.98136677f, 0.98056247f, 0.97974156f, 0.97890406f, 0.97805000f, 0.97717942f, 0.97629234f, 0.97538881f, 0.97446885f, 0.97353250f, 0.97257980f, 0.97161078f, 0.97062548f, 0.96962393f, 0.96860618f, 0.96757226f, 0.96652221f, 0.96545607f, 0.96437388f, 0.96327568f, 0.96216152f, 0.96103143f, 0.95988545f, 0.95872364f, 0.95754603f, 0.95635267f, 0.95514361f, 0.95391888f, 0.95267854f, 0.95142263f, 0.95015121f, 0.94886431f, 0.94756198f, 0.94624428f, 0.94491126f, 0.94356296f, 0.94219944f, 0.94082075f, 0.93942694f, 0.93801806f, 0.93659416f, 0.93515530f, 0.93370154f, 0.93223293f, 0.93074952f, 0.92925137f, 0.92773853f, 0.92621107f, 0.92466904f, 0.92311250f, 0.92154150f, 0.91995612f, 0.91835640f, 0.91674241f, 0.91511420f, 0.91347185f, 0.91181540f, 0.91014494f, 0.90846050f, 0.90676217f, 0.90505000f, 0.90332407f, 0.90158442f, 0.89983114f, 0.89806428f, 0.89628392f, 0.89449011f, 0.89268294f, 0.89086245f, 0.88902874f, 0.88718185f, 0.88532187f, 0.88344887f, 0.88156290f, 0.87966405f, 0.87775239f, 0.87582799f, 0.87389092f, 0.87194125f, 0.86997907f, 0.86800443f, 0.86601742f, 0.86401812f, 0.86200658f, 0.85998291f, 0.85794716f, 0.85589942f, 0.85383976f, 0.85176826f, 0.84968500f, 0.84759006f, 0.84548352f, 0.84336545f, 0.84123594f, 0.83909506f, 0.83694290f, 0.83477954f, 0.83260506f, 0.83041955f, 0.82822307f, 0.82601573f, 0.82379759f, 0.82156875f, 0.81932929f, 0.81707929f, 0.81481884f, 0.81254802f, 0.81026692f, 0.80797562f, 0.80567422f, 0.80336279f, 0.80104143f, 0.79871022f, 0.79636925f, 0.79401861f, 0.79165839f, 0.78928868f, 0.78690956f, 0.78452113f, 0.78212347f, 0.77971668f, 0.77730084f, 0.77487606f, 0.77244241f, 0.77000000f, 0.76754891f, 0.76508924f, 0.76262107f, 0.76014451f, 0.75765964f, 0.75516656f, 0.75266537f, 0.75015615f, 0.74763900f, 0.74511403f, 0.74258131f, 0.74004095f, 0.73749305f, 0.73493769f, 0.73237499f, 0.72980502f, 0.72722790f, 0.72464371f, 0.72205256f, 0.71945454f, 0.71684975f, 0.71423829f, 0.71162025f, 0.70899575f, 0.70636486f, 0.70372770f, 0.70108437f, 0.69843496f, 0.69577957f, 0.69311830f, 0.69045126f, 0.68777855f, 0.68510026f, 0.68241649f, 0.67972735f, 0.67703295f, 0.67433337f, 0.67162872f, 0.66891911f, 0.66620464f, 0.66348541f, 0.66076151f, 0.65803307f, 0.65530016f, 0.65256291f, 0.64982142f, 0.64707578f, 0.64432610f, 0.64157249f, 0.63881504f, 0.63605387f, 0.63328907f, 0.63052076f, 0.62774903f, 0.62497399f, 0.62219574f, 0.61941439f, 0.61663005f, 0.61384282f, 0.61105280f, 0.60826010f, 0.60546483f, 0.60266708f, 0.59986697f, 0.59706461f, 0.59426009f, 0.59145352f, 0.58864502f, 0.58583468f, 0.58302261f, 0.58020891f, 0.57739370f, 0.57457708f, 0.57175916f, 0.56894003f, 0.56611982f, 0.56329862f, 0.56047654f, 0.55765369f, 0.55483017f, 0.55200609f, 0.54918156f, 0.54635669f, 0.54353157f, 0.54070632f, 0.53788104f, 0.53505585f, 0.53223084f, 0.52940612f, 0.52658181f, 0.52375800f, 0.52093480f, 0.51811232f, 0.51529067f, 0.51246994f, 0.50965026f, 0.50683172f, 0.50401444f, 0.50119851f, 0.49838404f, 0.49557115f, 0.49275993f, 0.48995049f, 0.48714294f, 0.48433739f, 0.48153393f, 0.47873268f, 0.47593374f, 0.47313722f, 0.47034322f, 0.46755185f, 0.46476321f, 0.46197741f, 0.45919455f, 0.45641474f, 0.45363809f, 0.45086469f, 0.44809465f, 0.44532808f, 0.44256509f, 0.43980576f, 0.43705022f, 0.43429856f, 0.43155089f, 0.42880731f, 0.42606792f, 0.42333283f, 0.42060215f, 0.41787596f, 0.41515439f, 0.41243752f, 0.40972547f, 0.40701833f, 0.40431620f, 0.40161920f, 0.39892741f, 0.39624095f, 0.39355991f, 0.39088439f, 0.38821450f, 0.38555034f, 0.38289200f, 0.38023958f, 0.37759320f, 0.37495294f, 0.37231891f, 0.36969120f, 0.36706991f, 0.36445515f, 0.36184702f, 0.35924560f, 0.35665100f, 0.35406332f, 0.35148265f, 0.34890909f, 0.34634275f, 0.34378370f, 0.34123206f, 0.33868792f, 0.33615137f, 0.33362251f, 0.33110144f, 0.32858825f, 0.32608303f, 0.32358588f, 0.32109689f, 0.31861617f, 0.31614379f, 0.31367986f, 0.31122447f, 0.30877770f, 0.30633966f, 0.30391043f, 0.30149011f, 0.29907879f, 0.29667656f, 0.29428350f, 0.29189971f, 0.28952528f, 0.28716030f, 0.28480486f, 0.28245905f, 0.28012295f, 0.27779665f, 0.27548025f, 0.27317382f, 0.27087746f, 0.26859125f, 0.26631528f, 0.26404964f, 0.26179440f, 0.25954966f, 0.25731549f, 0.25509200f, 0.25287925f, 0.25067733f, 0.24848632f, 0.24630631f, 0.24413738f, 0.24197961f, 0.23983308f, 0.23769788f, 0.23557408f, 0.23346177f, 0.23136101f, 0.22927190f, 0.22719452f, 0.22512893f, 0.22307522f, 0.22103346f, 0.21900374f, 0.21698613f, 0.21498070f, 0.21298753f, 0.21100670f, 0.20903828f, 0.20708234f, 0.20513897f, 0.20320822f, 0.20129018f, 0.19938492f, 0.19749250f, 0.19561301f, 0.19374650f, 0.19189306f, 0.19005275f, 0.18822565f, 0.18641181f, 0.18461131f, 0.18282422f, 0.18105060f, 0.17929052f, 0.17754405f, 0.17581125f, 0.17409219f, 0.17238693f, 0.17069554f, 0.16901808f, 0.16735462f, 0.16570521f, 0.16406992f, 0.16244882f, 0.16084195f, 0.15924939f, 0.15767120f, 0.15610742f, 0.15455813f, 0.15302337f, 0.15150322f, 0.14999772f, 0.14850693f, 0.14703091f, 0.14556972f, 0.14412340f, 0.14269202f, 0.14127562f, 0.13987427f, 0.13848801f, 0.13711690f, 0.13576098f, 0.13442031f, 0.13309495f, 0.13178493f, 0.13049031f, 0.12921114f, 0.12794747f, 0.12669934f, 0.12546680f, 0.12424990f, 0.12304868f, 0.12186319f, 0.12069348f, 0.11953958f, 0.11840154f, 0.11727941f, 0.11617322f, 0.11508302f, 0.11400885f, 0.11295075f, 0.11190876f, 0.11088292f, 0.10987326f, 0.10887984f, 0.10790267f, 0.10694181f, 0.10599728f, 0.10506912f, 0.10415737f, 0.10326206f, 0.10238323f, 0.10152090f, 0.10067512f, 0.09984591f, 0.09903330f, 0.09823733f, 0.09745802f, 0.09669540f, 0.09594951f, 0.09522037f, 0.09450801f, 0.09381245f, 0.09313373f, 0.09247186f, 0.09182687f, 0.09119879f, 0.09058764f, 0.08999345f, 0.08941623f, 0.08885600f, 0.08831280f, 0.08778663f, 0.08727753f, 0.08678550f, 0.08631057f, 0.08585275f, 0.08541206f, 0.08498853f, 0.08458215f, 0.08419296f, 0.08382096f, 0.08346617f, 0.08312860f, 0.08280827f, 0.08250518f, 0.08221935f, 0.08195079f, 0.08169951f, 0.08146552f, 0.08124883f, 0.08104944f, 0.08086736f, 0.08070260f, 0.08055517f, 0.08042507f, 0.08031231f, 0.08021689f, 0.08013881f, 0.08007808f, 0.08003470f, 0.08000868f, 0.08000000f}; +const float win_hamming_2048[] = {0.08000000f, 0.08000217f, 0.08000867f, 0.08001950f, 0.08003467f, 0.08005417f, 0.08007801f, 0.08010618f, 0.08013868f, 0.08017551f, 0.08021668f, 0.08026218f, 0.08031201f, 0.08036617f, 0.08042466f, 0.08048748f, 0.08055463f, 0.08062611f, 0.08070192f, 0.08078205f, 0.08086651f, 0.08095530f, 0.08104841f, 0.08114585f, 0.08124761f, 0.08135369f, 0.08146409f, 0.08157881f, 0.08169786f, 0.08182121f, 0.08194889f, 0.08208088f, 0.08221719f, 0.08235781f, 0.08250274f, 0.08265198f, 0.08280553f, 0.08296339f, 0.08312555f, 0.08329202f, 0.08346279f, 0.08363786f, 0.08381724f, 0.08400090f, 0.08418887f, 0.08438113f, 0.08457769f, 0.08477853f, 0.08498366f, 0.08519308f, 0.08540679f, 0.08562478f, 0.08584704f, 0.08607359f, 0.08630442f, 0.08653952f, 0.08677889f, 0.08702253f, 0.08727044f, 0.08752261f, 0.08777905f, 0.08803975f, 0.08830470f, 0.08857392f, 0.08884738f, 0.08912510f, 0.08940706f, 0.08969327f, 0.08998372f, 0.09027841f, 0.09057734f, 0.09088050f, 0.09118790f, 0.09149952f, 0.09181537f, 0.09213544f, 0.09245973f, 0.09278824f, 0.09312096f, 0.09345789f, 0.09379903f, 0.09414437f, 0.09449391f, 0.09484765f, 0.09520559f, 0.09556771f, 0.09593402f, 0.09630452f, 0.09667920f, 0.09705805f, 0.09744107f, 0.09782827f, 0.09821963f, 0.09861515f, 0.09901484f, 0.09941867f, 0.09982666f, 0.10023880f, 0.10065508f, 0.10107549f, 0.10150005f, 0.10192873f, 0.10236154f, 0.10279848f, 0.10323953f, 0.10368470f, 0.10413398f, 0.10458737f, 0.10504486f, 0.10550644f, 0.10597213f, 0.10644189f, 0.10691575f, 0.10739368f, 0.10787569f, 0.10836178f, 0.10885193f, 0.10934614f, 0.10984440f, 0.11034673f, 0.11085309f, 0.11136351f, 0.11187796f, 0.11239644f, 0.11291895f, 0.11344549f, 0.11397605f, 0.11451062f, 0.11504919f, 0.11559178f, 0.11613836f, 0.11668893f, 0.11724349f, 0.11780204f, 0.11836456f, 0.11893106f, 0.11950152f, 0.12007594f, 0.12065432f, 0.12123665f, 0.12182293f, 0.12241315f, 0.12300730f, 0.12360538f, 0.12420738f, 0.12481330f, 0.12542313f, 0.12603687f, 0.12665451f, 0.12727604f, 0.12790146f, 0.12853077f, 0.12916395f, 0.12980100f, 0.13044192f, 0.13108669f, 0.13173532f, 0.13238779f, 0.13304410f, 0.13370425f, 0.13436823f, 0.13503603f, 0.13570764f, 0.13638306f, 0.13706229f, 0.13774531f, 0.13843212f, 0.13912271f, 0.13981709f, 0.14051523f, 0.14121713f, 0.14192280f, 0.14263221f, 0.14334537f, 0.14406226f, 0.14478289f, 0.14550723f, 0.14623530f, 0.14696707f, 0.14770255f, 0.14844173f, 0.14918459f, 0.14993113f, 0.15068135f, 0.15143524f, 0.15219279f, 0.15295399f, 0.15371884f, 0.15448733f, 0.15525945f, 0.15603520f, 0.15681456f, 0.15759754f, 0.15838411f, 0.15917428f, 0.15996804f, 0.16076538f, 0.16156630f, 0.16237078f, 0.16317881f, 0.16399040f, 0.16480553f, 0.16562419f, 0.16644638f, 0.16727209f, 0.16810132f, 0.16893404f, 0.16977027f, 0.17060998f, 0.17145317f, 0.17229983f, 0.17314996f, 0.17400354f, 0.17486058f, 0.17572105f, 0.17658495f, 0.17745228f, 0.17832302f, 0.17919718f, 0.18007473f, 0.18095567f, 0.18183999f, 0.18272769f, 0.18361876f, 0.18451318f, 0.18541095f, 0.18631207f, 0.18721651f, 0.18812428f, 0.18903537f, 0.18994976f, 0.19086745f, 0.19178843f, 0.19271268f, 0.19364022f, 0.19457101f, 0.19550506f, 0.19644235f, 0.19738288f, 0.19832664f, 0.19927362f, 0.20022381f, 0.20117720f, 0.20213378f, 0.20309355f, 0.20405649f, 0.20502259f, 0.20599185f, 0.20696426f, 0.20793981f, 0.20891848f, 0.20990027f, 0.21088518f, 0.21187318f, 0.21286428f, 0.21385845f, 0.21485570f, 0.21585602f, 0.21685939f, 0.21786580f, 0.21887525f, 0.21988772f, 0.22090321f, 0.22192170f, 0.22294319f, 0.22396767f, 0.22499513f, 0.22602555f, 0.22705894f, 0.22809527f, 0.22913454f, 0.23017674f, 0.23122185f, 0.23226988f, 0.23332081f, 0.23437462f, 0.23543132f, 0.23649088f, 0.23755330f, 0.23861858f, 0.23968669f, 0.24075763f, 0.24183139f, 0.24290797f, 0.24398734f, 0.24506949f, 0.24615443f, 0.24724214f, 0.24833260f, 0.24942581f, 0.25052176f, 0.25162044f, 0.25272184f, 0.25382594f, 0.25493273f, 0.25604222f, 0.25715437f, 0.25826920f, 0.25938668f, 0.26050680f, 0.26162955f, 0.26275493f, 0.26388292f, 0.26501351f, 0.26614669f, 0.26728245f, 0.26842078f, 0.26956167f, 0.27070511f, 0.27185109f, 0.27299959f, 0.27415060f, 0.27530413f, 0.27646014f, 0.27761864f, 0.27877961f, 0.27994304f, 0.28110892f, 0.28227724f, 0.28344799f, 0.28462116f, 0.28579673f, 0.28697470f, 0.28815505f, 0.28933777f, 0.29052286f, 0.29171030f, 0.29290007f, 0.29409217f, 0.29528659f, 0.29648332f, 0.29768234f, 0.29888364f, 0.30008722f, 0.30129305f, 0.30250114f, 0.30371146f, 0.30492401f, 0.30613877f, 0.30735574f, 0.30857489f, 0.30979623f, 0.31101974f, 0.31224540f, 0.31347321f, 0.31470316f, 0.31593523f, 0.31716941f, 0.31840568f, 0.31964405f, 0.32088449f, 0.32212700f, 0.32337156f, 0.32461815f, 0.32586678f, 0.32711743f, 0.32837008f, 0.32962473f, 0.33088136f, 0.33213996f, 0.33340051f, 0.33466302f, 0.33592745f, 0.33719381f, 0.33846208f, 0.33973225f, 0.34100431f, 0.34227824f, 0.34355404f, 0.34483168f, 0.34611117f, 0.34739248f, 0.34867560f, 0.34996053f, 0.35124725f, 0.35253575f, 0.35382601f, 0.35511803f, 0.35641179f, 0.35770728f, 0.35900448f, 0.36030339f, 0.36160400f, 0.36290629f, 0.36421024f, 0.36551585f, 0.36682310f, 0.36813199f, 0.36944249f, 0.37075461f, 0.37206831f, 0.37338360f, 0.37470046f, 0.37601887f, 0.37733884f, 0.37866033f, 0.37998334f, 0.38130786f, 0.38263388f, 0.38396138f, 0.38529035f, 0.38662077f, 0.38795264f, 0.38928595f, 0.39062067f, 0.39195680f, 0.39329433f, 0.39463324f, 0.39597352f, 0.39731515f, 0.39865813f, 0.40000244f, 0.40134807f, 0.40269501f, 0.40404324f, 0.40539275f, 0.40674353f, 0.40809556f, 0.40944884f, 0.41080335f, 0.41215907f, 0.41351600f, 0.41487412f, 0.41623342f, 0.41759389f, 0.41895550f, 0.42031826f, 0.42168215f, 0.42304715f, 0.42441326f, 0.42578045f, 0.42714872f, 0.42851805f, 0.42988843f, 0.43125985f, 0.43263229f, 0.43400575f, 0.43538020f, 0.43675564f, 0.43813206f, 0.43950943f, 0.44088775f, 0.44226700f, 0.44364718f, 0.44502826f, 0.44641023f, 0.44779309f, 0.44917682f, 0.45056140f, 0.45194683f, 0.45333308f, 0.45472015f, 0.45610803f, 0.45749669f, 0.45888614f, 0.46027634f, 0.46166730f, 0.46305900f, 0.46445142f, 0.46584455f, 0.46723838f, 0.46863290f, 0.47002809f, 0.47142394f, 0.47282043f, 0.47421756f, 0.47561531f, 0.47701366f, 0.47841261f, 0.47981213f, 0.48121223f, 0.48261288f, 0.48401407f, 0.48541578f, 0.48681801f, 0.48822075f, 0.48962397f, 0.49102766f, 0.49243182f, 0.49383642f, 0.49524146f, 0.49664692f, 0.49805279f, 0.49945905f, 0.50086570f, 0.50227272f, 0.50368009f, 0.50508780f, 0.50649584f, 0.50790420f, 0.50931286f, 0.51072181f, 0.51213103f, 0.51354052f, 0.51495025f, 0.51636023f, 0.51777042f, 0.51918083f, 0.52059143f, 0.52200221f, 0.52341316f, 0.52482427f, 0.52623553f, 0.52764691f, 0.52905841f, 0.53047001f, 0.53188170f, 0.53329347f, 0.53470530f, 0.53611718f, 0.53752910f, 0.53894104f, 0.54035299f, 0.54176494f, 0.54317687f, 0.54458877f, 0.54600062f, 0.54741243f, 0.54882416f, 0.55023581f, 0.55164736f, 0.55305880f, 0.55447012f, 0.55588130f, 0.55729233f, 0.55870320f, 0.56011390f, 0.56152440f, 0.56293470f, 0.56434479f, 0.56575465f, 0.56716426f, 0.56857362f, 0.56998270f, 0.57139151f, 0.57280002f, 0.57420822f, 0.57561610f, 0.57702364f, 0.57843084f, 0.57983767f, 0.58124413f, 0.58265020f, 0.58405586f, 0.58546111f, 0.58686594f, 0.58827032f, 0.58967424f, 0.59107770f, 0.59248068f, 0.59388316f, 0.59528514f, 0.59668659f, 0.59808751f, 0.59948789f, 0.60088770f, 0.60228694f, 0.60368559f, 0.60508364f, 0.60648108f, 0.60787790f, 0.60927407f, 0.61066959f, 0.61206444f, 0.61345862f, 0.61485210f, 0.61624488f, 0.61763694f, 0.61902827f, 0.62041886f, 0.62180868f, 0.62319774f, 0.62458601f, 0.62597348f, 0.62736015f, 0.62874599f, 0.63013100f, 0.63151515f, 0.63289845f, 0.63428087f, 0.63566240f, 0.63704303f, 0.63842274f, 0.63980153f, 0.64117938f, 0.64255627f, 0.64393220f, 0.64530715f, 0.64668110f, 0.64805405f, 0.64942599f, 0.65079689f, 0.65216675f, 0.65353555f, 0.65490328f, 0.65626993f, 0.65763549f, 0.65899993f, 0.66036326f, 0.66172545f, 0.66308649f, 0.66444638f, 0.66580509f, 0.66716261f, 0.66851894f, 0.66987406f, 0.67122795f, 0.67258061f, 0.67393202f, 0.67528217f, 0.67663104f, 0.67797862f, 0.67932491f, 0.68066988f, 0.68201353f, 0.68335583f, 0.68469679f, 0.68603639f, 0.68737461f, 0.68871144f, 0.69004687f, 0.69138088f, 0.69271347f, 0.69404462f, 0.69537432f, 0.69670256f, 0.69802932f, 0.69935459f, 0.70067835f, 0.70200061f, 0.70332134f, 0.70464053f, 0.70595817f, 0.70727424f, 0.70858874f, 0.70990165f, 0.71121296f, 0.71252266f, 0.71383073f, 0.71513716f, 0.71644195f, 0.71774507f, 0.71904651f, 0.72034627f, 0.72164433f, 0.72294068f, 0.72423531f, 0.72552820f, 0.72681934f, 0.72810872f, 0.72939633f, 0.73068216f, 0.73196618f, 0.73324840f, 0.73452880f, 0.73580737f, 0.73708409f, 0.73835896f, 0.73963195f, 0.74090307f, 0.74217229f, 0.74343961f, 0.74470501f, 0.74596848f, 0.74723001f, 0.74848959f, 0.74974720f, 0.75100284f, 0.75225649f, 0.75350814f, 0.75475778f, 0.75600540f, 0.75725098f, 0.75849451f, 0.75973599f, 0.76097539f, 0.76221272f, 0.76344795f, 0.76468107f, 0.76591208f, 0.76714096f, 0.76836770f, 0.76959228f, 0.77081471f, 0.77203496f, 0.77325302f, 0.77446889f, 0.77568254f, 0.77689398f, 0.77810319f, 0.77931015f, 0.78051485f, 0.78171729f, 0.78291746f, 0.78411533f, 0.78531091f, 0.78650417f, 0.78769511f, 0.78888372f, 0.79006998f, 0.79125388f, 0.79243542f, 0.79361458f, 0.79479136f, 0.79596573f, 0.79713768f, 0.79830722f, 0.79947432f, 0.80063898f, 0.80180118f, 0.80296092f, 0.80411818f, 0.80527295f, 0.80642522f, 0.80757498f, 0.80872222f, 0.80986693f, 0.81100909f, 0.81214870f, 0.81328575f, 0.81442022f, 0.81555211f, 0.81668140f, 0.81780809f, 0.81893215f, 0.82005359f, 0.82117239f, 0.82228855f, 0.82340204f, 0.82451286f, 0.82562100f, 0.82672645f, 0.82782920f, 0.82892924f, 0.83002655f, 0.83112113f, 0.83221297f, 0.83330206f, 0.83438838f, 0.83547193f, 0.83655270f, 0.83763067f, 0.83870584f, 0.83977819f, 0.84084772f, 0.84191441f, 0.84297826f, 0.84403926f, 0.84509739f, 0.84615265f, 0.84720502f, 0.84825450f, 0.84930107f, 0.85034473f, 0.85138546f, 0.85242327f, 0.85345812f, 0.85449003f, 0.85551897f, 0.85654494f, 0.85756793f, 0.85858792f, 0.85960491f, 0.86061890f, 0.86162986f, 0.86263779f, 0.86364268f, 0.86464452f, 0.86564330f, 0.86663902f, 0.86763166f, 0.86862121f, 0.86960766f, 0.87059101f, 0.87157125f, 0.87254836f, 0.87352234f, 0.87449317f, 0.87546085f, 0.87642538f, 0.87738673f, 0.87834491f, 0.87929989f, 0.88025168f, 0.88120027f, 0.88214564f, 0.88308779f, 0.88402670f, 0.88496237f, 0.88589479f, 0.88682396f, 0.88774985f, 0.88867247f, 0.88959181f, 0.89050785f, 0.89142059f, 0.89233002f, 0.89323613f, 0.89413891f, 0.89503835f, 0.89593445f, 0.89682719f, 0.89771658f, 0.89860259f, 0.89948522f, 0.90036447f, 0.90124032f, 0.90211277f, 0.90298181f, 0.90384743f, 0.90470962f, 0.90556837f, 0.90642368f, 0.90727554f, 0.90812393f, 0.90896886f, 0.90981031f, 0.91064828f, 0.91148276f, 0.91231373f, 0.91314120f, 0.91396515f, 0.91478558f, 0.91560248f, 0.91641584f, 0.91722565f, 0.91803191f, 0.91883461f, 0.91963373f, 0.92042928f, 0.92122125f, 0.92200963f, 0.92279440f, 0.92357557f, 0.92435313f, 0.92512706f, 0.92589737f, 0.92666404f, 0.92742706f, 0.92818644f, 0.92894216f, 0.92969422f, 0.93044260f, 0.93118730f, 0.93192832f, 0.93266565f, 0.93339928f, 0.93412920f, 0.93485540f, 0.93557789f, 0.93629665f, 0.93701168f, 0.93772297f, 0.93843050f, 0.93913429f, 0.93983431f, 0.94053057f, 0.94122306f, 0.94191176f, 0.94259668f, 0.94327780f, 0.94395512f, 0.94462864f, 0.94529835f, 0.94596424f, 0.94662630f, 0.94728453f, 0.94793893f, 0.94858948f, 0.94923618f, 0.94987903f, 0.95051801f, 0.95115313f, 0.95178437f, 0.95241173f, 0.95303521f, 0.95365480f, 0.95427048f, 0.95488227f, 0.95549015f, 0.95609411f, 0.95669415f, 0.95729027f, 0.95788245f, 0.95847070f, 0.95905501f, 0.95963536f, 0.96021177f, 0.96078421f, 0.96135269f, 0.96191720f, 0.96247773f, 0.96303429f, 0.96358686f, 0.96413543f, 0.96468002f, 0.96522060f, 0.96575717f, 0.96628973f, 0.96681828f, 0.96734281f, 0.96786330f, 0.96837977f, 0.96889220f, 0.96940060f, 0.96990494f, 0.97040524f, 0.97090148f, 0.97139366f, 0.97188177f, 0.97236582f, 0.97284579f, 0.97332169f, 0.97379350f, 0.97426123f, 0.97472486f, 0.97518440f, 0.97563984f, 0.97609117f, 0.97653840f, 0.97698151f, 0.97742050f, 0.97785538f, 0.97828613f, 0.97871275f, 0.97913523f, 0.97955358f, 0.97996779f, 0.98037785f, 0.98078376f, 0.98118552f, 0.98158313f, 0.98197657f, 0.98236585f, 0.98275096f, 0.98313190f, 0.98350867f, 0.98388125f, 0.98424966f, 0.98461387f, 0.98497390f, 0.98532974f, 0.98568138f, 0.98602883f, 0.98637207f, 0.98671110f, 0.98704593f, 0.98737654f, 0.98770294f, 0.98802512f, 0.98834308f, 0.98865682f, 0.98896633f, 0.98927161f, 0.98957265f, 0.98986946f, 0.99016203f, 0.99045037f, 0.99073445f, 0.99101429f, 0.99128988f, 0.99156122f, 0.99182831f, 0.99209113f, 0.99234970f, 0.99260401f, 0.99285405f, 0.99309983f, 0.99334133f, 0.99357857f, 0.99381153f, 0.99404022f, 0.99426463f, 0.99448475f, 0.99470060f, 0.99491216f, 0.99511944f, 0.99532243f, 0.99552113f, 0.99571554f, 0.99590565f, 0.99609147f, 0.99627299f, 0.99645021f, 0.99662313f, 0.99679175f, 0.99695607f, 0.99711608f, 0.99727178f, 0.99742318f, 0.99757027f, 0.99771304f, 0.99785150f, 0.99798565f, 0.99811549f, 0.99824100f, 0.99836221f, 0.99847909f, 0.99859165f, 0.99869989f, 0.99880381f, 0.99890341f, 0.99899868f, 0.99908963f, 0.99917626f, 0.99925856f, 0.99933653f, 0.99941017f, 0.99947948f, 0.99954447f, 0.99960513f, 0.99966145f, 0.99971345f, 0.99976111f, 0.99980445f, 0.99984345f, 0.99987811f, 0.99990845f, 0.99993445f, 0.99995612f, 0.99997345f, 0.99998646f, 0.99999512f, 0.99999946f, 0.99999946f, 0.99999512f, 0.99998646f, 0.99997345f, 0.99995612f, 0.99993445f, 0.99990845f, 0.99987811f, 0.99984345f, 0.99980445f, 0.99976111f, 0.99971345f, 0.99966145f, 0.99960513f, 0.99954447f, 0.99947948f, 0.99941017f, 0.99933653f, 0.99925856f, 0.99917626f, 0.99908963f, 0.99899868f, 0.99890341f, 0.99880381f, 0.99869989f, 0.99859165f, 0.99847909f, 0.99836221f, 0.99824100f, 0.99811549f, 0.99798565f, 0.99785150f, 0.99771304f, 0.99757027f, 0.99742318f, 0.99727178f, 0.99711608f, 0.99695607f, 0.99679175f, 0.99662313f, 0.99645021f, 0.99627299f, 0.99609147f, 0.99590565f, 0.99571554f, 0.99552113f, 0.99532243f, 0.99511944f, 0.99491216f, 0.99470060f, 0.99448475f, 0.99426463f, 0.99404022f, 0.99381153f, 0.99357857f, 0.99334133f, 0.99309983f, 0.99285405f, 0.99260401f, 0.99234970f, 0.99209113f, 0.99182831f, 0.99156122f, 0.99128988f, 0.99101429f, 0.99073445f, 0.99045037f, 0.99016203f, 0.98986946f, 0.98957265f, 0.98927161f, 0.98896633f, 0.98865682f, 0.98834308f, 0.98802512f, 0.98770294f, 0.98737654f, 0.98704593f, 0.98671110f, 0.98637207f, 0.98602883f, 0.98568138f, 0.98532974f, 0.98497390f, 0.98461387f, 0.98424966f, 0.98388125f, 0.98350867f, 0.98313190f, 0.98275096f, 0.98236585f, 0.98197657f, 0.98158313f, 0.98118552f, 0.98078376f, 0.98037785f, 0.97996779f, 0.97955358f, 0.97913523f, 0.97871275f, 0.97828613f, 0.97785538f, 0.97742050f, 0.97698151f, 0.97653840f, 0.97609117f, 0.97563984f, 0.97518440f, 0.97472486f, 0.97426123f, 0.97379350f, 0.97332169f, 0.97284579f, 0.97236582f, 0.97188177f, 0.97139366f, 0.97090148f, 0.97040524f, 0.96990494f, 0.96940060f, 0.96889220f, 0.96837977f, 0.96786330f, 0.96734281f, 0.96681828f, 0.96628973f, 0.96575717f, 0.96522060f, 0.96468002f, 0.96413543f, 0.96358686f, 0.96303429f, 0.96247773f, 0.96191720f, 0.96135269f, 0.96078421f, 0.96021177f, 0.95963536f, 0.95905501f, 0.95847070f, 0.95788245f, 0.95729027f, 0.95669415f, 0.95609411f, 0.95549015f, 0.95488227f, 0.95427048f, 0.95365480f, 0.95303521f, 0.95241173f, 0.95178437f, 0.95115313f, 0.95051801f, 0.94987903f, 0.94923618f, 0.94858948f, 0.94793893f, 0.94728453f, 0.94662630f, 0.94596424f, 0.94529835f, 0.94462864f, 0.94395512f, 0.94327780f, 0.94259668f, 0.94191176f, 0.94122306f, 0.94053057f, 0.93983431f, 0.93913429f, 0.93843050f, 0.93772297f, 0.93701168f, 0.93629665f, 0.93557789f, 0.93485540f, 0.93412920f, 0.93339928f, 0.93266565f, 0.93192832f, 0.93118730f, 0.93044260f, 0.92969422f, 0.92894216f, 0.92818644f, 0.92742706f, 0.92666404f, 0.92589737f, 0.92512706f, 0.92435313f, 0.92357557f, 0.92279440f, 0.92200963f, 0.92122125f, 0.92042928f, 0.91963373f, 0.91883461f, 0.91803191f, 0.91722565f, 0.91641584f, 0.91560248f, 0.91478558f, 0.91396515f, 0.91314120f, 0.91231373f, 0.91148276f, 0.91064828f, 0.90981031f, 0.90896886f, 0.90812393f, 0.90727554f, 0.90642368f, 0.90556837f, 0.90470962f, 0.90384743f, 0.90298181f, 0.90211277f, 0.90124032f, 0.90036447f, 0.89948522f, 0.89860259f, 0.89771658f, 0.89682719f, 0.89593445f, 0.89503835f, 0.89413891f, 0.89323613f, 0.89233002f, 0.89142059f, 0.89050785f, 0.88959181f, 0.88867247f, 0.88774985f, 0.88682396f, 0.88589479f, 0.88496237f, 0.88402670f, 0.88308779f, 0.88214564f, 0.88120027f, 0.88025168f, 0.87929989f, 0.87834491f, 0.87738673f, 0.87642538f, 0.87546085f, 0.87449317f, 0.87352234f, 0.87254836f, 0.87157125f, 0.87059101f, 0.86960766f, 0.86862121f, 0.86763166f, 0.86663902f, 0.86564330f, 0.86464452f, 0.86364268f, 0.86263779f, 0.86162986f, 0.86061890f, 0.85960491f, 0.85858792f, 0.85756793f, 0.85654494f, 0.85551897f, 0.85449003f, 0.85345812f, 0.85242327f, 0.85138546f, 0.85034473f, 0.84930107f, 0.84825450f, 0.84720502f, 0.84615265f, 0.84509739f, 0.84403926f, 0.84297826f, 0.84191441f, 0.84084772f, 0.83977819f, 0.83870584f, 0.83763067f, 0.83655270f, 0.83547193f, 0.83438838f, 0.83330206f, 0.83221297f, 0.83112113f, 0.83002655f, 0.82892924f, 0.82782920f, 0.82672645f, 0.82562100f, 0.82451286f, 0.82340204f, 0.82228855f, 0.82117239f, 0.82005359f, 0.81893215f, 0.81780809f, 0.81668140f, 0.81555211f, 0.81442022f, 0.81328575f, 0.81214870f, 0.81100909f, 0.80986693f, 0.80872222f, 0.80757498f, 0.80642522f, 0.80527295f, 0.80411818f, 0.80296092f, 0.80180118f, 0.80063898f, 0.79947432f, 0.79830722f, 0.79713768f, 0.79596573f, 0.79479136f, 0.79361458f, 0.79243542f, 0.79125388f, 0.79006998f, 0.78888372f, 0.78769511f, 0.78650417f, 0.78531091f, 0.78411533f, 0.78291746f, 0.78171729f, 0.78051485f, 0.77931015f, 0.77810319f, 0.77689398f, 0.77568254f, 0.77446889f, 0.77325302f, 0.77203496f, 0.77081471f, 0.76959228f, 0.76836770f, 0.76714096f, 0.76591208f, 0.76468107f, 0.76344795f, 0.76221272f, 0.76097539f, 0.75973599f, 0.75849451f, 0.75725098f, 0.75600540f, 0.75475778f, 0.75350814f, 0.75225649f, 0.75100284f, 0.74974720f, 0.74848959f, 0.74723001f, 0.74596848f, 0.74470501f, 0.74343961f, 0.74217229f, 0.74090307f, 0.73963195f, 0.73835896f, 0.73708409f, 0.73580737f, 0.73452880f, 0.73324840f, 0.73196618f, 0.73068216f, 0.72939633f, 0.72810872f, 0.72681934f, 0.72552820f, 0.72423531f, 0.72294068f, 0.72164433f, 0.72034627f, 0.71904651f, 0.71774507f, 0.71644195f, 0.71513716f, 0.71383073f, 0.71252266f, 0.71121296f, 0.70990165f, 0.70858874f, 0.70727424f, 0.70595817f, 0.70464053f, 0.70332134f, 0.70200061f, 0.70067835f, 0.69935459f, 0.69802932f, 0.69670256f, 0.69537432f, 0.69404462f, 0.69271347f, 0.69138088f, 0.69004687f, 0.68871144f, 0.68737461f, 0.68603639f, 0.68469679f, 0.68335583f, 0.68201353f, 0.68066988f, 0.67932491f, 0.67797862f, 0.67663104f, 0.67528217f, 0.67393202f, 0.67258061f, 0.67122795f, 0.66987406f, 0.66851894f, 0.66716261f, 0.66580509f, 0.66444638f, 0.66308649f, 0.66172545f, 0.66036326f, 0.65899993f, 0.65763549f, 0.65626993f, 0.65490328f, 0.65353555f, 0.65216675f, 0.65079689f, 0.64942599f, 0.64805405f, 0.64668110f, 0.64530715f, 0.64393220f, 0.64255627f, 0.64117938f, 0.63980153f, 0.63842274f, 0.63704303f, 0.63566240f, 0.63428087f, 0.63289845f, 0.63151515f, 0.63013100f, 0.62874599f, 0.62736015f, 0.62597348f, 0.62458601f, 0.62319774f, 0.62180868f, 0.62041886f, 0.61902827f, 0.61763694f, 0.61624488f, 0.61485210f, 0.61345862f, 0.61206444f, 0.61066959f, 0.60927407f, 0.60787790f, 0.60648108f, 0.60508364f, 0.60368559f, 0.60228694f, 0.60088770f, 0.59948789f, 0.59808751f, 0.59668659f, 0.59528514f, 0.59388316f, 0.59248068f, 0.59107770f, 0.58967424f, 0.58827032f, 0.58686594f, 0.58546111f, 0.58405586f, 0.58265020f, 0.58124413f, 0.57983767f, 0.57843084f, 0.57702364f, 0.57561610f, 0.57420822f, 0.57280002f, 0.57139151f, 0.56998270f, 0.56857362f, 0.56716426f, 0.56575465f, 0.56434479f, 0.56293470f, 0.56152440f, 0.56011390f, 0.55870320f, 0.55729233f, 0.55588130f, 0.55447012f, 0.55305880f, 0.55164736f, 0.55023581f, 0.54882416f, 0.54741243f, 0.54600062f, 0.54458877f, 0.54317687f, 0.54176494f, 0.54035299f, 0.53894104f, 0.53752910f, 0.53611718f, 0.53470530f, 0.53329347f, 0.53188170f, 0.53047001f, 0.52905841f, 0.52764691f, 0.52623553f, 0.52482427f, 0.52341316f, 0.52200221f, 0.52059143f, 0.51918083f, 0.51777042f, 0.51636023f, 0.51495025f, 0.51354052f, 0.51213103f, 0.51072181f, 0.50931286f, 0.50790420f, 0.50649584f, 0.50508780f, 0.50368009f, 0.50227272f, 0.50086570f, 0.49945905f, 0.49805279f, 0.49664692f, 0.49524146f, 0.49383642f, 0.49243182f, 0.49102766f, 0.48962397f, 0.48822075f, 0.48681801f, 0.48541578f, 0.48401407f, 0.48261288f, 0.48121223f, 0.47981213f, 0.47841261f, 0.47701366f, 0.47561531f, 0.47421756f, 0.47282043f, 0.47142394f, 0.47002809f, 0.46863290f, 0.46723838f, 0.46584455f, 0.46445142f, 0.46305900f, 0.46166730f, 0.46027634f, 0.45888614f, 0.45749669f, 0.45610803f, 0.45472015f, 0.45333308f, 0.45194683f, 0.45056140f, 0.44917682f, 0.44779309f, 0.44641023f, 0.44502826f, 0.44364718f, 0.44226700f, 0.44088775f, 0.43950943f, 0.43813206f, 0.43675564f, 0.43538020f, 0.43400575f, 0.43263229f, 0.43125985f, 0.42988843f, 0.42851805f, 0.42714872f, 0.42578045f, 0.42441326f, 0.42304715f, 0.42168215f, 0.42031826f, 0.41895550f, 0.41759389f, 0.41623342f, 0.41487412f, 0.41351600f, 0.41215907f, 0.41080335f, 0.40944884f, 0.40809556f, 0.40674353f, 0.40539275f, 0.40404324f, 0.40269501f, 0.40134807f, 0.40000244f, 0.39865813f, 0.39731515f, 0.39597352f, 0.39463324f, 0.39329433f, 0.39195680f, 0.39062067f, 0.38928595f, 0.38795264f, 0.38662077f, 0.38529035f, 0.38396138f, 0.38263388f, 0.38130786f, 0.37998334f, 0.37866033f, 0.37733884f, 0.37601887f, 0.37470046f, 0.37338360f, 0.37206831f, 0.37075461f, 0.36944249f, 0.36813199f, 0.36682310f, 0.36551585f, 0.36421024f, 0.36290629f, 0.36160400f, 0.36030339f, 0.35900448f, 0.35770728f, 0.35641179f, 0.35511803f, 0.35382601f, 0.35253575f, 0.35124725f, 0.34996053f, 0.34867560f, 0.34739248f, 0.34611117f, 0.34483168f, 0.34355404f, 0.34227824f, 0.34100431f, 0.33973225f, 0.33846208f, 0.33719381f, 0.33592745f, 0.33466302f, 0.33340051f, 0.33213996f, 0.33088136f, 0.32962473f, 0.32837008f, 0.32711743f, 0.32586678f, 0.32461815f, 0.32337156f, 0.32212700f, 0.32088449f, 0.31964405f, 0.31840568f, 0.31716941f, 0.31593523f, 0.31470316f, 0.31347321f, 0.31224540f, 0.31101974f, 0.30979623f, 0.30857489f, 0.30735574f, 0.30613877f, 0.30492401f, 0.30371146f, 0.30250114f, 0.30129305f, 0.30008722f, 0.29888364f, 0.29768234f, 0.29648332f, 0.29528659f, 0.29409217f, 0.29290007f, 0.29171030f, 0.29052286f, 0.28933777f, 0.28815505f, 0.28697470f, 0.28579673f, 0.28462116f, 0.28344799f, 0.28227724f, 0.28110892f, 0.27994304f, 0.27877961f, 0.27761864f, 0.27646014f, 0.27530413f, 0.27415060f, 0.27299959f, 0.27185109f, 0.27070511f, 0.26956167f, 0.26842078f, 0.26728245f, 0.26614669f, 0.26501351f, 0.26388292f, 0.26275493f, 0.26162955f, 0.26050680f, 0.25938668f, 0.25826920f, 0.25715437f, 0.25604222f, 0.25493273f, 0.25382594f, 0.25272184f, 0.25162044f, 0.25052176f, 0.24942581f, 0.24833260f, 0.24724214f, 0.24615443f, 0.24506949f, 0.24398734f, 0.24290797f, 0.24183139f, 0.24075763f, 0.23968669f, 0.23861858f, 0.23755330f, 0.23649088f, 0.23543132f, 0.23437462f, 0.23332081f, 0.23226988f, 0.23122185f, 0.23017674f, 0.22913454f, 0.22809527f, 0.22705894f, 0.22602555f, 0.22499513f, 0.22396767f, 0.22294319f, 0.22192170f, 0.22090321f, 0.21988772f, 0.21887525f, 0.21786580f, 0.21685939f, 0.21585602f, 0.21485570f, 0.21385845f, 0.21286428f, 0.21187318f, 0.21088518f, 0.20990027f, 0.20891848f, 0.20793981f, 0.20696426f, 0.20599185f, 0.20502259f, 0.20405649f, 0.20309355f, 0.20213378f, 0.20117720f, 0.20022381f, 0.19927362f, 0.19832664f, 0.19738288f, 0.19644235f, 0.19550506f, 0.19457101f, 0.19364022f, 0.19271268f, 0.19178843f, 0.19086745f, 0.18994976f, 0.18903537f, 0.18812428f, 0.18721651f, 0.18631207f, 0.18541095f, 0.18451318f, 0.18361876f, 0.18272769f, 0.18183999f, 0.18095567f, 0.18007473f, 0.17919718f, 0.17832302f, 0.17745228f, 0.17658495f, 0.17572105f, 0.17486058f, 0.17400354f, 0.17314996f, 0.17229983f, 0.17145317f, 0.17060998f, 0.16977027f, 0.16893404f, 0.16810132f, 0.16727209f, 0.16644638f, 0.16562419f, 0.16480553f, 0.16399040f, 0.16317881f, 0.16237078f, 0.16156630f, 0.16076538f, 0.15996804f, 0.15917428f, 0.15838411f, 0.15759754f, 0.15681456f, 0.15603520f, 0.15525945f, 0.15448733f, 0.15371884f, 0.15295399f, 0.15219279f, 0.15143524f, 0.15068135f, 0.14993113f, 0.14918459f, 0.14844173f, 0.14770255f, 0.14696707f, 0.14623530f, 0.14550723f, 0.14478289f, 0.14406226f, 0.14334537f, 0.14263221f, 0.14192280f, 0.14121713f, 0.14051523f, 0.13981709f, 0.13912271f, 0.13843212f, 0.13774531f, 0.13706229f, 0.13638306f, 0.13570764f, 0.13503603f, 0.13436823f, 0.13370425f, 0.13304410f, 0.13238779f, 0.13173532f, 0.13108669f, 0.13044192f, 0.12980100f, 0.12916395f, 0.12853077f, 0.12790146f, 0.12727604f, 0.12665451f, 0.12603687f, 0.12542313f, 0.12481330f, 0.12420738f, 0.12360538f, 0.12300730f, 0.12241315f, 0.12182293f, 0.12123665f, 0.12065432f, 0.12007594f, 0.11950152f, 0.11893106f, 0.11836456f, 0.11780204f, 0.11724349f, 0.11668893f, 0.11613836f, 0.11559178f, 0.11504919f, 0.11451062f, 0.11397605f, 0.11344549f, 0.11291895f, 0.11239644f, 0.11187796f, 0.11136351f, 0.11085309f, 0.11034673f, 0.10984440f, 0.10934614f, 0.10885193f, 0.10836178f, 0.10787569f, 0.10739368f, 0.10691575f, 0.10644189f, 0.10597213f, 0.10550644f, 0.10504486f, 0.10458737f, 0.10413398f, 0.10368470f, 0.10323953f, 0.10279848f, 0.10236154f, 0.10192873f, 0.10150005f, 0.10107549f, 0.10065508f, 0.10023880f, 0.09982666f, 0.09941867f, 0.09901484f, 0.09861515f, 0.09821963f, 0.09782827f, 0.09744107f, 0.09705805f, 0.09667920f, 0.09630452f, 0.09593402f, 0.09556771f, 0.09520559f, 0.09484765f, 0.09449391f, 0.09414437f, 0.09379903f, 0.09345789f, 0.09312096f, 0.09278824f, 0.09245973f, 0.09213544f, 0.09181537f, 0.09149952f, 0.09118790f, 0.09088050f, 0.09057734f, 0.09027841f, 0.08998372f, 0.08969327f, 0.08940706f, 0.08912510f, 0.08884738f, 0.08857392f, 0.08830470f, 0.08803975f, 0.08777905f, 0.08752261f, 0.08727044f, 0.08702253f, 0.08677889f, 0.08653952f, 0.08630442f, 0.08607359f, 0.08584704f, 0.08562478f, 0.08540679f, 0.08519308f, 0.08498366f, 0.08477853f, 0.08457769f, 0.08438113f, 0.08418887f, 0.08400090f, 0.08381724f, 0.08363786f, 0.08346279f, 0.08329202f, 0.08312555f, 0.08296339f, 0.08280553f, 0.08265198f, 0.08250274f, 0.08235781f, 0.08221719f, 0.08208088f, 0.08194889f, 0.08182121f, 0.08169786f, 0.08157881f, 0.08146409f, 0.08135369f, 0.08124761f, 0.08114585f, 0.08104841f, 0.08095530f, 0.08086651f, 0.08078205f, 0.08070192f, 0.08062611f, 0.08055463f, 0.08048748f, 0.08042466f, 0.08036617f, 0.08031201f, 0.08026218f, 0.08021668f, 0.08017551f, 0.08013868f, 0.08010618f, 0.08007801f, 0.08005417f, 0.08003467f, 0.08001950f, 0.08000867f, 0.08000217f, 0.08000000f}; +//const float win_hamming_4096[] = {0.08000000f, 0.08000054f, 0.08000217f, 0.08000487f, 0.08000866f, 0.08001354f, 0.08001949f, 0.08002653f, 0.08003465f, 0.08004386f, 0.08005415f, 0.08006552f, 0.08007797f, 0.08009151f, 0.08010613f, 0.08012183f, 0.08013861f, 0.08015648f, 0.08017543f, 0.08019546f, 0.08021657f, 0.08023877f, 0.08026205f, 0.08028641f, 0.08031186f, 0.08033838f, 0.08036599f, 0.08039468f, 0.08042445f, 0.08045531f, 0.08048724f, 0.08052026f, 0.08055436f, 0.08058954f, 0.08062581f, 0.08066315f, 0.08070158f, 0.08074108f, 0.08078167f, 0.08082334f, 0.08086609f, 0.08090992f, 0.08095483f, 0.08100083f, 0.08104790f, 0.08109605f, 0.08114529f, 0.08119560f, 0.08124700f, 0.08129947f, 0.08135303f, 0.08140766f, 0.08146338f, 0.08152017f, 0.08157804f, 0.08163700f, 0.08169703f, 0.08175814f, 0.08182033f, 0.08188359f, 0.08194794f, 0.08201336f, 0.08207987f, 0.08214745f, 0.08221611f, 0.08228584f, 0.08235666f, 0.08242855f, 0.08250152f, 0.08257556f, 0.08265069f, 0.08272689f, 0.08280416f, 0.08288251f, 0.08296194f, 0.08304245f, 0.08312403f, 0.08320668f, 0.08329041f, 0.08337522f, 0.08346110f, 0.08354806f, 0.08363609f, 0.08372519f, 0.08381537f, 0.08390663f, 0.08399895f, 0.08409235f, 0.08418683f, 0.08428238f, 0.08437900f, 0.08447669f, 0.08457545f, 0.08467529f, 0.08477620f, 0.08487818f, 0.08498123f, 0.08508536f, 0.08519055f, 0.08529682f, 0.08540415f, 0.08551256f, 0.08562203f, 0.08573258f, 0.08584419f, 0.08595688f, 0.08607063f, 0.08618545f, 0.08630134f, 0.08641830f, 0.08653633f, 0.08665542f, 0.08677558f, 0.08689681f, 0.08701911f, 0.08714247f, 0.08726690f, 0.08739239f, 0.08751895f, 0.08764657f, 0.08777526f, 0.08790501f, 0.08803583f, 0.08816771f, 0.08830066f, 0.08843467f, 0.08856974f, 0.08870588f, 0.08884307f, 0.08898133f, 0.08912066f, 0.08926104f, 0.08940248f, 0.08954499f, 0.08968855f, 0.08983318f, 0.08997886f, 0.09012561f, 0.09027341f, 0.09042228f, 0.09057220f, 0.09072318f, 0.09087521f, 0.09102831f, 0.09118246f, 0.09133767f, 0.09149393f, 0.09165125f, 0.09180962f, 0.09196906f, 0.09212954f, 0.09229108f, 0.09245367f, 0.09261732f, 0.09278202f, 0.09294778f, 0.09311458f, 0.09328244f, 0.09345135f, 0.09362131f, 0.09379232f, 0.09396439f, 0.09413750f, 0.09431166f, 0.09448687f, 0.09466313f, 0.09484044f, 0.09501880f, 0.09519820f, 0.09537865f, 0.09556015f, 0.09574270f, 0.09592629f, 0.09611092f, 0.09629660f, 0.09648333f, 0.09667110f, 0.09685991f, 0.09704977f, 0.09724067f, 0.09743261f, 0.09762559f, 0.09781962f, 0.09801469f, 0.09821079f, 0.09840794f, 0.09860613f, 0.09880535f, 0.09900562f, 0.09920692f, 0.09940926f, 0.09961264f, 0.09981705f, 0.10002250f, 0.10022899f, 0.10043651f, 0.10064507f, 0.10085466f, 0.10106528f, 0.10127694f, 0.10148963f, 0.10170335f, 0.10191811f, 0.10213390f, 0.10235071f, 0.10256856f, 0.10278744f, 0.10300735f, 0.10322828f, 0.10345025f, 0.10367324f, 0.10389726f, 0.10412230f, 0.10434837f, 0.10457547f, 0.10480359f, 0.10503274f, 0.10526291f, 0.10549411f, 0.10572632f, 0.10595956f, 0.10619382f, 0.10642911f, 0.10666541f, 0.10690274f, 0.10714108f, 0.10738044f, 0.10762082f, 0.10786222f, 0.10810464f, 0.10834807f, 0.10859252f, 0.10883798f, 0.10908446f, 0.10933196f, 0.10958047f, 0.10982999f, 0.11008052f, 0.11033207f, 0.11058463f, 0.11083820f, 0.11109278f, 0.11134837f, 0.11160496f, 0.11186257f, 0.11212119f, 0.11238081f, 0.11264144f, 0.11290307f, 0.11316571f, 0.11342936f, 0.11369401f, 0.11395966f, 0.11422632f, 0.11449398f, 0.11476264f, 0.11503230f, 0.11530296f, 0.11557462f, 0.11584728f, 0.11612094f, 0.11639560f, 0.11667125f, 0.11694791f, 0.11722555f, 0.11750420f, 0.11778383f, 0.11806446f, 0.11834609f, 0.11862871f, 0.11891232f, 0.11919692f, 0.11948251f, 0.11976909f, 0.12005666f, 0.12034522f, 0.12063477f, 0.12092530f, 0.12121682f, 0.12150933f, 0.12180282f, 0.12209730f, 0.12239276f, 0.12268920f, 0.12298663f, 0.12328504f, 0.12358443f, 0.12388480f, 0.12418615f, 0.12448847f, 0.12479178f, 0.12509606f, 0.12540132f, 0.12570756f, 0.12601477f, 0.12632296f, 0.12663212f, 0.12694225f, 0.12725336f, 0.12756544f, 0.12787849f, 0.12819251f, 0.12850749f, 0.12882345f, 0.12914038f, 0.12945827f, 0.12977713f, 0.13009695f, 0.13041774f, 0.13073950f, 0.13106221f, 0.13138589f, 0.13171054f, 0.13203614f, 0.13236270f, 0.13269023f, 0.13301871f, 0.13334815f, 0.13367855f, 0.13400990f, 0.13434221f, 0.13467548f, 0.13500970f, 0.13534487f, 0.13568100f, 0.13601808f, 0.13635610f, 0.13669508f, 0.13703501f, 0.13737589f, 0.13771771f, 0.13806049f, 0.13840421f, 0.13874887f, 0.13909448f, 0.13944103f, 0.13978853f, 0.14013696f, 0.14048634f, 0.14083666f, 0.14118792f, 0.14154012f, 0.14189325f, 0.14224733f, 0.14260234f, 0.14295828f, 0.14331516f, 0.14367298f, 0.14403172f, 0.14439140f, 0.14475201f, 0.14511355f, 0.14547603f, 0.14583943f, 0.14620375f, 0.14656901f, 0.14693519f, 0.14730229f, 0.14767033f, 0.14803928f, 0.14840916f, 0.14877996f, 0.14915168f, 0.14952432f, 0.14989788f, 0.15027235f, 0.15064775f, 0.15102406f, 0.15140129f, 0.15177943f, 0.15215849f, 0.15253846f, 0.15291934f, 0.15330113f, 0.15368384f, 0.15406745f, 0.15445197f, 0.15483740f, 0.15522374f, 0.15561098f, 0.15599913f, 0.15638818f, 0.15677813f, 0.15716899f, 0.15756074f, 0.15795340f, 0.15834696f, 0.15874141f, 0.15913677f, 0.15953302f, 0.15993016f, 0.16032820f, 0.16072714f, 0.16112697f, 0.16152769f, 0.16192930f, 0.16233180f, 0.16273518f, 0.16313946f, 0.16354463f, 0.16395068f, 0.16435761f, 0.16476544f, 0.16517414f, 0.16558373f, 0.16599419f, 0.16640554f, 0.16681777f, 0.16723088f, 0.16764486f, 0.16805972f, 0.16847546f, 0.16889207f, 0.16930955f, 0.16972791f, 0.17014714f, 0.17056724f, 0.17098821f, 0.17141005f, 0.17183276f, 0.17225633f, 0.17268077f, 0.17310607f, 0.17353224f, 0.17395927f, 0.17438716f, 0.17481591f, 0.17524552f, 0.17567600f, 0.17610732f, 0.17653951f, 0.17697255f, 0.17740645f, 0.17784120f, 0.17827680f, 0.17871325f, 0.17915055f, 0.17958871f, 0.18002771f, 0.18046756f, 0.18090826f, 0.18134980f, 0.18179218f, 0.18223541f, 0.18267948f, 0.18312440f, 0.18357015f, 0.18401674f, 0.18446417f, 0.18491244f, 0.18536154f, 0.18581148f, 0.18626225f, 0.18671385f, 0.18716629f, 0.18761956f, 0.18807365f, 0.18852858f, 0.18898433f, 0.18944091f, 0.18989831f, 0.19035654f, 0.19081559f, 0.19127547f, 0.19173616f, 0.19219767f, 0.19266001f, 0.19312316f, 0.19358713f, 0.19405191f, 0.19451751f, 0.19498392f, 0.19545114f, 0.19591917f, 0.19638802f, 0.19685767f, 0.19732813f, 0.19779940f, 0.19827147f, 0.19874435f, 0.19921803f, 0.19969252f, 0.20016780f, 0.20064389f, 0.20112077f, 0.20159845f, 0.20207693f, 0.20255620f, 0.20303627f, 0.20351713f, 0.20399879f, 0.20448123f, 0.20496447f, 0.20544849f, 0.20593330f, 0.20641890f, 0.20690528f, 0.20739245f, 0.20788040f, 0.20836913f, 0.20885864f, 0.20934894f, 0.20984001f, 0.21033185f, 0.21082448f, 0.21131788f, 0.21181205f, 0.21230700f, 0.21280271f, 0.21329920f, 0.21379646f, 0.21429448f, 0.21479327f, 0.21529283f, 0.21579315f, 0.21629423f, 0.21679608f, 0.21729869f, 0.21780205f, 0.21830618f, 0.21881106f, 0.21931670f, 0.21982310f, 0.22033024f, 0.22083815f, 0.22134680f, 0.22185620f, 0.22236635f, 0.22287725f, 0.22338889f, 0.22390129f, 0.22441442f, 0.22492830f, 0.22544292f, 0.22595828f, 0.22647438f, 0.22699122f, 0.22750879f, 0.22802710f, 0.22854615f, 0.22906592f, 0.22958643f, 0.23010767f, 0.23062964f, 0.23115234f, 0.23167577f, 0.23219992f, 0.23272480f, 0.23325040f, 0.23377672f, 0.23430376f, 0.23483152f, 0.23536001f, 0.23588920f, 0.23641912f, 0.23694975f, 0.23748109f, 0.23801314f, 0.23854591f, 0.23907938f, 0.23961357f, 0.24014846f, 0.24068405f, 0.24122036f, 0.24175736f, 0.24229507f, 0.24283347f, 0.24337258f, 0.24391239f, 0.24445289f, 0.24499409f, 0.24553598f, 0.24607857f, 0.24662185f, 0.24716582f, 0.24771047f, 0.24825582f, 0.24880185f, 0.24934857f, 0.24989598f, 0.25044406f, 0.25099283f, 0.25154228f, 0.25209240f, 0.25264321f, 0.25319469f, 0.25374685f, 0.25429968f, 0.25485318f, 0.25540736f, 0.25596220f, 0.25651771f, 0.25707390f, 0.25763074f, 0.25818825f, 0.25874643f, 0.25930527f, 0.25986476f, 0.26042492f, 0.26098574f, 0.26154721f, 0.26210934f, 0.26267212f, 0.26323555f, 0.26379964f, 0.26436438f, 0.26492976f, 0.26549580f, 0.26606248f, 0.26662980f, 0.26719777f, 0.26776638f, 0.26833563f, 0.26890552f, 0.26947605f, 0.27004722f, 0.27061902f, 0.27119146f, 0.27176452f, 0.27233822f, 0.27291255f, 0.27348751f, 0.27406310f, 0.27463931f, 0.27521615f, 0.27579361f, 0.27637169f, 0.27695040f, 0.27752972f, 0.27810966f, 0.27869022f, 0.27927139f, 0.27985317f, 0.28043557f, 0.28101858f, 0.28160220f, 0.28218643f, 0.28277126f, 0.28335670f, 0.28394275f, 0.28452940f, 0.28511664f, 0.28570449f, 0.28629294f, 0.28688199f, 0.28747163f, 0.28806186f, 0.28865269f, 0.28924411f, 0.28983612f, 0.29042872f, 0.29102191f, 0.29161568f, 0.29221004f, 0.29280498f, 0.29340050f, 0.29399660f, 0.29459329f, 0.29519055f, 0.29578838f, 0.29638680f, 0.29698578f, 0.29758534f, 0.29818547f, 0.29878616f, 0.29938743f, 0.29998926f, 0.30059166f, 0.30119462f, 0.30179814f, 0.30240222f, 0.30300687f, 0.30361207f, 0.30421782f, 0.30482414f, 0.30543100f, 0.30603842f, 0.30664639f, 0.30725491f, 0.30786397f, 0.30847359f, 0.30908374f, 0.30969445f, 0.31030569f, 0.31091747f, 0.31152980f, 0.31214266f, 0.31275606f, 0.31336999f, 0.31398446f, 0.31459946f, 0.31521499f, 0.31583104f, 0.31644763f, 0.31706474f, 0.31768238f, 0.31830054f, 0.31891922f, 0.31953843f, 0.32015815f, 0.32077839f, 0.32139914f, 0.32202042f, 0.32264220f, 0.32326449f, 0.32388730f, 0.32451061f, 0.32513444f, 0.32575876f, 0.32638360f, 0.32700893f, 0.32763477f, 0.32826110f, 0.32888794f, 0.32951527f, 0.33014310f, 0.33077142f, 0.33140023f, 0.33202954f, 0.33265933f, 0.33328962f, 0.33392039f, 0.33455164f, 0.33518338f, 0.33581560f, 0.33644830f, 0.33708148f, 0.33771514f, 0.33834927f, 0.33898388f, 0.33961896f, 0.34025452f, 0.34089054f, 0.34152704f, 0.34216400f, 0.34280142f, 0.34343931f, 0.34407767f, 0.34471648f, 0.34535575f, 0.34599549f, 0.34663567f, 0.34727632f, 0.34791742f, 0.34855897f, 0.34920097f, 0.34984342f, 0.35048632f, 0.35112966f, 0.35177345f, 0.35241768f, 0.35306235f, 0.35370747f, 0.35435302f, 0.35499901f, 0.35564543f, 0.35629229f, 0.35693958f, 0.35758730f, 0.35823546f, 0.35888404f, 0.35953304f, 0.36018247f, 0.36083233f, 0.36148260f, 0.36213330f, 0.36278441f, 0.36343595f, 0.36408789f, 0.36474025f, 0.36539303f, 0.36604621f, 0.36669981f, 0.36735381f, 0.36800822f, 0.36866304f, 0.36931825f, 0.36997387f, 0.37062989f, 0.37128631f, 0.37194313f, 0.37260034f, 0.37325795f, 0.37391594f, 0.37457433f, 0.37523311f, 0.37589228f, 0.37655183f, 0.37721177f, 0.37787209f, 0.37853279f, 0.37919387f, 0.37985534f, 0.38051717f, 0.38117939f, 0.38184198f, 0.38250494f, 0.38316827f, 0.38383197f, 0.38449603f, 0.38516047f, 0.38582527f, 0.38649043f, 0.38715595f, 0.38782183f, 0.38848807f, 0.38915467f, 0.38982162f, 0.39048893f, 0.39115659f, 0.39182460f, 0.39249295f, 0.39316166f, 0.39383071f, 0.39450010f, 0.39516984f, 0.39583992f, 0.39651034f, 0.39718109f, 0.39785218f, 0.39852361f, 0.39919537f, 0.39986746f, 0.40053988f, 0.40121263f, 0.40188570f, 0.40255910f, 0.40323283f, 0.40390687f, 0.40458124f, 0.40525593f, 0.40593093f, 0.40660625f, 0.40728188f, 0.40795783f, 0.40863408f, 0.40931065f, 0.40998752f, 0.41066470f, 0.41134218f, 0.41201997f, 0.41269805f, 0.41337644f, 0.41405513f, 0.41473411f, 0.41541338f, 0.41609295f, 0.41677282f, 0.41745297f, 0.41813341f, 0.41881414f, 0.41949515f, 0.42017644f, 0.42085802f, 0.42153988f, 0.42222202f, 0.42290443f, 0.42358712f, 0.42427009f, 0.42495333f, 0.42563683f, 0.42632061f, 0.42700466f, 0.42768897f, 0.42837354f, 0.42905838f, 0.42974348f, 0.43042884f, 0.43111445f, 0.43180033f, 0.43248646f, 0.43317284f, 0.43385947f, 0.43454635f, 0.43523348f, 0.43592086f, 0.43660848f, 0.43729635f, 0.43798445f, 0.43867280f, 0.43936139f, 0.44005021f, 0.44073927f, 0.44142856f, 0.44211809f, 0.44280784f, 0.44349782f, 0.44418803f, 0.44487847f, 0.44556913f, 0.44626001f, 0.44695112f, 0.44764244f, 0.44833398f, 0.44902573f, 0.44971770f, 0.45040988f, 0.45110228f, 0.45179488f, 0.45248769f, 0.45318071f, 0.45387393f, 0.45456735f, 0.45526097f, 0.45595480f, 0.45664882f, 0.45734304f, 0.45803745f, 0.45873206f, 0.45942685f, 0.46012184f, 0.46081701f, 0.46151237f, 0.46220792f, 0.46290365f, 0.46359956f, 0.46429565f, 0.46499192f, 0.46568836f, 0.46638498f, 0.46708178f, 0.46777874f, 0.46847588f, 0.46917318f, 0.46987065f, 0.47056828f, 0.47126608f, 0.47196404f, 0.47266216f, 0.47336044f, 0.47405888f, 0.47475747f, 0.47545622f, 0.47615511f, 0.47685416f, 0.47755335f, 0.47825270f, 0.47895219f, 0.47965182f, 0.48035159f, 0.48105151f, 0.48175156f, 0.48245175f, 0.48315208f, 0.48385254f, 0.48455313f, 0.48525385f, 0.48595470f, 0.48665568f, 0.48735678f, 0.48805801f, 0.48875936f, 0.48946083f, 0.49016242f, 0.49086413f, 0.49156595f, 0.49226789f, 0.49296994f, 0.49367210f, 0.49437437f, 0.49507674f, 0.49577923f, 0.49648181f, 0.49718450f, 0.49788729f, 0.49859018f, 0.49929317f, 0.49999625f, 0.50069943f, 0.50140269f, 0.50210605f, 0.50280950f, 0.50351304f, 0.50421666f, 0.50492037f, 0.50562416f, 0.50632803f, 0.50703198f, 0.50773600f, 0.50844011f, 0.50914428f, 0.50984853f, 0.51055285f, 0.51125724f, 0.51196170f, 0.51266623f, 0.51337081f, 0.51407547f, 0.51478018f, 0.51548495f, 0.51618978f, 0.51689466f, 0.51759960f, 0.51830459f, 0.51900964f, 0.51971473f, 0.52041987f, 0.52112506f, 0.52183029f, 0.52253556f, 0.52324088f, 0.52394623f, 0.52465162f, 0.52535705f, 0.52606251f, 0.52676801f, 0.52747354f, 0.52817909f, 0.52888468f, 0.52959029f, 0.53029592f, 0.53100158f, 0.53170726f, 0.53241296f, 0.53311867f, 0.53382441f, 0.53453015f, 0.53523591f, 0.53594168f, 0.53664746f, 0.53735325f, 0.53805905f, 0.53876485f, 0.53947065f, 0.54017645f, 0.54088225f, 0.54158805f, 0.54229385f, 0.54299964f, 0.54370543f, 0.54441120f, 0.54511697f, 0.54582272f, 0.54652846f, 0.54723419f, 0.54793989f, 0.54864558f, 0.54935125f, 0.55005690f, 0.55076252f, 0.55146812f, 0.55217369f, 0.55287923f, 0.55358474f, 0.55429022f, 0.55499567f, 0.55570108f, 0.55640645f, 0.55711179f, 0.55781708f, 0.55852233f, 0.55922754f, 0.55993271f, 0.56063782f, 0.56134289f, 0.56204791f, 0.56275287f, 0.56345779f, 0.56416264f, 0.56486744f, 0.56557219f, 0.56627687f, 0.56698149f, 0.56768604f, 0.56839053f, 0.56909496f, 0.56979931f, 0.57050360f, 0.57120781f, 0.57191195f, 0.57261602f, 0.57332001f, 0.57402392f, 0.57472775f, 0.57543150f, 0.57613516f, 0.57683874f, 0.57754223f, 0.57824564f, 0.57894895f, 0.57965217f, 0.58035530f, 0.58105834f, 0.58176128f, 0.58246412f, 0.58316686f, 0.58386949f, 0.58457203f, 0.58527446f, 0.58597678f, 0.58667899f, 0.58738110f, 0.58808309f, 0.58878497f, 0.58948674f, 0.59018839f, 0.59088992f, 0.59159133f, 0.59229262f, 0.59299378f, 0.59369483f, 0.59439574f, 0.59509653f, 0.59579719f, 0.59649771f, 0.59719810f, 0.59789836f, 0.59859848f, 0.59929847f, 0.59999831f, 0.60069802f, 0.60139758f, 0.60209699f, 0.60279626f, 0.60349538f, 0.60419436f, 0.60489318f, 0.60559184f, 0.60629036f, 0.60698872f, 0.60768692f, 0.60838496f, 0.60908284f, 0.60978055f, 0.61047811f, 0.61117549f, 0.61187271f, 0.61256976f, 0.61326664f, 0.61396335f, 0.61465988f, 0.61535624f, 0.61605242f, 0.61674842f, 0.61744424f, 0.61813988f, 0.61883533f, 0.61953060f, 0.62022568f, 0.62092057f, 0.62161527f, 0.62230978f, 0.62300410f, 0.62369822f, 0.62439214f, 0.62508586f, 0.62577939f, 0.62647271f, 0.62716583f, 0.62785874f, 0.62855145f, 0.62924394f, 0.62993623f, 0.63062831f, 0.63132017f, 0.63201182f, 0.63270325f, 0.63339446f, 0.63408546f, 0.63477623f, 0.63546678f, 0.63615710f, 0.63684720f, 0.63753707f, 0.63822671f, 0.63891611f, 0.63960529f, 0.64029423f, 0.64098293f, 0.64167140f, 0.64235963f, 0.64304762f, 0.64373536f, 0.64442286f, 0.64511011f, 0.64579712f, 0.64648388f, 0.64717039f, 0.64785664f, 0.64854264f, 0.64922839f, 0.64991387f, 0.65059910f, 0.65128407f, 0.65196878f, 0.65265322f, 0.65333740f, 0.65402131f, 0.65470495f, 0.65538833f, 0.65607143f, 0.65675426f, 0.65743681f, 0.65811908f, 0.65880108f, 0.65948280f, 0.66016424f, 0.66084539f, 0.66152626f, 0.66220685f, 0.66288714f, 0.66356715f, 0.66424687f, 0.66492629f, 0.66560542f, 0.66628425f, 0.66696279f, 0.66764103f, 0.66831896f, 0.66899660f, 0.66967393f, 0.67035096f, 0.67102768f, 0.67170409f, 0.67238019f, 0.67305597f, 0.67373145f, 0.67440661f, 0.67508146f, 0.67575598f, 0.67643019f, 0.67710407f, 0.67777764f, 0.67845088f, 0.67912379f, 0.67979637f, 0.68046863f, 0.68114055f, 0.68181215f, 0.68248341f, 0.68315433f, 0.68382492f, 0.68449516f, 0.68516507f, 0.68583464f, 0.68650386f, 0.68717274f, 0.68784127f, 0.68850945f, 0.68917728f, 0.68984477f, 0.69051190f, 0.69117867f, 0.69184509f, 0.69251115f, 0.69317686f, 0.69384220f, 0.69450718f, 0.69517179f, 0.69583605f, 0.69649993f, 0.69716344f, 0.69782659f, 0.69848936f, 0.69915177f, 0.69981379f, 0.70047544f, 0.70113671f, 0.70179761f, 0.70245812f, 0.70311825f, 0.70377799f, 0.70443735f, 0.70509633f, 0.70575491f, 0.70641310f, 0.70707091f, 0.70772831f, 0.70838533f, 0.70904195f, 0.70969817f, 0.71035399f, 0.71100940f, 0.71166442f, 0.71231903f, 0.71297324f, 0.71362704f, 0.71428043f, 0.71493341f, 0.71558598f, 0.71623813f, 0.71688987f, 0.71754120f, 0.71819210f, 0.71884259f, 0.71949265f, 0.72014230f, 0.72079151f, 0.72144031f, 0.72208867f, 0.72273661f, 0.72338412f, 0.72403119f, 0.72467783f, 0.72532404f, 0.72596981f, 0.72661514f, 0.72726004f, 0.72790449f, 0.72854850f, 0.72919207f, 0.72983519f, 0.73047786f, 0.73112009f, 0.73176186f, 0.73240319f, 0.73304406f, 0.73368448f, 0.73432444f, 0.73496394f, 0.73560299f, 0.73624157f, 0.73687969f, 0.73751735f, 0.73815454f, 0.73879127f, 0.73942753f, 0.74006332f, 0.74069864f, 0.74133348f, 0.74196785f, 0.74260175f, 0.74323517f, 0.74386811f, 0.74450057f, 0.74513255f, 0.74576405f, 0.74639506f, 0.74702559f, 0.74765563f, 0.74828518f, 0.74891424f, 0.74954280f, 0.75017088f, 0.75079846f, 0.75142554f, 0.75205213f, 0.75267821f, 0.75330380f, 0.75392888f, 0.75455346f, 0.75517754f, 0.75580111f, 0.75642417f, 0.75704672f, 0.75766876f, 0.75829028f, 0.75891130f, 0.75953180f, 0.76015178f, 0.76077124f, 0.76139018f, 0.76200861f, 0.76262650f, 0.76324388f, 0.76386073f, 0.76447705f, 0.76509285f, 0.76570811f, 0.76632284f, 0.76693704f, 0.76755071f, 0.76816384f, 0.76877643f, 0.76938849f, 0.77000000f, 0.77061097f, 0.77122140f, 0.77183129f, 0.77244063f, 0.77304942f, 0.77365766f, 0.77426536f, 0.77487250f, 0.77547909f, 0.77608512f, 0.77669060f, 0.77729553f, 0.77789989f, 0.77850369f, 0.77910693f, 0.77970961f, 0.78031173f, 0.78091328f, 0.78151426f, 0.78211467f, 0.78271451f, 0.78331378f, 0.78391248f, 0.78451061f, 0.78510816f, 0.78570513f, 0.78630152f, 0.78689733f, 0.78749257f, 0.78808722f, 0.78868128f, 0.78927476f, 0.78986765f, 0.79045996f, 0.79105167f, 0.79164280f, 0.79223333f, 0.79282327f, 0.79341261f, 0.79400136f, 0.79458951f, 0.79517705f, 0.79576400f, 0.79635035f, 0.79693609f, 0.79752123f, 0.79810576f, 0.79868968f, 0.79927300f, 0.79985570f, 0.80043779f, 0.80101927f, 0.80160014f, 0.80218039f, 0.80276002f, 0.80333903f, 0.80391743f, 0.80449520f, 0.80507235f, 0.80564887f, 0.80622477f, 0.80680004f, 0.80737469f, 0.80794870f, 0.80852209f, 0.80909484f, 0.80966696f, 0.81023844f, 0.81080929f, 0.81137950f, 0.81194907f, 0.81251800f, 0.81308629f, 0.81365394f, 0.81422094f, 0.81478730f, 0.81535301f, 0.81591807f, 0.81648248f, 0.81704624f, 0.81760935f, 0.81817181f, 0.81873361f, 0.81929475f, 0.81985524f, 0.82041507f, 0.82097424f, 0.82153274f, 0.82209059f, 0.82264776f, 0.82320428f, 0.82376013f, 0.82431530f, 0.82486981f, 0.82542365f, 0.82597682f, 0.82652931f, 0.82708113f, 0.82763228f, 0.82818274f, 0.82873253f, 0.82928164f, 0.82983007f, 0.83037781f, 0.83092487f, 0.83147125f, 0.83201694f, 0.83256194f, 0.83310626f, 0.83364988f, 0.83419281f, 0.83473505f, 0.83527660f, 0.83581745f, 0.83635760f, 0.83689706f, 0.83743582f, 0.83797387f, 0.83851123f, 0.83904788f, 0.83958383f, 0.84011908f, 0.84065361f, 0.84118744f, 0.84172056f, 0.84225297f, 0.84278467f, 0.84331566f, 0.84384593f, 0.84437549f, 0.84490432f, 0.84543245f, 0.84595985f, 0.84648653f, 0.84701249f, 0.84753773f, 0.84806225f, 0.84858603f, 0.84910910f, 0.84963143f, 0.85015304f, 0.85067391f, 0.85119406f, 0.85171347f, 0.85223215f, 0.85275009f, 0.85326730f, 0.85378376f, 0.85429949f, 0.85481448f, 0.85532873f, 0.85584224f, 0.85635500f, 0.85686702f, 0.85737829f, 0.85788882f, 0.85839860f, 0.85890762f, 0.85941590f, 0.85992342f, 0.86043019f, 0.86093621f, 0.86144147f, 0.86194598f, 0.86244972f, 0.86295271f, 0.86345494f, 0.86395640f, 0.86445711f, 0.86495705f, 0.86545622f, 0.86595463f, 0.86645227f, 0.86694914f, 0.86744524f, 0.86794057f, 0.86843513f, 0.86892892f, 0.86942193f, 0.86991417f, 0.87040563f, 0.87089631f, 0.87138621f, 0.87187533f, 0.87236367f, 0.87285123f, 0.87333801f, 0.87382400f, 0.87430920f, 0.87479362f, 0.87527725f, 0.87576009f, 0.87624214f, 0.87672340f, 0.87720386f, 0.87768353f, 0.87816241f, 0.87864049f, 0.87911777f, 0.87959426f, 0.88006994f, 0.88054483f, 0.88101891f, 0.88149219f, 0.88196466f, 0.88243633f, 0.88290720f, 0.88337726f, 0.88384650f, 0.88431494f, 0.88478257f, 0.88524939f, 0.88571539f, 0.88618058f, 0.88664496f, 0.88710852f, 0.88757126f, 0.88803319f, 0.88849429f, 0.88895457f, 0.88941404f, 0.88987268f, 0.89033049f, 0.89078748f, 0.89124365f, 0.89169899f, 0.89215350f, 0.89260718f, 0.89306003f, 0.89351205f, 0.89396324f, 0.89441360f, 0.89486312f, 0.89531180f, 0.89575965f, 0.89620666f, 0.89665283f, 0.89709817f, 0.89754266f, 0.89798631f, 0.89842912f, 0.89887108f, 0.89931220f, 0.89975247f, 0.90019190f, 0.90063047f, 0.90106820f, 0.90150508f, 0.90194111f, 0.90237629f, 0.90281061f, 0.90324408f, 0.90367669f, 0.90410845f, 0.90453935f, 0.90496939f, 0.90539857f, 0.90582689f, 0.90625435f, 0.90668095f, 0.90710669f, 0.90753156f, 0.90795557f, 0.90837871f, 0.90880098f, 0.90922238f, 0.90964292f, 0.91006258f, 0.91048138f, 0.91089930f, 0.91131634f, 0.91173252f, 0.91214782f, 0.91256224f, 0.91297579f, 0.91338845f, 0.91380024f, 0.91421115f, 0.91462118f, 0.91503032f, 0.91543859f, 0.91584596f, 0.91625246f, 0.91665807f, 0.91706279f, 0.91746662f, 0.91786957f, 0.91827162f, 0.91867279f, 0.91907306f, 0.91947244f, 0.91987093f, 0.92026852f, 0.92066522f, 0.92106102f, 0.92145593f, 0.92184993f, 0.92224304f, 0.92263525f, 0.92302655f, 0.92341696f, 0.92380646f, 0.92419506f, 0.92458276f, 0.92496954f, 0.92535543f, 0.92574040f, 0.92612447f, 0.92650763f, 0.92688988f, 0.92727122f, 0.92765164f, 0.92803115f, 0.92840975f, 0.92878744f, 0.92916421f, 0.92954006f, 0.92991500f, 0.93028902f, 0.93066212f, 0.93103430f, 0.93140556f, 0.93177590f, 0.93214531f, 0.93251381f, 0.93288137f, 0.93324802f, 0.93361374f, 0.93397853f, 0.93434239f, 0.93470533f, 0.93506733f, 0.93542841f, 0.93578855f, 0.93614777f, 0.93650605f, 0.93686339f, 0.93721981f, 0.93757528f, 0.93792983f, 0.93828343f, 0.93863610f, 0.93898783f, 0.93933862f, 0.93968847f, 0.94003737f, 0.94038534f, 0.94073236f, 0.94107844f, 0.94142358f, 0.94176777f, 0.94211102f, 0.94245332f, 0.94279467f, 0.94313507f, 0.94347452f, 0.94381303f, 0.94415058f, 0.94448718f, 0.94482283f, 0.94515753f, 0.94549127f, 0.94582406f, 0.94615589f, 0.94648677f, 0.94681669f, 0.94714565f, 0.94747365f, 0.94780070f, 0.94812678f, 0.94845190f, 0.94877607f, 0.94909926f, 0.94942150f, 0.94974277f, 0.95006308f, 0.95038242f, 0.95070080f, 0.95101821f, 0.95133465f, 0.95165012f, 0.95196463f, 0.95227816f, 0.95259072f, 0.95290231f, 0.95321293f, 0.95352258f, 0.95383126f, 0.95413895f, 0.95444568f, 0.95475143f, 0.95505620f, 0.95536000f, 0.95566281f, 0.95596465f, 0.95626551f, 0.95656539f, 0.95686429f, 0.95716221f, 0.95745914f, 0.95775509f, 0.95805006f, 0.95834405f, 0.95863705f, 0.95892906f, 0.95922009f, 0.95951013f, 0.95979918f, 0.96008725f, 0.96037432f, 0.96066041f, 0.96094551f, 0.96122961f, 0.96151273f, 0.96179485f, 0.96207598f, 0.96235611f, 0.96263525f, 0.96291339f, 0.96319054f, 0.96346670f, 0.96374185f, 0.96401601f, 0.96428917f, 0.96456133f, 0.96483250f, 0.96510266f, 0.96537182f, 0.96563998f, 0.96590714f, 0.96617329f, 0.96643844f, 0.96670259f, 0.96696573f, 0.96722787f, 0.96748900f, 0.96774913f, 0.96800825f, 0.96826636f, 0.96852346f, 0.96877955f, 0.96903464f, 0.96928871f, 0.96954178f, 0.96979383f, 0.97004487f, 0.97029490f, 0.97054391f, 0.97079191f, 0.97103890f, 0.97128487f, 0.97152983f, 0.97177377f, 0.97201670f, 0.97225861f, 0.97249950f, 0.97273937f, 0.97297822f, 0.97321605f, 0.97345287f, 0.97368866f, 0.97392343f, 0.97415718f, 0.97438991f, 0.97462162f, 0.97485230f, 0.97508196f, 0.97531060f, 0.97553821f, 0.97576479f, 0.97599035f, 0.97621488f, 0.97643839f, 0.97666087f, 0.97688232f, 0.97710274f, 0.97732213f, 0.97754049f, 0.97775782f, 0.97797413f, 0.97818940f, 0.97840364f, 0.97861684f, 0.97882902f, 0.97904016f, 0.97925027f, 0.97945934f, 0.97966738f, 0.97987439f, 0.98008035f, 0.98028529f, 0.98048918f, 0.98069204f, 0.98089386f, 0.98109465f, 0.98129439f, 0.98149310f, 0.98169076f, 0.98188739f, 0.98208298f, 0.98227752f, 0.98247103f, 0.98266349f, 0.98285491f, 0.98304529f, 0.98323462f, 0.98342292f, 0.98361016f, 0.98379637f, 0.98398153f, 0.98416564f, 0.98434871f, 0.98453073f, 0.98471170f, 0.98489163f, 0.98507051f, 0.98524834f, 0.98542513f, 0.98560086f, 0.98577555f, 0.98594919f, 0.98612178f, 0.98629331f, 0.98646380f, 0.98663324f, 0.98680162f, 0.98696895f, 0.98713523f, 0.98730046f, 0.98746463f, 0.98762775f, 0.98778982f, 0.98795083f, 0.98811079f, 0.98826969f, 0.98842754f, 0.98858433f, 0.98874007f, 0.98889475f, 0.98904837f, 0.98920094f, 0.98935245f, 0.98950290f, 0.98965229f, 0.98980062f, 0.98994790f, 0.99009411f, 0.99023927f, 0.99038336f, 0.99052640f, 0.99066837f, 0.99080929f, 0.99094914f, 0.99108793f, 0.99122566f, 0.99136232f, 0.99149793f, 0.99163247f, 0.99176595f, 0.99189836f, 0.99202971f, 0.99216000f, 0.99228922f, 0.99241737f, 0.99254446f, 0.99267049f, 0.99279545f, 0.99291935f, 0.99304217f, 0.99316393f, 0.99328463f, 0.99340426f, 0.99352282f, 0.99364031f, 0.99375673f, 0.99387209f, 0.99398638f, 0.99409960f, 0.99421175f, 0.99432283f, 0.99443284f, 0.99454178f, 0.99464965f, 0.99475645f, 0.99486218f, 0.99496684f, 0.99507043f, 0.99517294f, 0.99527439f, 0.99537476f, 0.99547406f, 0.99557229f, 0.99566945f, 0.99576553f, 0.99586054f, 0.99595448f, 0.99604734f, 0.99613913f, 0.99622985f, 0.99631949f, 0.99640806f, 0.99649555f, 0.99658197f, 0.99666732f, 0.99675159f, 0.99683478f, 0.99691690f, 0.99699794f, 0.99707791f, 0.99715680f, 0.99723461f, 0.99731135f, 0.99738701f, 0.99746159f, 0.99753510f, 0.99760753f, 0.99767888f, 0.99774916f, 0.99781836f, 0.99788648f, 0.99795352f, 0.99801948f, 0.99808437f, 0.99814818f, 0.99821090f, 0.99827255f, 0.99833312f, 0.99839262f, 0.99845103f, 0.99850836f, 0.99856462f, 0.99861979f, 0.99867388f, 0.99872690f, 0.99877883f, 0.99882969f, 0.99887946f, 0.99892816f, 0.99897577f, 0.99902230f, 0.99906776f, 0.99911213f, 0.99915542f, 0.99919763f, 0.99923876f, 0.99927881f, 0.99931777f, 0.99935566f, 0.99939246f, 0.99942818f, 0.99946282f, 0.99949638f, 0.99952886f, 0.99956026f, 0.99959057f, 0.99961980f, 0.99964795f, 0.99967502f, 0.99970100f, 0.99972590f, 0.99974973f, 0.99977246f, 0.99979412f, 0.99981469f, 0.99983418f, 0.99985259f, 0.99986992f, 0.99988616f, 0.99990132f, 0.99991540f, 0.99992839f, 0.99994030f, 0.99995113f, 0.99996088f, 0.99996954f, 0.99997712f, 0.99998362f, 0.99998904f, 0.99999337f, 0.99999662f, 0.99999878f, 0.99999986f, 0.99999986f, 0.99999878f, 0.99999662f, 0.99999337f, 0.99998904f, 0.99998362f, 0.99997712f, 0.99996954f, 0.99996088f, 0.99995113f, 0.99994030f, 0.99992839f, 0.99991540f, 0.99990132f, 0.99988616f, 0.99986992f, 0.99985259f, 0.99983418f, 0.99981469f, 0.99979412f, 0.99977246f, 0.99974973f, 0.99972590f, 0.99970100f, 0.99967502f, 0.99964795f, 0.99961980f, 0.99959057f, 0.99956026f, 0.99952886f, 0.99949638f, 0.99946282f, 0.99942818f, 0.99939246f, 0.99935566f, 0.99931777f, 0.99927881f, 0.99923876f, 0.99919763f, 0.99915542f, 0.99911213f, 0.99906776f, 0.99902230f, 0.99897577f, 0.99892816f, 0.99887946f, 0.99882969f, 0.99877883f, 0.99872690f, 0.99867388f, 0.99861979f, 0.99856462f, 0.99850836f, 0.99845103f, 0.99839262f, 0.99833312f, 0.99827255f, 0.99821090f, 0.99814818f, 0.99808437f, 0.99801948f, 0.99795352f, 0.99788648f, 0.99781836f, 0.99774916f, 0.99767888f, 0.99760753f, 0.99753510f, 0.99746159f, 0.99738701f, 0.99731135f, 0.99723461f, 0.99715680f, 0.99707791f, 0.99699794f, 0.99691690f, 0.99683478f, 0.99675159f, 0.99666732f, 0.99658197f, 0.99649555f, 0.99640806f, 0.99631949f, 0.99622985f, 0.99613913f, 0.99604734f, 0.99595448f, 0.99586054f, 0.99576553f, 0.99566945f, 0.99557229f, 0.99547406f, 0.99537476f, 0.99527439f, 0.99517294f, 0.99507043f, 0.99496684f, 0.99486218f, 0.99475645f, 0.99464965f, 0.99454178f, 0.99443284f, 0.99432283f, 0.99421175f, 0.99409960f, 0.99398638f, 0.99387209f, 0.99375673f, 0.99364031f, 0.99352282f, 0.99340426f, 0.99328463f, 0.99316393f, 0.99304217f, 0.99291935f, 0.99279545f, 0.99267049f, 0.99254446f, 0.99241737f, 0.99228922f, 0.99216000f, 0.99202971f, 0.99189836f, 0.99176595f, 0.99163247f, 0.99149793f, 0.99136232f, 0.99122566f, 0.99108793f, 0.99094914f, 0.99080929f, 0.99066837f, 0.99052640f, 0.99038336f, 0.99023927f, 0.99009411f, 0.98994790f, 0.98980062f, 0.98965229f, 0.98950290f, 0.98935245f, 0.98920094f, 0.98904837f, 0.98889475f, 0.98874007f, 0.98858433f, 0.98842754f, 0.98826969f, 0.98811079f, 0.98795083f, 0.98778982f, 0.98762775f, 0.98746463f, 0.98730046f, 0.98713523f, 0.98696895f, 0.98680162f, 0.98663324f, 0.98646380f, 0.98629331f, 0.98612178f, 0.98594919f, 0.98577555f, 0.98560086f, 0.98542513f, 0.98524834f, 0.98507051f, 0.98489163f, 0.98471170f, 0.98453073f, 0.98434871f, 0.98416564f, 0.98398153f, 0.98379637f, 0.98361016f, 0.98342292f, 0.98323462f, 0.98304529f, 0.98285491f, 0.98266349f, 0.98247103f, 0.98227752f, 0.98208298f, 0.98188739f, 0.98169076f, 0.98149310f, 0.98129439f, 0.98109465f, 0.98089386f, 0.98069204f, 0.98048918f, 0.98028529f, 0.98008035f, 0.97987439f, 0.97966738f, 0.97945934f, 0.97925027f, 0.97904016f, 0.97882902f, 0.97861684f, 0.97840364f, 0.97818940f, 0.97797413f, 0.97775782f, 0.97754049f, 0.97732213f, 0.97710274f, 0.97688232f, 0.97666087f, 0.97643839f, 0.97621488f, 0.97599035f, 0.97576479f, 0.97553821f, 0.97531060f, 0.97508196f, 0.97485230f, 0.97462162f, 0.97438991f, 0.97415718f, 0.97392343f, 0.97368866f, 0.97345287f, 0.97321605f, 0.97297822f, 0.97273937f, 0.97249950f, 0.97225861f, 0.97201670f, 0.97177377f, 0.97152983f, 0.97128487f, 0.97103890f, 0.97079191f, 0.97054391f, 0.97029490f, 0.97004487f, 0.96979383f, 0.96954178f, 0.96928871f, 0.96903464f, 0.96877955f, 0.96852346f, 0.96826636f, 0.96800825f, 0.96774913f, 0.96748900f, 0.96722787f, 0.96696573f, 0.96670259f, 0.96643844f, 0.96617329f, 0.96590714f, 0.96563998f, 0.96537182f, 0.96510266f, 0.96483250f, 0.96456133f, 0.96428917f, 0.96401601f, 0.96374185f, 0.96346670f, 0.96319054f, 0.96291339f, 0.96263525f, 0.96235611f, 0.96207598f, 0.96179485f, 0.96151273f, 0.96122961f, 0.96094551f, 0.96066041f, 0.96037432f, 0.96008725f, 0.95979918f, 0.95951013f, 0.95922009f, 0.95892906f, 0.95863705f, 0.95834405f, 0.95805006f, 0.95775509f, 0.95745914f, 0.95716221f, 0.95686429f, 0.95656539f, 0.95626551f, 0.95596465f, 0.95566281f, 0.95536000f, 0.95505620f, 0.95475143f, 0.95444568f, 0.95413895f, 0.95383126f, 0.95352258f, 0.95321293f, 0.95290231f, 0.95259072f, 0.95227816f, 0.95196463f, 0.95165012f, 0.95133465f, 0.95101821f, 0.95070080f, 0.95038242f, 0.95006308f, 0.94974277f, 0.94942150f, 0.94909926f, 0.94877607f, 0.94845190f, 0.94812678f, 0.94780070f, 0.94747365f, 0.94714565f, 0.94681669f, 0.94648677f, 0.94615589f, 0.94582406f, 0.94549127f, 0.94515753f, 0.94482283f, 0.94448718f, 0.94415058f, 0.94381303f, 0.94347452f, 0.94313507f, 0.94279467f, 0.94245332f, 0.94211102f, 0.94176777f, 0.94142358f, 0.94107844f, 0.94073236f, 0.94038534f, 0.94003737f, 0.93968847f, 0.93933862f, 0.93898783f, 0.93863610f, 0.93828343f, 0.93792983f, 0.93757528f, 0.93721981f, 0.93686339f, 0.93650605f, 0.93614777f, 0.93578855f, 0.93542841f, 0.93506733f, 0.93470533f, 0.93434239f, 0.93397853f, 0.93361374f, 0.93324802f, 0.93288137f, 0.93251381f, 0.93214531f, 0.93177590f, 0.93140556f, 0.93103430f, 0.93066212f, 0.93028902f, 0.92991500f, 0.92954006f, 0.92916421f, 0.92878744f, 0.92840975f, 0.92803115f, 0.92765164f, 0.92727122f, 0.92688988f, 0.92650763f, 0.92612447f, 0.92574040f, 0.92535543f, 0.92496954f, 0.92458276f, 0.92419506f, 0.92380646f, 0.92341696f, 0.92302655f, 0.92263525f, 0.92224304f, 0.92184993f, 0.92145593f, 0.92106102f, 0.92066522f, 0.92026852f, 0.91987093f, 0.91947244f, 0.91907306f, 0.91867279f, 0.91827162f, 0.91786957f, 0.91746662f, 0.91706279f, 0.91665807f, 0.91625246f, 0.91584596f, 0.91543859f, 0.91503032f, 0.91462118f, 0.91421115f, 0.91380024f, 0.91338845f, 0.91297579f, 0.91256224f, 0.91214782f, 0.91173252f, 0.91131634f, 0.91089930f, 0.91048138f, 0.91006258f, 0.90964292f, 0.90922238f, 0.90880098f, 0.90837871f, 0.90795557f, 0.90753156f, 0.90710669f, 0.90668095f, 0.90625435f, 0.90582689f, 0.90539857f, 0.90496939f, 0.90453935f, 0.90410845f, 0.90367669f, 0.90324408f, 0.90281061f, 0.90237629f, 0.90194111f, 0.90150508f, 0.90106820f, 0.90063047f, 0.90019190f, 0.89975247f, 0.89931220f, 0.89887108f, 0.89842912f, 0.89798631f, 0.89754266f, 0.89709817f, 0.89665283f, 0.89620666f, 0.89575965f, 0.89531180f, 0.89486312f, 0.89441360f, 0.89396324f, 0.89351205f, 0.89306003f, 0.89260718f, 0.89215350f, 0.89169899f, 0.89124365f, 0.89078748f, 0.89033049f, 0.88987268f, 0.88941404f, 0.88895457f, 0.88849429f, 0.88803319f, 0.88757126f, 0.88710852f, 0.88664496f, 0.88618058f, 0.88571539f, 0.88524939f, 0.88478257f, 0.88431494f, 0.88384650f, 0.88337726f, 0.88290720f, 0.88243633f, 0.88196466f, 0.88149219f, 0.88101891f, 0.88054483f, 0.88006994f, 0.87959426f, 0.87911777f, 0.87864049f, 0.87816241f, 0.87768353f, 0.87720386f, 0.87672340f, 0.87624214f, 0.87576009f, 0.87527725f, 0.87479362f, 0.87430920f, 0.87382400f, 0.87333801f, 0.87285123f, 0.87236367f, 0.87187533f, 0.87138621f, 0.87089631f, 0.87040563f, 0.86991417f, 0.86942193f, 0.86892892f, 0.86843513f, 0.86794057f, 0.86744524f, 0.86694914f, 0.86645227f, 0.86595463f, 0.86545622f, 0.86495705f, 0.86445711f, 0.86395640f, 0.86345494f, 0.86295271f, 0.86244972f, 0.86194598f, 0.86144147f, 0.86093621f, 0.86043019f, 0.85992342f, 0.85941590f, 0.85890762f, 0.85839860f, 0.85788882f, 0.85737829f, 0.85686702f, 0.85635500f, 0.85584224f, 0.85532873f, 0.85481448f, 0.85429949f, 0.85378376f, 0.85326730f, 0.85275009f, 0.85223215f, 0.85171347f, 0.85119406f, 0.85067391f, 0.85015304f, 0.84963143f, 0.84910910f, 0.84858603f, 0.84806225f, 0.84753773f, 0.84701249f, 0.84648653f, 0.84595985f, 0.84543245f, 0.84490432f, 0.84437549f, 0.84384593f, 0.84331566f, 0.84278467f, 0.84225297f, 0.84172056f, 0.84118744f, 0.84065361f, 0.84011908f, 0.83958383f, 0.83904788f, 0.83851123f, 0.83797387f, 0.83743582f, 0.83689706f, 0.83635760f, 0.83581745f, 0.83527660f, 0.83473505f, 0.83419281f, 0.83364988f, 0.83310626f, 0.83256194f, 0.83201694f, 0.83147125f, 0.83092487f, 0.83037781f, 0.82983007f, 0.82928164f, 0.82873253f, 0.82818274f, 0.82763228f, 0.82708113f, 0.82652931f, 0.82597682f, 0.82542365f, 0.82486981f, 0.82431530f, 0.82376013f, 0.82320428f, 0.82264776f, 0.82209059f, 0.82153274f, 0.82097424f, 0.82041507f, 0.81985524f, 0.81929475f, 0.81873361f, 0.81817181f, 0.81760935f, 0.81704624f, 0.81648248f, 0.81591807f, 0.81535301f, 0.81478730f, 0.81422094f, 0.81365394f, 0.81308629f, 0.81251800f, 0.81194907f, 0.81137950f, 0.81080929f, 0.81023844f, 0.80966696f, 0.80909484f, 0.80852209f, 0.80794870f, 0.80737469f, 0.80680004f, 0.80622477f, 0.80564887f, 0.80507235f, 0.80449520f, 0.80391743f, 0.80333903f, 0.80276002f, 0.80218039f, 0.80160014f, 0.80101927f, 0.80043779f, 0.79985570f, 0.79927300f, 0.79868968f, 0.79810576f, 0.79752123f, 0.79693609f, 0.79635035f, 0.79576400f, 0.79517705f, 0.79458951f, 0.79400136f, 0.79341261f, 0.79282327f, 0.79223333f, 0.79164280f, 0.79105167f, 0.79045996f, 0.78986765f, 0.78927476f, 0.78868128f, 0.78808722f, 0.78749257f, 0.78689733f, 0.78630152f, 0.78570513f, 0.78510816f, 0.78451061f, 0.78391248f, 0.78331378f, 0.78271451f, 0.78211467f, 0.78151426f, 0.78091328f, 0.78031173f, 0.77970961f, 0.77910693f, 0.77850369f, 0.77789989f, 0.77729553f, 0.77669060f, 0.77608512f, 0.77547909f, 0.77487250f, 0.77426536f, 0.77365766f, 0.77304942f, 0.77244063f, 0.77183129f, 0.77122140f, 0.77061097f, 0.77000000f, 0.76938849f, 0.76877643f, 0.76816384f, 0.76755071f, 0.76693704f, 0.76632284f, 0.76570811f, 0.76509285f, 0.76447705f, 0.76386073f, 0.76324388f, 0.76262650f, 0.76200861f, 0.76139018f, 0.76077124f, 0.76015178f, 0.75953180f, 0.75891130f, 0.75829028f, 0.75766876f, 0.75704672f, 0.75642417f, 0.75580111f, 0.75517754f, 0.75455346f, 0.75392888f, 0.75330380f, 0.75267821f, 0.75205213f, 0.75142554f, 0.75079846f, 0.75017088f, 0.74954280f, 0.74891424f, 0.74828518f, 0.74765563f, 0.74702559f, 0.74639506f, 0.74576405f, 0.74513255f, 0.74450057f, 0.74386811f, 0.74323517f, 0.74260175f, 0.74196785f, 0.74133348f, 0.74069864f, 0.74006332f, 0.73942753f, 0.73879127f, 0.73815454f, 0.73751735f, 0.73687969f, 0.73624157f, 0.73560299f, 0.73496394f, 0.73432444f, 0.73368448f, 0.73304406f, 0.73240319f, 0.73176186f, 0.73112009f, 0.73047786f, 0.72983519f, 0.72919207f, 0.72854850f, 0.72790449f, 0.72726004f, 0.72661514f, 0.72596981f, 0.72532404f, 0.72467783f, 0.72403119f, 0.72338412f, 0.72273661f, 0.72208867f, 0.72144031f, 0.72079151f, 0.72014230f, 0.71949265f, 0.71884259f, 0.71819210f, 0.71754120f, 0.71688987f, 0.71623813f, 0.71558598f, 0.71493341f, 0.71428043f, 0.71362704f, 0.71297324f, 0.71231903f, 0.71166442f, 0.71100940f, 0.71035399f, 0.70969817f, 0.70904195f, 0.70838533f, 0.70772831f, 0.70707091f, 0.70641310f, 0.70575491f, 0.70509633f, 0.70443735f, 0.70377799f, 0.70311825f, 0.70245812f, 0.70179761f, 0.70113671f, 0.70047544f, 0.69981379f, 0.69915177f, 0.69848936f, 0.69782659f, 0.69716344f, 0.69649993f, 0.69583605f, 0.69517179f, 0.69450718f, 0.69384220f, 0.69317686f, 0.69251115f, 0.69184509f, 0.69117867f, 0.69051190f, 0.68984477f, 0.68917728f, 0.68850945f, 0.68784127f, 0.68717274f, 0.68650386f, 0.68583464f, 0.68516507f, 0.68449516f, 0.68382492f, 0.68315433f, 0.68248341f, 0.68181215f, 0.68114055f, 0.68046863f, 0.67979637f, 0.67912379f, 0.67845088f, 0.67777764f, 0.67710407f, 0.67643019f, 0.67575598f, 0.67508146f, 0.67440661f, 0.67373145f, 0.67305597f, 0.67238019f, 0.67170409f, 0.67102768f, 0.67035096f, 0.66967393f, 0.66899660f, 0.66831896f, 0.66764103f, 0.66696279f, 0.66628425f, 0.66560542f, 0.66492629f, 0.66424687f, 0.66356715f, 0.66288714f, 0.66220685f, 0.66152626f, 0.66084539f, 0.66016424f, 0.65948280f, 0.65880108f, 0.65811908f, 0.65743681f, 0.65675426f, 0.65607143f, 0.65538833f, 0.65470495f, 0.65402131f, 0.65333740f, 0.65265322f, 0.65196878f, 0.65128407f, 0.65059910f, 0.64991387f, 0.64922839f, 0.64854264f, 0.64785664f, 0.64717039f, 0.64648388f, 0.64579712f, 0.64511011f, 0.64442286f, 0.64373536f, 0.64304762f, 0.64235963f, 0.64167140f, 0.64098293f, 0.64029423f, 0.63960529f, 0.63891611f, 0.63822671f, 0.63753707f, 0.63684720f, 0.63615710f, 0.63546678f, 0.63477623f, 0.63408546f, 0.63339446f, 0.63270325f, 0.63201182f, 0.63132017f, 0.63062831f, 0.62993623f, 0.62924394f, 0.62855145f, 0.62785874f, 0.62716583f, 0.62647271f, 0.62577939f, 0.62508586f, 0.62439214f, 0.62369822f, 0.62300410f, 0.62230978f, 0.62161527f, 0.62092057f, 0.62022568f, 0.61953060f, 0.61883533f, 0.61813988f, 0.61744424f, 0.61674842f, 0.61605242f, 0.61535624f, 0.61465988f, 0.61396335f, 0.61326664f, 0.61256976f, 0.61187271f, 0.61117549f, 0.61047811f, 0.60978055f, 0.60908284f, 0.60838496f, 0.60768692f, 0.60698872f, 0.60629036f, 0.60559184f, 0.60489318f, 0.60419436f, 0.60349538f, 0.60279626f, 0.60209699f, 0.60139758f, 0.60069802f, 0.59999831f, 0.59929847f, 0.59859848f, 0.59789836f, 0.59719810f, 0.59649771f, 0.59579719f, 0.59509653f, 0.59439574f, 0.59369483f, 0.59299378f, 0.59229262f, 0.59159133f, 0.59088992f, 0.59018839f, 0.58948674f, 0.58878497f, 0.58808309f, 0.58738110f, 0.58667899f, 0.58597678f, 0.58527446f, 0.58457203f, 0.58386949f, 0.58316686f, 0.58246412f, 0.58176128f, 0.58105834f, 0.58035530f, 0.57965217f, 0.57894895f, 0.57824564f, 0.57754223f, 0.57683874f, 0.57613516f, 0.57543150f, 0.57472775f, 0.57402392f, 0.57332001f, 0.57261602f, 0.57191195f, 0.57120781f, 0.57050360f, 0.56979931f, 0.56909496f, 0.56839053f, 0.56768604f, 0.56698149f, 0.56627687f, 0.56557219f, 0.56486744f, 0.56416264f, 0.56345779f, 0.56275287f, 0.56204791f, 0.56134289f, 0.56063782f, 0.55993271f, 0.55922754f, 0.55852233f, 0.55781708f, 0.55711179f, 0.55640645f, 0.55570108f, 0.55499567f, 0.55429022f, 0.55358474f, 0.55287923f, 0.55217369f, 0.55146812f, 0.55076252f, 0.55005690f, 0.54935125f, 0.54864558f, 0.54793989f, 0.54723419f, 0.54652846f, 0.54582272f, 0.54511697f, 0.54441120f, 0.54370543f, 0.54299964f, 0.54229385f, 0.54158805f, 0.54088225f, 0.54017645f, 0.53947065f, 0.53876485f, 0.53805905f, 0.53735325f, 0.53664746f, 0.53594168f, 0.53523591f, 0.53453015f, 0.53382441f, 0.53311867f, 0.53241296f, 0.53170726f, 0.53100158f, 0.53029592f, 0.52959029f, 0.52888468f, 0.52817909f, 0.52747354f, 0.52676801f, 0.52606251f, 0.52535705f, 0.52465162f, 0.52394623f, 0.52324088f, 0.52253556f, 0.52183029f, 0.52112506f, 0.52041987f, 0.51971473f, 0.51900964f, 0.51830459f, 0.51759960f, 0.51689466f, 0.51618978f, 0.51548495f, 0.51478018f, 0.51407547f, 0.51337081f, 0.51266623f, 0.51196170f, 0.51125724f, 0.51055285f, 0.50984853f, 0.50914428f, 0.50844011f, 0.50773600f, 0.50703198f, 0.50632803f, 0.50562416f, 0.50492037f, 0.50421666f, 0.50351304f, 0.50280950f, 0.50210605f, 0.50140269f, 0.50069943f, 0.49999625f, 0.49929317f, 0.49859018f, 0.49788729f, 0.49718450f, 0.49648181f, 0.49577923f, 0.49507674f, 0.49437437f, 0.49367210f, 0.49296994f, 0.49226789f, 0.49156595f, 0.49086413f, 0.49016242f, 0.48946083f, 0.48875936f, 0.48805801f, 0.48735678f, 0.48665568f, 0.48595470f, 0.48525385f, 0.48455313f, 0.48385254f, 0.48315208f, 0.48245175f, 0.48175156f, 0.48105151f, 0.48035159f, 0.47965182f, 0.47895219f, 0.47825270f, 0.47755335f, 0.47685416f, 0.47615511f, 0.47545622f, 0.47475747f, 0.47405888f, 0.47336044f, 0.47266216f, 0.47196404f, 0.47126608f, 0.47056828f, 0.46987065f, 0.46917318f, 0.46847588f, 0.46777874f, 0.46708178f, 0.46638498f, 0.46568836f, 0.46499192f, 0.46429565f, 0.46359956f, 0.46290365f, 0.46220792f, 0.46151237f, 0.46081701f, 0.46012184f, 0.45942685f, 0.45873206f, 0.45803745f, 0.45734304f, 0.45664882f, 0.45595480f, 0.45526097f, 0.45456735f, 0.45387393f, 0.45318071f, 0.45248769f, 0.45179488f, 0.45110228f, 0.45040988f, 0.44971770f, 0.44902573f, 0.44833398f, 0.44764244f, 0.44695112f, 0.44626001f, 0.44556913f, 0.44487847f, 0.44418803f, 0.44349782f, 0.44280784f, 0.44211809f, 0.44142856f, 0.44073927f, 0.44005021f, 0.43936139f, 0.43867280f, 0.43798445f, 0.43729635f, 0.43660848f, 0.43592086f, 0.43523348f, 0.43454635f, 0.43385947f, 0.43317284f, 0.43248646f, 0.43180033f, 0.43111445f, 0.43042884f, 0.42974348f, 0.42905838f, 0.42837354f, 0.42768897f, 0.42700466f, 0.42632061f, 0.42563683f, 0.42495333f, 0.42427009f, 0.42358712f, 0.42290443f, 0.42222202f, 0.42153988f, 0.42085802f, 0.42017644f, 0.41949515f, 0.41881414f, 0.41813341f, 0.41745297f, 0.41677282f, 0.41609295f, 0.41541338f, 0.41473411f, 0.41405513f, 0.41337644f, 0.41269805f, 0.41201997f, 0.41134218f, 0.41066470f, 0.40998752f, 0.40931065f, 0.40863408f, 0.40795783f, 0.40728188f, 0.40660625f, 0.40593093f, 0.40525593f, 0.40458124f, 0.40390687f, 0.40323283f, 0.40255910f, 0.40188570f, 0.40121263f, 0.40053988f, 0.39986746f, 0.39919537f, 0.39852361f, 0.39785218f, 0.39718109f, 0.39651034f, 0.39583992f, 0.39516984f, 0.39450010f, 0.39383071f, 0.39316166f, 0.39249295f, 0.39182460f, 0.39115659f, 0.39048893f, 0.38982162f, 0.38915467f, 0.38848807f, 0.38782183f, 0.38715595f, 0.38649043f, 0.38582527f, 0.38516047f, 0.38449603f, 0.38383197f, 0.38316827f, 0.38250494f, 0.38184198f, 0.38117939f, 0.38051717f, 0.37985534f, 0.37919387f, 0.37853279f, 0.37787209f, 0.37721177f, 0.37655183f, 0.37589228f, 0.37523311f, 0.37457433f, 0.37391594f, 0.37325795f, 0.37260034f, 0.37194313f, 0.37128631f, 0.37062989f, 0.36997387f, 0.36931825f, 0.36866304f, 0.36800822f, 0.36735381f, 0.36669981f, 0.36604621f, 0.36539303f, 0.36474025f, 0.36408789f, 0.36343595f, 0.36278441f, 0.36213330f, 0.36148260f, 0.36083233f, 0.36018247f, 0.35953304f, 0.35888404f, 0.35823546f, 0.35758730f, 0.35693958f, 0.35629229f, 0.35564543f, 0.35499901f, 0.35435302f, 0.35370747f, 0.35306235f, 0.35241768f, 0.35177345f, 0.35112966f, 0.35048632f, 0.34984342f, 0.34920097f, 0.34855897f, 0.34791742f, 0.34727632f, 0.34663567f, 0.34599549f, 0.34535575f, 0.34471648f, 0.34407767f, 0.34343931f, 0.34280142f, 0.34216400f, 0.34152704f, 0.34089054f, 0.34025452f, 0.33961896f, 0.33898388f, 0.33834927f, 0.33771514f, 0.33708148f, 0.33644830f, 0.33581560f, 0.33518338f, 0.33455164f, 0.33392039f, 0.33328962f, 0.33265933f, 0.33202954f, 0.33140023f, 0.33077142f, 0.33014310f, 0.32951527f, 0.32888794f, 0.32826110f, 0.32763477f, 0.32700893f, 0.32638360f, 0.32575876f, 0.32513444f, 0.32451061f, 0.32388730f, 0.32326449f, 0.32264220f, 0.32202042f, 0.32139914f, 0.32077839f, 0.32015815f, 0.31953843f, 0.31891922f, 0.31830054f, 0.31768238f, 0.31706474f, 0.31644763f, 0.31583104f, 0.31521499f, 0.31459946f, 0.31398446f, 0.31336999f, 0.31275606f, 0.31214266f, 0.31152980f, 0.31091747f, 0.31030569f, 0.30969445f, 0.30908374f, 0.30847359f, 0.30786397f, 0.30725491f, 0.30664639f, 0.30603842f, 0.30543100f, 0.30482414f, 0.30421782f, 0.30361207f, 0.30300687f, 0.30240222f, 0.30179814f, 0.30119462f, 0.30059166f, 0.29998926f, 0.29938743f, 0.29878616f, 0.29818547f, 0.29758534f, 0.29698578f, 0.29638680f, 0.29578838f, 0.29519055f, 0.29459329f, 0.29399660f, 0.29340050f, 0.29280498f, 0.29221004f, 0.29161568f, 0.29102191f, 0.29042872f, 0.28983612f, 0.28924411f, 0.28865269f, 0.28806186f, 0.28747163f, 0.28688199f, 0.28629294f, 0.28570449f, 0.28511664f, 0.28452940f, 0.28394275f, 0.28335670f, 0.28277126f, 0.28218643f, 0.28160220f, 0.28101858f, 0.28043557f, 0.27985317f, 0.27927139f, 0.27869022f, 0.27810966f, 0.27752972f, 0.27695040f, 0.27637169f, 0.27579361f, 0.27521615f, 0.27463931f, 0.27406310f, 0.27348751f, 0.27291255f, 0.27233822f, 0.27176452f, 0.27119146f, 0.27061902f, 0.27004722f, 0.26947605f, 0.26890552f, 0.26833563f, 0.26776638f, 0.26719777f, 0.26662980f, 0.26606248f, 0.26549580f, 0.26492976f, 0.26436438f, 0.26379964f, 0.26323555f, 0.26267212f, 0.26210934f, 0.26154721f, 0.26098574f, 0.26042492f, 0.25986476f, 0.25930527f, 0.25874643f, 0.25818825f, 0.25763074f, 0.25707390f, 0.25651771f, 0.25596220f, 0.25540736f, 0.25485318f, 0.25429968f, 0.25374685f, 0.25319469f, 0.25264321f, 0.25209240f, 0.25154228f, 0.25099283f, 0.25044406f, 0.24989598f, 0.24934857f, 0.24880185f, 0.24825582f, 0.24771047f, 0.24716582f, 0.24662185f, 0.24607857f, 0.24553598f, 0.24499409f, 0.24445289f, 0.24391239f, 0.24337258f, 0.24283347f, 0.24229507f, 0.24175736f, 0.24122036f, 0.24068405f, 0.24014846f, 0.23961357f, 0.23907938f, 0.23854591f, 0.23801314f, 0.23748109f, 0.23694975f, 0.23641912f, 0.23588920f, 0.23536001f, 0.23483152f, 0.23430376f, 0.23377672f, 0.23325040f, 0.23272480f, 0.23219992f, 0.23167577f, 0.23115234f, 0.23062964f, 0.23010767f, 0.22958643f, 0.22906592f, 0.22854615f, 0.22802710f, 0.22750879f, 0.22699122f, 0.22647438f, 0.22595828f, 0.22544292f, 0.22492830f, 0.22441442f, 0.22390129f, 0.22338889f, 0.22287725f, 0.22236635f, 0.22185620f, 0.22134680f, 0.22083815f, 0.22033024f, 0.21982310f, 0.21931670f, 0.21881106f, 0.21830618f, 0.21780205f, 0.21729869f, 0.21679608f, 0.21629423f, 0.21579315f, 0.21529283f, 0.21479327f, 0.21429448f, 0.21379646f, 0.21329920f, 0.21280271f, 0.21230700f, 0.21181205f, 0.21131788f, 0.21082448f, 0.21033185f, 0.20984001f, 0.20934894f, 0.20885864f, 0.20836913f, 0.20788040f, 0.20739245f, 0.20690528f, 0.20641890f, 0.20593330f, 0.20544849f, 0.20496447f, 0.20448123f, 0.20399879f, 0.20351713f, 0.20303627f, 0.20255620f, 0.20207693f, 0.20159845f, 0.20112077f, 0.20064389f, 0.20016780f, 0.19969252f, 0.19921803f, 0.19874435f, 0.19827147f, 0.19779940f, 0.19732813f, 0.19685767f, 0.19638802f, 0.19591917f, 0.19545114f, 0.19498392f, 0.19451751f, 0.19405191f, 0.19358713f, 0.19312316f, 0.19266001f, 0.19219767f, 0.19173616f, 0.19127547f, 0.19081559f, 0.19035654f, 0.18989831f, 0.18944091f, 0.18898433f, 0.18852858f, 0.18807365f, 0.18761956f, 0.18716629f, 0.18671385f, 0.18626225f, 0.18581148f, 0.18536154f, 0.18491244f, 0.18446417f, 0.18401674f, 0.18357015f, 0.18312440f, 0.18267948f, 0.18223541f, 0.18179218f, 0.18134980f, 0.18090826f, 0.18046756f, 0.18002771f, 0.17958871f, 0.17915055f, 0.17871325f, 0.17827680f, 0.17784120f, 0.17740645f, 0.17697255f, 0.17653951f, 0.17610732f, 0.17567600f, 0.17524552f, 0.17481591f, 0.17438716f, 0.17395927f, 0.17353224f, 0.17310607f, 0.17268077f, 0.17225633f, 0.17183276f, 0.17141005f, 0.17098821f, 0.17056724f, 0.17014714f, 0.16972791f, 0.16930955f, 0.16889207f, 0.16847546f, 0.16805972f, 0.16764486f, 0.16723088f, 0.16681777f, 0.16640554f, 0.16599419f, 0.16558373f, 0.16517414f, 0.16476544f, 0.16435761f, 0.16395068f, 0.16354463f, 0.16313946f, 0.16273518f, 0.16233180f, 0.16192930f, 0.16152769f, 0.16112697f, 0.16072714f, 0.16032820f, 0.15993016f, 0.15953302f, 0.15913677f, 0.15874141f, 0.15834696f, 0.15795340f, 0.15756074f, 0.15716899f, 0.15677813f, 0.15638818f, 0.15599913f, 0.15561098f, 0.15522374f, 0.15483740f, 0.15445197f, 0.15406745f, 0.15368384f, 0.15330113f, 0.15291934f, 0.15253846f, 0.15215849f, 0.15177943f, 0.15140129f, 0.15102406f, 0.15064775f, 0.15027235f, 0.14989788f, 0.14952432f, 0.14915168f, 0.14877996f, 0.14840916f, 0.14803928f, 0.14767033f, 0.14730229f, 0.14693519f, 0.14656901f, 0.14620375f, 0.14583943f, 0.14547603f, 0.14511355f, 0.14475201f, 0.14439140f, 0.14403172f, 0.14367298f, 0.14331516f, 0.14295828f, 0.14260234f, 0.14224733f, 0.14189325f, 0.14154012f, 0.14118792f, 0.14083666f, 0.14048634f, 0.14013696f, 0.13978853f, 0.13944103f, 0.13909448f, 0.13874887f, 0.13840421f, 0.13806049f, 0.13771771f, 0.13737589f, 0.13703501f, 0.13669508f, 0.13635610f, 0.13601808f, 0.13568100f, 0.13534487f, 0.13500970f, 0.13467548f, 0.13434221f, 0.13400990f, 0.13367855f, 0.13334815f, 0.13301871f, 0.13269023f, 0.13236270f, 0.13203614f, 0.13171054f, 0.13138589f, 0.13106221f, 0.13073950f, 0.13041774f, 0.13009695f, 0.12977713f, 0.12945827f, 0.12914038f, 0.12882345f, 0.12850749f, 0.12819251f, 0.12787849f, 0.12756544f, 0.12725336f, 0.12694225f, 0.12663212f, 0.12632296f, 0.12601477f, 0.12570756f, 0.12540132f, 0.12509606f, 0.12479178f, 0.12448847f, 0.12418615f, 0.12388480f, 0.12358443f, 0.12328504f, 0.12298663f, 0.12268920f, 0.12239276f, 0.12209730f, 0.12180282f, 0.12150933f, 0.12121682f, 0.12092530f, 0.12063477f, 0.12034522f, 0.12005666f, 0.11976909f, 0.11948251f, 0.11919692f, 0.11891232f, 0.11862871f, 0.11834609f, 0.11806446f, 0.11778383f, 0.11750420f, 0.11722555f, 0.11694791f, 0.11667125f, 0.11639560f, 0.11612094f, 0.11584728f, 0.11557462f, 0.11530296f, 0.11503230f, 0.11476264f, 0.11449398f, 0.11422632f, 0.11395966f, 0.11369401f, 0.11342936f, 0.11316571f, 0.11290307f, 0.11264144f, 0.11238081f, 0.11212119f, 0.11186257f, 0.11160496f, 0.11134837f, 0.11109278f, 0.11083820f, 0.11058463f, 0.11033207f, 0.11008052f, 0.10982999f, 0.10958047f, 0.10933196f, 0.10908446f, 0.10883798f, 0.10859252f, 0.10834807f, 0.10810464f, 0.10786222f, 0.10762082f, 0.10738044f, 0.10714108f, 0.10690274f, 0.10666541f, 0.10642911f, 0.10619382f, 0.10595956f, 0.10572632f, 0.10549411f, 0.10526291f, 0.10503274f, 0.10480359f, 0.10457547f, 0.10434837f, 0.10412230f, 0.10389726f, 0.10367324f, 0.10345025f, 0.10322828f, 0.10300735f, 0.10278744f, 0.10256856f, 0.10235071f, 0.10213390f, 0.10191811f, 0.10170335f, 0.10148963f, 0.10127694f, 0.10106528f, 0.10085466f, 0.10064507f, 0.10043651f, 0.10022899f, 0.10002250f, 0.09981705f, 0.09961264f, 0.09940926f, 0.09920692f, 0.09900562f, 0.09880535f, 0.09860613f, 0.09840794f, 0.09821079f, 0.09801469f, 0.09781962f, 0.09762559f, 0.09743261f, 0.09724067f, 0.09704977f, 0.09685991f, 0.09667110f, 0.09648333f, 0.09629660f, 0.09611092f, 0.09592629f, 0.09574270f, 0.09556015f, 0.09537865f, 0.09519820f, 0.09501880f, 0.09484044f, 0.09466313f, 0.09448687f, 0.09431166f, 0.09413750f, 0.09396439f, 0.09379232f, 0.09362131f, 0.09345135f, 0.09328244f, 0.09311458f, 0.09294778f, 0.09278202f, 0.09261732f, 0.09245367f, 0.09229108f, 0.09212954f, 0.09196906f, 0.09180962f, 0.09165125f, 0.09149393f, 0.09133767f, 0.09118246f, 0.09102831f, 0.09087521f, 0.09072318f, 0.09057220f, 0.09042228f, 0.09027341f, 0.09012561f, 0.08997886f, 0.08983318f, 0.08968855f, 0.08954499f, 0.08940248f, 0.08926104f, 0.08912066f, 0.08898133f, 0.08884307f, 0.08870588f, 0.08856974f, 0.08843467f, 0.08830066f, 0.08816771f, 0.08803583f, 0.08790501f, 0.08777526f, 0.08764657f, 0.08751895f, 0.08739239f, 0.08726690f, 0.08714247f, 0.08701911f, 0.08689681f, 0.08677558f, 0.08665542f, 0.08653633f, 0.08641830f, 0.08630134f, 0.08618545f, 0.08607063f, 0.08595688f, 0.08584419f, 0.08573258f, 0.08562203f, 0.08551256f, 0.08540415f, 0.08529682f, 0.08519055f, 0.08508536f, 0.08498123f, 0.08487818f, 0.08477620f, 0.08467529f, 0.08457545f, 0.08447669f, 0.08437900f, 0.08428238f, 0.08418683f, 0.08409235f, 0.08399895f, 0.08390663f, 0.08381537f, 0.08372519f, 0.08363609f, 0.08354806f, 0.08346110f, 0.08337522f, 0.08329041f, 0.08320668f, 0.08312403f, 0.08304245f, 0.08296194f, 0.08288251f, 0.08280416f, 0.08272689f, 0.08265069f, 0.08257556f, 0.08250152f, 0.08242855f, 0.08235666f, 0.08228584f, 0.08221611f, 0.08214745f, 0.08207987f, 0.08201336f, 0.08194794f, 0.08188359f, 0.08182033f, 0.08175814f, 0.08169703f, 0.08163700f, 0.08157804f, 0.08152017f, 0.08146338f, 0.08140766f, 0.08135303f, 0.08129947f, 0.08124700f, 0.08119560f, 0.08114529f, 0.08109605f, 0.08104790f, 0.08100083f, 0.08095483f, 0.08090992f, 0.08086609f, 0.08082334f, 0.08078167f, 0.08074108f, 0.08070158f, 0.08066315f, 0.08062581f, 0.08058954f, 0.08055436f, 0.08052026f, 0.08048724f, 0.08045531f, 0.08042445f, 0.08039468f, 0.08036599f, 0.08033838f, 0.08031186f, 0.08028641f, 0.08026205f, 0.08023877f, 0.08021657f, 0.08019546f, 0.08017543f, 0.08015648f, 0.08013861f, 0.08012183f, 0.08010613f, 0.08009151f, 0.08007797f, 0.08006552f, 0.08005415f, 0.08004386f, 0.08003465f, 0.08002653f, 0.08001949f, 0.08001354f, 0.08000866f, 0.08000487f, 0.08000217f, 0.08000054f, 0.08000000f}; diff --git a/User/fft_windows.h b/User/fft_windows.h new file mode 100644 index 0000000..460d784 --- /dev/null +++ b/User/fft_windows.h @@ -0,0 +1,14 @@ +#ifndef FFT_WINDOWS_H +#define FFT_WINDOWS_H + +extern const float win_hamming_16[]; +extern const float win_hamming_32[]; +extern const float win_hamming_64[]; +extern const float win_hamming_128[]; +extern const float win_hamming_256[]; +extern const float win_hamming_512[]; +extern const float win_hamming_1024[]; +extern const float win_hamming_2048[]; +//extern const float win_hamming_4096[]; + +#endif // FFT_WINDOWS_H diff --git a/User/user_main.c b/User/user_main.c index e0b5a62..1ac33a5 100644 --- a/User/user_main.c +++ b/User/user_main.c @@ -12,6 +12,7 @@ #include "user_main.h" #include "debounce.h" #include "debug.h" +#include "fft_windows.h" // 512 = show 0-5 kHz // 256 = show 0-10 kHz @@ -31,13 +32,16 @@ #define BTN_DOWN 4 // Y axis scaling factors -#define WAVEFORM_SCALE 0.008f +#define WAVEFORM_SCALE 0.007f #define FFT_SCALE 0.25f * 0.3f #define FFT_SPINDLE_SCALE_MULT 0.5f uint32_t audio_samples[SAMPLE_COUNT * 2]; // 2x size needed for complex FFT float *audio_samples_f = (float *) audio_samples; +// counter for auto repeat +ms_time_t btn_press_cnt = 0; + /** Dot matrix display instance */ DotMatrix_Cfg *disp; @@ -50,13 +54,12 @@ uint8_t brightness = 4; /** active rendering mode (visualisation preset) */ enum { - MODE_WAVEFORM = 0, - MODE_SPECTRUM = 1, - MODE_SPECTRUM2 = 2, + MODE_SPECTRUM, + MODE_SPECTRUM2, + MODE_WAVEFORM, + MAX_MODE } render_mode; -#define MODE_MAX MODE_SPECTRUM2 - bool up_pressed = false; bool down_pressed = false; bool left_pressed = false; @@ -134,7 +137,7 @@ void spread_samples_for_fft() { for (int i = SAMPLE_COUNT - 1; i >= 0; i--) { audio_samples_f[i * 2 + 1] = 0; // imaginary - audio_samples_f[i * 2] = audio_samples_f[i]; // real + audio_samples_f[i * 2] = audio_samples_f[i] * win_hamming_512[i]; // real } } @@ -243,25 +246,41 @@ static void gamepad_button_cb(uint32_t btn, bool press) switch (btn) { case BTN_UP: up_pressed = press; + if (press) { + btn_press_cnt = 0; + y_scale += 0.5f; + } break; case BTN_DOWN: down_pressed = press; + if (press) { + btn_press_cnt = 0; + if (y_scale > 0.55) y_scale -= 0.5f; + } break; case BTN_LEFT: left_pressed = press; + if (press) { + btn_press_cnt = 0; + if (brightness > 0) brightness--; + } break; case BTN_RIGHT: right_pressed = press; + if (press) { + btn_press_cnt = 0; + if (brightness < 15) brightness++; + } break; case BTN_CENTER: if (!press) { // center button released // cycle through modes - if (render_mode++ == MODE_MAX) { + if (++render_mode == MAX_MODE) { render_mode = 0; } } @@ -345,35 +364,25 @@ void user_main() user_init(); ms_time_t counter1 = 0; - ms_time_t counter2 = 0; - ms_time_t btn_scale_cnt = 0; - ms_time_t btn_brt_cnt = 0; while (1) { if (ms_loop_elapsed(&counter1, 500)) { // Blink HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); } - // hold-to-repeat for up/down buttons (sensitivity) + // hold-to-repeat // This is not the correct way to do it, but good enough - if (ms_loop_elapsed(&btn_scale_cnt, 50)) { + if (ms_loop_elapsed(&btn_press_cnt, 100)) { if (up_pressed) { - y_scale += 0.1; + y_scale += 0.5; } if (down_pressed) { - if (y_scale > 0.1) { - y_scale -= 0.1; + if (y_scale > 0.55) { + y_scale -= 0.5; } } - if (up_pressed || down_pressed) { - dbg("scale = %.1f", y_scale); - } - } - - // hold-to-repeat for left/right buttons (brightness) - if (ms_loop_elapsed(&btn_brt_cnt, 200)) { if (left_pressed) { if (brightness > 0) { brightness--; @@ -386,6 +395,10 @@ void user_main() } } + if (up_pressed || down_pressed) { + dbg("scale = %.1f", y_scale); + } + if (left_pressed || right_pressed) { dmtx_intensity(disp, brightness); }