diff --git a/libdcadec/fir_float.h b/libdcadec/fir_float.h index 3c3f280..df1e531 100644 --- a/libdcadec/fir_float.h +++ b/libdcadec/fir_float.h @@ -16,270 +16,530 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#define SCALE(x) ((x) * M_SQRT2 * 128) + // Annex D.8 - 32-band interpolation FIR, perfect reconstruction static const double band_fir_perfect[512] = { - 1.140033200E-10, 7.138742100E-11, -8.358679600E-09, -2.529296600E-08, - -9.130198800E-08, -2.771560000E-07, -5.746147600E-07, -3.712986200E-07, - -4.468735700E-07, -5.697322600E-07, -6.300390500E-07, -6.677818900E-07, - -6.770656500E-07, -6.601852300E-07, -6.193701600E-07, -5.586146700E-07, - 7.034745600E-07, 8.348606100E-07, 9.544782800E-07, 1.052683900E-06, - 1.119829700E-06, 1.144180200E-06, 1.124542400E-06, 9.822894700E-07, - 8.920065800E-07, 1.560941800E-06, 8.454480100E-07, 3.167104300E-07, - 1.028149000E-07, 4.147967800E-08, -6.821591800E-10, -1.611726200E-09, - -2.668096400E-09, -3.377455500E-09, 6.820855300E-09, 3.715261200E-09, - 1.643020800E-08, 1.007547900E-07, 2.448299500E-07, 1.306777300E-06, - 1.904890000E-06, 2.555774300E-06, 3.253336000E-06, 3.953604500E-06, - 4.617880200E-06, 5.210775600E-06, 5.696789700E-06, 6.046428700E-06, - 7.614387900E-06, 7.678809700E-06, 7.533601500E-06, 7.179758900E-06, - 6.629955000E-06, 5.908209500E-06, 5.044609200E-06, 4.187209700E-06, - 3.139397100E-06, 6.650809100E-07, 3.073465500E-07, 5.699348500E-08, - 1.510238900E-08, 3.384827600E-08, -3.227406600E-08, -3.772031200E-08, - 8.454083600E-08, 6.479789100E-08, 1.236415900E-06, 2.480143600E-06, - 3.694976800E-06, 3.742137100E-06, 3.262621300E-06, 7.476824700E-06, - 9.321632700E-06, 1.121856000E-05, 1.317522400E-05, 1.505747500E-05, - 1.676702500E-05, 1.819741000E-05, 1.925789500E-05, 1.987389300E-05, - -3.076839000E-05, -3.254459900E-05, -3.367812600E-05, -3.411568400E-05, - -3.382472000E-05, -3.280414400E-05, -3.109003600E-05, -2.861654300E-05, - -2.571454500E-05, -1.870056200E-05, -1.771374800E-05, -1.568432200E-05, - -1.128458200E-05, -6.805568100E-06, -5.671807300E-07, -9.974569000E-07, - -1.466421500E-06, -1.846174800E-06, 7.763173700E-08, 1.809597500E-06, - 4.157326000E-06, 7.240269200E-06, 1.073666400E-05, 2.089583800E-05, - 2.647159500E-05, 3.196094400E-05, 3.698112500E-05, 4.149260300E-05, - 4.534151200E-05, 4.846834800E-05, 5.081695700E-05, 5.236303900E-05, - 3.803557300E-06, 7.916183300E-06, 1.191309700E-05, 1.561346600E-05, - 1.881671400E-05, 2.131957100E-05, 2.295038200E-05, 2.354812700E-05, - 2.291622100E-05, 2.497457200E-05, 1.979628700E-05, 1.390508100E-05, - 7.179248900E-06, -1.614022200E-07, -1.518084500E-05, -1.610369300E-05, - 1.994364800E-05, 1.774116500E-05, 4.511232400E-05, 5.311715600E-05, - 6.144976200E-05, 7.052899300E-05, 7.984114900E-05, 8.597821200E-05, - 9.341758200E-05, 1.002681400E-04, 1.064814700E-04, 1.119841200E-04, - 1.165901700E-04, 1.202018700E-04, 1.226936800E-04, 1.237377900E-04, - 1.200453700E-04, 1.185602000E-04, 1.152534400E-04, 1.097435100E-04, - 1.018237000E-04, 9.130172200E-05, 7.793692700E-05, 6.157321800E-05, - 4.214289700E-05, 2.010055900E-05, -6.512868000E-06, -3.623958500E-05, - -6.898332300E-05, -1.052143400E-04, -1.311540500E-04, -1.772621900E-04, - -2.231129500E-04, -2.678985000E-04, -3.353960600E-04, -3.909221300E-04, - -4.488403900E-04, -5.091327500E-04, -5.717321000E-04, -6.360244700E-04, - -7.021067600E-04, -7.695597500E-04, -8.380918900E-04, -9.072555100E-04, - -9.767158300E-04, -1.045985500E-03, -1.114606900E-03, -1.182107000E-03, - -1.251459700E-03, -1.314813200E-03, -1.375058300E-03, -1.431717500E-03, - -1.484159500E-03, -1.531686400E-03, -1.573715600E-03, -1.609496400E-03, - -1.638393400E-03, -1.659751400E-03, -1.672691700E-03, -1.676540900E-03, - -1.670887400E-03, -1.654649800E-03, -1.632849400E-03, -1.592423900E-03, - 1.541196600E-03, 1.478566700E-03, 1.394017000E-03, 1.301623400E-03, - 1.194737700E-03, 1.072608600E-03, 9.349224800E-04, 7.810380900E-04, - 6.109076600E-04, 4.241331700E-04, 2.204804700E-04, -2.272228400E-07, - -2.380696500E-04, -4.930996000E-04, -7.653038000E-04, -1.054538000E-03, - -1.360519200E-03, -1.683383000E-03, -2.022614600E-03, -2.377899500E-03, - -2.748797700E-03, -3.134797500E-03, -3.535329200E-03, -3.949734800E-03, - -4.377291000E-03, -4.817122000E-03, -5.268542300E-03, -5.730478300E-03, - -6.202005100E-03, -6.681936000E-03, -7.167914500E-03, -7.662045500E-03, - -8.160839200E-03, -8.663190500E-03, -9.169050700E-03, -9.675131500E-03, - -1.018101800E-02, -1.068536400E-02, -1.118674000E-02, -1.168377500E-02, - -1.217496400E-02, -1.265891600E-02, -1.313420500E-02, -1.359941000E-02, - -1.405313100E-02, -1.449398400E-02, -1.492061500E-02, -1.533170500E-02, - -1.572581500E-02, -1.610200000E-02, -1.645893800E-02, -1.679548100E-02, - -1.711054800E-02, -1.740312600E-02, -1.767225900E-02, -1.791707200E-02, - -1.813675700E-02, -1.833061700E-02, -1.849797400E-02, -1.863830100E-02, - -1.875108700E-02, -1.883604000E-02, -1.889315300E-02, -1.892151600E-02, - 1.892151600E-02, 1.889315300E-02, 1.883604000E-02, 1.875108700E-02, - 1.863830100E-02, 1.849797400E-02, 1.833061700E-02, 1.813675700E-02, - 1.791707200E-02, 1.767225900E-02, 1.740312600E-02, 1.711054800E-02, - 1.679548100E-02, 1.645893800E-02, 1.610200000E-02, 1.572581500E-02, - 1.533170500E-02, 1.492061500E-02, 1.449398400E-02, 1.405313100E-02, - 1.359941000E-02, 1.313420500E-02, 1.265891600E-02, 1.217496400E-02, - 1.168377500E-02, 1.118674000E-02, 1.068536400E-02, 1.018101800E-02, - 9.675131500E-03, 9.169050700E-03, 8.663190500E-03, 8.160839200E-03, - 7.662045500E-03, 7.167914500E-03, 6.681936000E-03, 6.202005100E-03, - 5.730478300E-03, 5.268542300E-03, 4.817122000E-03, 4.377291000E-03, - 3.949734800E-03, 3.535329200E-03, 3.134797500E-03, 2.748797700E-03, - 2.377899500E-03, 2.022614600E-03, 1.683383000E-03, 1.360519200E-03, - 1.054538000E-03, 7.653038000E-04, 4.930996000E-04, 2.380696500E-04, - 2.272228400E-07, -2.204804700E-04, -4.241331700E-04, -6.109076600E-04, - -7.810380900E-04, -9.349224800E-04, -1.072608600E-03, -1.194737700E-03, - -1.301623400E-03, -1.394017000E-03, -1.478566700E-03, -1.541196600E-03, - 1.592423900E-03, 1.632849400E-03, 1.654649800E-03, 1.670887400E-03, - 1.676540900E-03, 1.672691700E-03, 1.659751400E-03, 1.638393400E-03, - 1.609496400E-03, 1.573715600E-03, 1.531686400E-03, 1.484159500E-03, - 1.431717500E-03, 1.375058300E-03, 1.314813200E-03, 1.251459700E-03, - 1.182107000E-03, 1.114606900E-03, 1.045985500E-03, 9.767158300E-04, - 9.072555100E-04, 8.380918900E-04, 7.695597500E-04, 7.021067600E-04, - 6.360244700E-04, 5.717321000E-04, 5.091327500E-04, 4.488403900E-04, - 3.909221300E-04, 3.353960600E-04, 2.678985000E-04, 2.231129500E-04, - 1.772621900E-04, 1.311540500E-04, 1.052143400E-04, 6.898332300E-05, - 3.623958500E-05, 6.512868000E-06, -2.010055900E-05, -4.214289700E-05, - -6.157321800E-05, -7.793692700E-05, -9.130172200E-05, -1.018237000E-04, - -1.097435100E-04, -1.152534400E-04, -1.185602000E-04, -1.200453700E-04, - -1.237377900E-04, -1.226936800E-04, -1.202018700E-04, -1.165901700E-04, - -1.119841200E-04, -1.064814700E-04, -1.002681400E-04, -9.341758200E-05, - -8.597821200E-05, -7.984114900E-05, -7.052899300E-05, -6.144976200E-05, - -5.311715600E-05, -4.511232400E-05, -1.774116500E-05, -1.994364800E-05, - 1.610369300E-05, 1.518084500E-05, 1.614022200E-07, -7.179248900E-06, - -1.390508100E-05, -1.979628700E-05, -2.497457200E-05, -2.291622100E-05, - -2.354812700E-05, -2.295038200E-05, -2.131957100E-05, -1.881671400E-05, - -1.561346600E-05, -1.191309700E-05, -7.916183300E-06, -3.803557300E-06, - -5.236303900E-05, -5.081695700E-05, -4.846834800E-05, -4.534151200E-05, - -4.149260300E-05, -3.698112500E-05, -3.196094400E-05, -2.647159500E-05, - -2.089583800E-05, -1.073666400E-05, -7.240269200E-06, -4.157326000E-06, - -1.809597500E-06, -7.763173700E-08, 1.846174800E-06, 1.466421500E-06, - 9.974569000E-07, 5.671807300E-07, 6.805568100E-06, 1.128458200E-05, - 1.568432200E-05, 1.771374800E-05, 1.870056200E-05, 2.571454500E-05, - 2.861654300E-05, 3.109003600E-05, 3.280414400E-05, 3.382472000E-05, - 3.411568400E-05, 3.367812600E-05, 3.254459900E-05, 3.076839000E-05, - -1.987389300E-05, -1.925789500E-05, -1.819741000E-05, -1.676702500E-05, - -1.505747500E-05, -1.317522400E-05, -1.121856000E-05, -9.321632700E-06, - -7.476824700E-06, -3.262621300E-06, -3.742137100E-06, -3.694976800E-06, - -2.480143600E-06, -1.236415900E-06, -6.479789100E-08, -8.454083600E-08, - 3.772031200E-08, 3.227406600E-08, -3.384827600E-08, -1.510238900E-08, - -5.699348500E-08, -3.073465500E-07, -6.650809100E-07, -3.139397100E-06, - -4.187209700E-06, -5.044609200E-06, -5.908209500E-06, -6.629955000E-06, - -7.179758900E-06, -7.533601500E-06, -7.678809700E-06, -7.614387900E-06, - -6.046428700E-06, -5.696789700E-06, -5.210775600E-06, -4.617880200E-06, - -3.953604500E-06, -3.253336000E-06, -2.555774300E-06, -1.904890000E-06, - -1.306777300E-06, -2.448299500E-07, -1.007547900E-07, -1.643020800E-08, - -3.715261200E-09, -6.820855300E-09, 3.377455500E-09, 2.668096400E-09, - 1.611726200E-09, 6.821591800E-10, -4.147967800E-08, -1.028149000E-07, - -3.167104300E-07, -8.454480100E-07, -1.560941800E-06, -8.920065800E-07, - -9.822894700E-07, -1.124542400E-06, -1.144180200E-06, -1.119829700E-06, - -1.052683900E-06, -9.544782800E-07, -8.348606100E-07, -7.034745600E-07, - 5.586146700E-07, 6.193701600E-07, 6.601852300E-07, 6.770656500E-07, - 6.677818900E-07, 6.300390500E-07, 5.697322600E-07, 4.468735700E-07, - 3.712986200E-07, 5.746147600E-07, 2.771560000E-07, 9.130198800E-08, - 2.529296600E-08, 8.358679600E-09, -7.138742100E-11, -1.140033200E-10 + SCALE( 1.140033200E-10), SCALE( 7.138742100E-11), + SCALE(-8.358679600E-09), SCALE(-2.529296600E-08), + SCALE(-9.130198800E-08), SCALE(-2.771560000E-07), + SCALE(-5.746147600E-07), SCALE(-3.712986200E-07), + SCALE(-4.468735700E-07), SCALE(-5.697322600E-07), + SCALE(-6.300390500E-07), SCALE(-6.677818900E-07), + SCALE(-6.770656500E-07), SCALE(-6.601852300E-07), + SCALE(-6.193701600E-07), SCALE(-5.586146700E-07), + -SCALE( 7.034745600E-07), -SCALE( 8.348606100E-07), + -SCALE( 9.544782800E-07), -SCALE( 1.052683900E-06), + -SCALE( 1.119829700E-06), -SCALE( 1.144180200E-06), + -SCALE( 1.124542400E-06), -SCALE( 9.822894700E-07), + -SCALE( 8.920065800E-07), -SCALE( 1.560941800E-06), + -SCALE( 8.454480100E-07), -SCALE( 3.167104300E-07), + -SCALE( 1.028149000E-07), -SCALE( 4.147967800E-08), + -SCALE(-6.821591800E-10), -SCALE(-1.611726200E-09), + -SCALE(-2.668096400E-09), -SCALE(-3.377455500E-09), + -SCALE( 6.820855300E-09), -SCALE( 3.715261200E-09), + -SCALE( 1.643020800E-08), -SCALE( 1.007547900E-07), + -SCALE( 2.448299500E-07), -SCALE( 1.306777300E-06), + -SCALE( 1.904890000E-06), -SCALE( 2.555774300E-06), + -SCALE( 3.253336000E-06), -SCALE( 3.953604500E-06), + -SCALE( 4.617880200E-06), -SCALE( 5.210775600E-06), + -SCALE( 5.696789700E-06), -SCALE( 6.046428700E-06), + -SCALE( 7.614387900E-06), -SCALE( 7.678809700E-06), + -SCALE( 7.533601500E-06), -SCALE( 7.179758900E-06), + -SCALE( 6.629955000E-06), -SCALE( 5.908209500E-06), + -SCALE( 5.044609200E-06), -SCALE( 4.187209700E-06), + -SCALE( 3.139397100E-06), -SCALE( 6.650809100E-07), + -SCALE( 3.073465500E-07), -SCALE( 5.699348500E-08), + -SCALE( 1.510238900E-08), -SCALE( 3.384827600E-08), + -SCALE(-3.227406600E-08), -SCALE(-3.772031200E-08), + SCALE( 8.454083600E-08), SCALE( 6.479789100E-08), + SCALE( 1.236415900E-06), SCALE( 2.480143600E-06), + SCALE( 3.694976800E-06), SCALE( 3.742137100E-06), + SCALE( 3.262621300E-06), SCALE( 7.476824700E-06), + SCALE( 9.321632700E-06), SCALE( 1.121856000E-05), + SCALE( 1.317522400E-05), SCALE( 1.505747500E-05), + SCALE( 1.676702500E-05), SCALE( 1.819741000E-05), + SCALE( 1.925789500E-05), SCALE( 1.987389300E-05), + -SCALE(-3.076839000E-05), -SCALE(-3.254459900E-05), + -SCALE(-3.367812600E-05), -SCALE(-3.411568400E-05), + -SCALE(-3.382472000E-05), -SCALE(-3.280414400E-05), + -SCALE(-3.109003600E-05), -SCALE(-2.861654300E-05), + -SCALE(-2.571454500E-05), -SCALE(-1.870056200E-05), + -SCALE(-1.771374800E-05), -SCALE(-1.568432200E-05), + -SCALE(-1.128458200E-05), -SCALE(-6.805568100E-06), + -SCALE(-5.671807300E-07), -SCALE(-9.974569000E-07), + -SCALE(-1.466421500E-06), -SCALE(-1.846174800E-06), + -SCALE( 7.763173700E-08), -SCALE( 1.809597500E-06), + -SCALE( 4.157326000E-06), -SCALE( 7.240269200E-06), + -SCALE( 1.073666400E-05), -SCALE( 2.089583800E-05), + -SCALE( 2.647159500E-05), -SCALE( 3.196094400E-05), + -SCALE( 3.698112500E-05), -SCALE( 4.149260300E-05), + -SCALE( 4.534151200E-05), -SCALE( 4.846834800E-05), + -SCALE( 5.081695700E-05), -SCALE( 5.236303900E-05), + -SCALE( 3.803557300E-06), -SCALE( 7.916183300E-06), + -SCALE( 1.191309700E-05), -SCALE( 1.561346600E-05), + -SCALE( 1.881671400E-05), -SCALE( 2.131957100E-05), + -SCALE( 2.295038200E-05), -SCALE( 2.354812700E-05), + -SCALE( 2.291622100E-05), -SCALE( 2.497457200E-05), + -SCALE( 1.979628700E-05), -SCALE( 1.390508100E-05), + -SCALE( 7.179248900E-06), -SCALE(-1.614022200E-07), + -SCALE(-1.518084500E-05), -SCALE(-1.610369300E-05), + SCALE( 1.994364800E-05), SCALE( 1.774116500E-05), + SCALE( 4.511232400E-05), SCALE( 5.311715600E-05), + SCALE( 6.144976200E-05), SCALE( 7.052899300E-05), + SCALE( 7.984114900E-05), SCALE( 8.597821200E-05), + SCALE( 9.341758200E-05), SCALE( 1.002681400E-04), + SCALE( 1.064814700E-04), SCALE( 1.119841200E-04), + SCALE( 1.165901700E-04), SCALE( 1.202018700E-04), + SCALE( 1.226936800E-04), SCALE( 1.237377900E-04), + -SCALE( 1.200453700E-04), -SCALE( 1.185602000E-04), + -SCALE( 1.152534400E-04), -SCALE( 1.097435100E-04), + -SCALE( 1.018237000E-04), -SCALE( 9.130172200E-05), + -SCALE( 7.793692700E-05), -SCALE( 6.157321800E-05), + -SCALE( 4.214289700E-05), -SCALE( 2.010055900E-05), + -SCALE(-6.512868000E-06), -SCALE(-3.623958500E-05), + -SCALE(-6.898332300E-05), -SCALE(-1.052143400E-04), + -SCALE(-1.311540500E-04), -SCALE(-1.772621900E-04), + -SCALE(-2.231129500E-04), -SCALE(-2.678985000E-04), + -SCALE(-3.353960600E-04), -SCALE(-3.909221300E-04), + -SCALE(-4.488403900E-04), -SCALE(-5.091327500E-04), + -SCALE(-5.717321000E-04), -SCALE(-6.360244700E-04), + -SCALE(-7.021067600E-04), -SCALE(-7.695597500E-04), + -SCALE(-8.380918900E-04), -SCALE(-9.072555100E-04), + -SCALE(-9.767158300E-04), -SCALE(-1.045985500E-03), + -SCALE(-1.114606900E-03), -SCALE(-1.182107000E-03), + -SCALE(-1.251459700E-03), -SCALE(-1.314813200E-03), + -SCALE(-1.375058300E-03), -SCALE(-1.431717500E-03), + -SCALE(-1.484159500E-03), -SCALE(-1.531686400E-03), + -SCALE(-1.573715600E-03), -SCALE(-1.609496400E-03), + -SCALE(-1.638393400E-03), -SCALE(-1.659751400E-03), + -SCALE(-1.672691700E-03), -SCALE(-1.676540900E-03), + -SCALE(-1.670887400E-03), -SCALE(-1.654649800E-03), + -SCALE(-1.632849400E-03), -SCALE(-1.592423900E-03), + SCALE( 1.541196600E-03), SCALE( 1.478566700E-03), + SCALE( 1.394017000E-03), SCALE( 1.301623400E-03), + SCALE( 1.194737700E-03), SCALE( 1.072608600E-03), + SCALE( 9.349224800E-04), SCALE( 7.810380900E-04), + SCALE( 6.109076600E-04), SCALE( 4.241331700E-04), + SCALE( 2.204804700E-04), SCALE(-2.272228400E-07), + SCALE(-2.380696500E-04), SCALE(-4.930996000E-04), + SCALE(-7.653038000E-04), SCALE(-1.054538000E-03), + -SCALE(-1.360519200E-03), -SCALE(-1.683383000E-03), + -SCALE(-2.022614600E-03), -SCALE(-2.377899500E-03), + -SCALE(-2.748797700E-03), -SCALE(-3.134797500E-03), + -SCALE(-3.535329200E-03), -SCALE(-3.949734800E-03), + -SCALE(-4.377291000E-03), -SCALE(-4.817122000E-03), + -SCALE(-5.268542300E-03), -SCALE(-5.730478300E-03), + -SCALE(-6.202005100E-03), -SCALE(-6.681936000E-03), + -SCALE(-7.167914500E-03), -SCALE(-7.662045500E-03), + -SCALE(-8.160839200E-03), -SCALE(-8.663190500E-03), + -SCALE(-9.169050700E-03), -SCALE(-9.675131500E-03), + -SCALE(-1.018101800E-02), -SCALE(-1.068536400E-02), + -SCALE(-1.118674000E-02), -SCALE(-1.168377500E-02), + -SCALE(-1.217496400E-02), -SCALE(-1.265891600E-02), + -SCALE(-1.313420500E-02), -SCALE(-1.359941000E-02), + -SCALE(-1.405313100E-02), -SCALE(-1.449398400E-02), + -SCALE(-1.492061500E-02), -SCALE(-1.533170500E-02), + -SCALE(-1.572581500E-02), -SCALE(-1.610200000E-02), + -SCALE(-1.645893800E-02), -SCALE(-1.679548100E-02), + -SCALE(-1.711054800E-02), -SCALE(-1.740312600E-02), + -SCALE(-1.767225900E-02), -SCALE(-1.791707200E-02), + -SCALE(-1.813675700E-02), -SCALE(-1.833061700E-02), + -SCALE(-1.849797400E-02), -SCALE(-1.863830100E-02), + -SCALE(-1.875108700E-02), -SCALE(-1.883604000E-02), + -SCALE(-1.889315300E-02), -SCALE(-1.892151600E-02), + SCALE( 1.892151600E-02), SCALE( 1.889315300E-02), + SCALE( 1.883604000E-02), SCALE( 1.875108700E-02), + SCALE( 1.863830100E-02), SCALE( 1.849797400E-02), + SCALE( 1.833061700E-02), SCALE( 1.813675700E-02), + SCALE( 1.791707200E-02), SCALE( 1.767225900E-02), + SCALE( 1.740312600E-02), SCALE( 1.711054800E-02), + SCALE( 1.679548100E-02), SCALE( 1.645893800E-02), + SCALE( 1.610200000E-02), SCALE( 1.572581500E-02), + -SCALE( 1.533170500E-02), -SCALE( 1.492061500E-02), + -SCALE( 1.449398400E-02), -SCALE( 1.405313100E-02), + -SCALE( 1.359941000E-02), -SCALE( 1.313420500E-02), + -SCALE( 1.265891600E-02), -SCALE( 1.217496400E-02), + -SCALE( 1.168377500E-02), -SCALE( 1.118674000E-02), + -SCALE( 1.068536400E-02), -SCALE( 1.018101800E-02), + -SCALE( 9.675131500E-03), -SCALE( 9.169050700E-03), + -SCALE( 8.663190500E-03), -SCALE( 8.160839200E-03), + -SCALE( 7.662045500E-03), -SCALE( 7.167914500E-03), + -SCALE( 6.681936000E-03), -SCALE( 6.202005100E-03), + -SCALE( 5.730478300E-03), -SCALE( 5.268542300E-03), + -SCALE( 4.817122000E-03), -SCALE( 4.377291000E-03), + -SCALE( 3.949734800E-03), -SCALE( 3.535329200E-03), + -SCALE( 3.134797500E-03), -SCALE( 2.748797700E-03), + -SCALE( 2.377899500E-03), -SCALE( 2.022614600E-03), + -SCALE( 1.683383000E-03), -SCALE( 1.360519200E-03), + -SCALE( 1.054538000E-03), -SCALE( 7.653038000E-04), + -SCALE( 4.930996000E-04), -SCALE( 2.380696500E-04), + -SCALE( 2.272228400E-07), -SCALE(-2.204804700E-04), + -SCALE(-4.241331700E-04), -SCALE(-6.109076600E-04), + -SCALE(-7.810380900E-04), -SCALE(-9.349224800E-04), + -SCALE(-1.072608600E-03), -SCALE(-1.194737700E-03), + -SCALE(-1.301623400E-03), -SCALE(-1.394017000E-03), + -SCALE(-1.478566700E-03), -SCALE(-1.541196600E-03), + SCALE( 1.592423900E-03), SCALE( 1.632849400E-03), + SCALE( 1.654649800E-03), SCALE( 1.670887400E-03), + SCALE( 1.676540900E-03), SCALE( 1.672691700E-03), + SCALE( 1.659751400E-03), SCALE( 1.638393400E-03), + SCALE( 1.609496400E-03), SCALE( 1.573715600E-03), + SCALE( 1.531686400E-03), SCALE( 1.484159500E-03), + SCALE( 1.431717500E-03), SCALE( 1.375058300E-03), + SCALE( 1.314813200E-03), SCALE( 1.251459700E-03), + -SCALE( 1.182107000E-03), -SCALE( 1.114606900E-03), + -SCALE( 1.045985500E-03), -SCALE( 9.767158300E-04), + -SCALE( 9.072555100E-04), -SCALE( 8.380918900E-04), + -SCALE( 7.695597500E-04), -SCALE( 7.021067600E-04), + -SCALE( 6.360244700E-04), -SCALE( 5.717321000E-04), + -SCALE( 5.091327500E-04), -SCALE( 4.488403900E-04), + -SCALE( 3.909221300E-04), -SCALE( 3.353960600E-04), + -SCALE( 2.678985000E-04), -SCALE( 2.231129500E-04), + -SCALE( 1.772621900E-04), -SCALE( 1.311540500E-04), + -SCALE( 1.052143400E-04), -SCALE( 6.898332300E-05), + -SCALE( 3.623958500E-05), -SCALE( 6.512868000E-06), + -SCALE(-2.010055900E-05), -SCALE(-4.214289700E-05), + -SCALE(-6.157321800E-05), -SCALE(-7.793692700E-05), + -SCALE(-9.130172200E-05), -SCALE(-1.018237000E-04), + -SCALE(-1.097435100E-04), -SCALE(-1.152534400E-04), + -SCALE(-1.185602000E-04), -SCALE(-1.200453700E-04), + -SCALE(-1.237377900E-04), -SCALE(-1.226936800E-04), + -SCALE(-1.202018700E-04), -SCALE(-1.165901700E-04), + -SCALE(-1.119841200E-04), -SCALE(-1.064814700E-04), + -SCALE(-1.002681400E-04), -SCALE(-9.341758200E-05), + -SCALE(-8.597821200E-05), -SCALE(-7.984114900E-05), + -SCALE(-7.052899300E-05), -SCALE(-6.144976200E-05), + -SCALE(-5.311715600E-05), -SCALE(-4.511232400E-05), + -SCALE(-1.774116500E-05), -SCALE(-1.994364800E-05), + SCALE( 1.610369300E-05), SCALE( 1.518084500E-05), + SCALE( 1.614022200E-07), SCALE(-7.179248900E-06), + SCALE(-1.390508100E-05), SCALE(-1.979628700E-05), + SCALE(-2.497457200E-05), SCALE(-2.291622100E-05), + SCALE(-2.354812700E-05), SCALE(-2.295038200E-05), + SCALE(-2.131957100E-05), SCALE(-1.881671400E-05), + SCALE(-1.561346600E-05), SCALE(-1.191309700E-05), + SCALE(-7.916183300E-06), SCALE(-3.803557300E-06), + -SCALE(-5.236303900E-05), -SCALE(-5.081695700E-05), + -SCALE(-4.846834800E-05), -SCALE(-4.534151200E-05), + -SCALE(-4.149260300E-05), -SCALE(-3.698112500E-05), + -SCALE(-3.196094400E-05), -SCALE(-2.647159500E-05), + -SCALE(-2.089583800E-05), -SCALE(-1.073666400E-05), + -SCALE(-7.240269200E-06), -SCALE(-4.157326000E-06), + -SCALE(-1.809597500E-06), -SCALE(-7.763173700E-08), + -SCALE( 1.846174800E-06), -SCALE( 1.466421500E-06), + -SCALE( 9.974569000E-07), -SCALE( 5.671807300E-07), + -SCALE( 6.805568100E-06), -SCALE( 1.128458200E-05), + -SCALE( 1.568432200E-05), -SCALE( 1.771374800E-05), + -SCALE( 1.870056200E-05), -SCALE( 2.571454500E-05), + -SCALE( 2.861654300E-05), -SCALE( 3.109003600E-05), + -SCALE( 3.280414400E-05), -SCALE( 3.382472000E-05), + -SCALE( 3.411568400E-05), -SCALE( 3.367812600E-05), + -SCALE( 3.254459900E-05), -SCALE( 3.076839000E-05), + -SCALE(-1.987389300E-05), -SCALE(-1.925789500E-05), + -SCALE(-1.819741000E-05), -SCALE(-1.676702500E-05), + -SCALE(-1.505747500E-05), -SCALE(-1.317522400E-05), + -SCALE(-1.121856000E-05), -SCALE(-9.321632700E-06), + -SCALE(-7.476824700E-06), -SCALE(-3.262621300E-06), + -SCALE(-3.742137100E-06), -SCALE(-3.694976800E-06), + -SCALE(-2.480143600E-06), -SCALE(-1.236415900E-06), + -SCALE(-6.479789100E-08), -SCALE(-8.454083600E-08), + SCALE( 3.772031200E-08), SCALE( 3.227406600E-08), + SCALE(-3.384827600E-08), SCALE(-1.510238900E-08), + SCALE(-5.699348500E-08), SCALE(-3.073465500E-07), + SCALE(-6.650809100E-07), SCALE(-3.139397100E-06), + SCALE(-4.187209700E-06), SCALE(-5.044609200E-06), + SCALE(-5.908209500E-06), SCALE(-6.629955000E-06), + SCALE(-7.179758900E-06), SCALE(-7.533601500E-06), + SCALE(-7.678809700E-06), SCALE(-7.614387900E-06), + -SCALE(-6.046428700E-06), -SCALE(-5.696789700E-06), + -SCALE(-5.210775600E-06), -SCALE(-4.617880200E-06), + -SCALE(-3.953604500E-06), -SCALE(-3.253336000E-06), + -SCALE(-2.555774300E-06), -SCALE(-1.904890000E-06), + -SCALE(-1.306777300E-06), -SCALE(-2.448299500E-07), + -SCALE(-1.007547900E-07), -SCALE(-1.643020800E-08), + -SCALE(-3.715261200E-09), -SCALE(-6.820855300E-09), + -SCALE( 3.377455500E-09), -SCALE( 2.668096400E-09), + -SCALE( 1.611726200E-09), -SCALE( 6.821591800E-10), + -SCALE(-4.147967800E-08), -SCALE(-1.028149000E-07), + -SCALE(-3.167104300E-07), -SCALE(-8.454480100E-07), + -SCALE(-1.560941800E-06), -SCALE(-8.920065800E-07), + -SCALE(-9.822894700E-07), -SCALE(-1.124542400E-06), + -SCALE(-1.144180200E-06), -SCALE(-1.119829700E-06), + -SCALE(-1.052683900E-06), -SCALE(-9.544782800E-07), + -SCALE(-8.348606100E-07), -SCALE(-7.034745600E-07), + -SCALE( 5.586146700E-07), -SCALE( 6.193701600E-07), + -SCALE( 6.601852300E-07), -SCALE( 6.770656500E-07), + -SCALE( 6.677818900E-07), -SCALE( 6.300390500E-07), + -SCALE( 5.697322600E-07), -SCALE( 4.468735700E-07), + -SCALE( 3.712986200E-07), -SCALE( 5.746147600E-07), + -SCALE( 2.771560000E-07), -SCALE( 9.130198800E-08), + -SCALE( 2.529296600E-08), -SCALE( 8.358679600E-09), + -SCALE(-7.138742100E-11), -SCALE(-1.140033200E-10) }; // Annex D.8 - 32-band interpolation FIR, non-perfect reconstruction static const double band_fir_nonperfect[512] = { - -1.390191784E-07, -1.693738625E-07, -2.030677564E-07, -2.404238444E-07, - -2.818143514E-07, -3.276689142E-07, -3.784752209E-07, -4.347855338E-07, - -4.972276315E-07, -5.665120852E-07, -6.434325428E-07, -7.288739425E-07, - -8.238164355E-07, -9.293416952E-07, -1.046637067E-06, -1.176999604E-06, - -1.321840614E-06, -1.482681114E-06, -1.661159786E-06, -1.859034001E-06, - -2.078171747E-06, -2.320550948E-06, -2.588257530E-06, -2.883470643E-06, - -3.208459020E-06, -3.565570978E-06, -3.957220997E-06, -4.385879038E-06, - -4.854050530E-06, -5.364252502E-06, -5.918994248E-06, -6.520755960E-06, - -7.171964626E-06, -7.874960829E-06, -8.631964192E-06, -9.445050637E-06, - -1.031611009E-05, -1.124680875E-05, -1.223855270E-05, -1.329243969E-05, - -1.440921824E-05, -1.558924305E-05, -1.683242772E-05, -1.813820381E-05, - -1.950545993E-05, -2.093250441E-05, -2.241701623E-05, -2.395598858E-05, - -2.554569073E-05, -2.718161704E-05, -2.885844333E-05, -3.056998685E-05, - -3.230916263E-05, -3.406793985E-05, -3.583733633E-05, -3.760734762E-05, - -3.936696885E-05, -4.110412556E-05, -4.280570283E-05, -4.445751256E-05, - -4.604430433E-05, -4.754976908E-05, -4.895655002E-05, -5.024627535E-05, - 5.139957648E-05, 5.239612074E-05, 5.321469871E-05, 5.383323878E-05, - 5.422891263E-05, 5.437819709E-05, 5.425697600E-05, 5.384063843E-05, - 5.310418419E-05, 5.202236207E-05, 5.056979353E-05, 4.872112549E-05, - 4.645117951E-05, 4.373511547E-05, 4.054862075E-05, 3.686808850E-05, - 3.267079956E-05, 2.793515523E-05, 2.264085742E-05, 1.676913780E-05, - 1.030297699E-05, 3.227306706E-06, -4.470633485E-06, -1.280130618E-05, - -2.177240640E-05, -3.138873581E-05, -4.165195787E-05, -5.256036457E-05, - -6.410864444E-05, -7.628766616E-05, -8.908427117E-05, -1.024810626E-04, - -1.164562127E-04, -1.309833024E-04, -1.460311323E-04, -1.615635992E-04, - -1.775395358E-04, -1.939126523E-04, -2.106313768E-04, -2.276388550E-04, - -2.448728774E-04, -2.622658503E-04, -2.797449124E-04, -2.972317743E-04, - -3.146430245E-04, -3.318900708E-04, -3.488793736E-04, -3.655125911E-04, - -3.816867538E-04, -3.972945851E-04, -4.122247046E-04, -4.263620067E-04, - -4.395879805E-04, -4.517810594E-04, -4.628172028E-04, -4.725702747E-04, - -4.809123348E-04, -4.877146275E-04, -4.928477574E-04, -4.961824161E-04, - -4.975944757E-04, -4.969481961E-04, -4.941228544E-04, -4.889960401E-04, - 4.814492422E-04, 4.713678791E-04, 4.586426076E-04, 4.431701091E-04, - 4.248536134E-04, 4.036037717E-04, 3.793396754E-04, 3.519894381E-04, - 3.214911267E-04, 2.877934603E-04, 2.508567995E-04, 2.106537577E-04, - 1.671699720E-04, 1.204049113E-04, 7.037253090E-05, 1.710198012E-05, - -3.936182839E-05, -9.895755647E-05, -1.616069785E-04, -2.272142592E-04, - -2.956659591E-04, -3.668301215E-04, -4.405563814E-04, -5.166754709E-04, - -5.949990009E-04, -6.753197522E-04, -7.574109477E-04, -8.410271257E-04, - -9.259034996E-04, -1.011756598E-03, -1.098284614E-03, -1.185167348E-03, - -1.272067428E-03, -1.358630019E-03, -1.444484224E-03, -1.529243193E-03, - -1.612505526E-03, -1.693855622E-03, -1.772865304E-03, -1.849094522E-03, - -1.922092517E-03, -1.991399564E-03, -2.056547208E-03, -2.117061289E-03, - -2.172462177E-03, -2.222266514E-03, -2.265989315E-03, -2.303145360E-03, - -2.333251061E-03, -2.355825622E-03, -2.370394068E-03, -2.376487479E-03, - -2.373647178E-03, -2.361423569E-03, -2.339380793E-03, -2.307097195E-03, - -2.264167881E-03, -2.210205887E-03, -2.144844970E-03, -2.067740774E-03, - -1.978572691E-03, -1.877046190E-03, -1.762894331E-03, -1.635878929E-03, - 1.495792647E-03, 1.342460280E-03, 1.175740734E-03, 9.955273708E-04, - 8.017504588E-04, 5.943773431E-04, 3.734139318E-04, 1.389056415E-04, - -1.090620208E-04, -3.703625989E-04, -6.448282511E-04, -9.322494152E-04, - -1.232374110E-03, -1.544908970E-03, -1.869517611E-03, -2.205822384E-03, - -2.553403843E-03, -2.911801683E-03, -3.280514618E-03, -3.659002949E-03, - -4.046686925E-03, -4.442950245E-03, -4.847140983E-03, -5.258570891E-03, - -5.676518660E-03, -6.100233644E-03, -6.528933067E-03, -6.961807609E-03, - -7.398022339E-03, -7.836719044E-03, -8.277016692E-03, -8.718019351E-03, - -9.158811532E-03, -9.598465636E-03, -1.003604382E-02, -1.047059800E-02, - -1.090117730E-02, -1.132682897E-02, -1.174659748E-02, -1.215953380E-02, - -1.256469358E-02, -1.296114177E-02, -1.334795821E-02, -1.372423489E-02, - -1.408908330E-02, -1.444163360E-02, -1.478104480E-02, -1.510649733E-02, - -1.541720331E-02, -1.571240649E-02, -1.599138230E-02, -1.625344716E-02, - -1.649795473E-02, -1.672429405E-02, -1.693190821E-02, -1.712027565E-02, - -1.728892699E-02, -1.743743755E-02, -1.756543480E-02, -1.767260395E-02, - -1.775865816E-02, -1.782339066E-02, -1.786663756E-02, -1.788828894E-02, - 1.788828894E-02, 1.786663756E-02, 1.782339066E-02, 1.775865816E-02, - 1.767260395E-02, 1.756543480E-02, 1.743743755E-02, 1.728892699E-02, - 1.712027565E-02, 1.693190821E-02, 1.672429405E-02, 1.649795473E-02, - 1.625344716E-02, 1.599138230E-02, 1.571240649E-02, 1.541720331E-02, - 1.510649733E-02, 1.478104480E-02, 1.444163360E-02, 1.408908330E-02, - 1.372423489E-02, 1.334795821E-02, 1.296114177E-02, 1.256469358E-02, - 1.215953380E-02, 1.174659748E-02, 1.132682897E-02, 1.090117730E-02, - 1.047059800E-02, 1.003604382E-02, 9.598465636E-03, 9.158811532E-03, - 8.718019351E-03, 8.277016692E-03, 7.836719044E-03, 7.398022339E-03, - 6.961807609E-03, 6.528933067E-03, 6.100233644E-03, 5.676518660E-03, - 5.258570891E-03, 4.847140983E-03, 4.442950245E-03, 4.046686925E-03, - 3.659002949E-03, 3.280514618E-03, 2.911801683E-03, 2.553403843E-03, - 2.205822384E-03, 1.869517611E-03, 1.544908970E-03, 1.232374110E-03, - 9.322494152E-04, 6.448282511E-04, 3.703625989E-04, 1.090620208E-04, - -1.389056415E-04, -3.734139318E-04, -5.943773431E-04, -8.017504588E-04, - -9.955273708E-04, -1.175740734E-03, -1.342460280E-03, -1.495792647E-03, - 1.635878929E-03, 1.762894331E-03, 1.877046190E-03, 1.978572691E-03, - 2.067740774E-03, 2.144844970E-03, 2.210205887E-03, 2.264167881E-03, - 2.307097195E-03, 2.339380793E-03, 2.361423569E-03, 2.373647178E-03, - 2.376487479E-03, 2.370394068E-03, 2.355825622E-03, 2.333251061E-03, - 2.303145360E-03, 2.265989315E-03, 2.222266514E-03, 2.172462177E-03, - 2.117061289E-03, 2.056547208E-03, 1.991399564E-03, 1.922092517E-03, - 1.849094522E-03, 1.772865304E-03, 1.693855622E-03, 1.612505526E-03, - 1.529243193E-03, 1.444484224E-03, 1.358630019E-03, 1.272067428E-03, - 1.185167348E-03, 1.098284614E-03, 1.011756598E-03, 9.259034996E-04, - 8.410271257E-04, 7.574109477E-04, 6.753197522E-04, 5.949990009E-04, - 5.166754709E-04, 4.405563814E-04, 3.668301215E-04, 2.956659591E-04, - 2.272142592E-04, 1.616069785E-04, 9.895755647E-05, 3.936182839E-05, - -1.710198012E-05, -7.037253090E-05, -1.204049113E-04, -1.671699720E-04, - -2.106537577E-04, -2.508567995E-04, -2.877934603E-04, -3.214911267E-04, - -3.519894381E-04, -3.793396754E-04, -4.036037717E-04, -4.248536134E-04, - -4.431701091E-04, -4.586426076E-04, -4.713678791E-04, -4.814492422E-04, - 4.889960401E-04, 4.941228544E-04, 4.969481961E-04, 4.975944757E-04, - 4.961824161E-04, 4.928477574E-04, 4.877146275E-04, 4.809123348E-04, - 4.725702747E-04, 4.628172028E-04, 4.517810594E-04, 4.395879805E-04, - 4.263620067E-04, 4.122247046E-04, 3.972945851E-04, 3.816867538E-04, - 3.655125911E-04, 3.488793736E-04, 3.318900708E-04, 3.146430245E-04, - 2.972317743E-04, 2.797449124E-04, 2.622658503E-04, 2.448728774E-04, - 2.276388550E-04, 2.106313768E-04, 1.939126523E-04, 1.775395358E-04, - 1.615635992E-04, 1.460311323E-04, 1.309833024E-04, 1.164562127E-04, - 1.024810626E-04, 8.908427117E-05, 7.628766616E-05, 6.410864444E-05, - 5.256036457E-05, 4.165195787E-05, 3.138873581E-05, 2.177240640E-05, - 1.280130618E-05, 4.470633485E-06, -3.227306706E-06, -1.030297699E-05, - -1.676913780E-05, -2.264085742E-05, -2.793515523E-05, -3.267079956E-05, - -3.686808850E-05, -4.054862075E-05, -4.373511547E-05, -4.645117951E-05, - -4.872112549E-05, -5.056979353E-05, -5.202236207E-05, -5.310418419E-05, - -5.384063843E-05, -5.425697600E-05, -5.437819709E-05, -5.422891263E-05, - -5.383323878E-05, -5.321469871E-05, -5.239612074E-05, -5.139957648E-05, - 5.024627535E-05, 4.895655002E-05, 4.754976908E-05, 4.604430433E-05, - 4.445751256E-05, 4.280570283E-05, 4.110412556E-05, 3.936696885E-05, - 3.760734762E-05, 3.583733633E-05, 3.406793985E-05, 3.230916263E-05, - 3.056998685E-05, 2.885844333E-05, 2.718161704E-05, 2.554569073E-05, - 2.395598858E-05, 2.241701623E-05, 2.093250441E-05, 1.950545993E-05, - 1.813820381E-05, 1.683242772E-05, 1.558924305E-05, 1.440921824E-05, - 1.329243969E-05, 1.223855270E-05, 1.124680875E-05, 1.031611009E-05, - 9.445050637E-06, 8.631964192E-06, 7.874960829E-06, 7.171964626E-06, - 6.520755960E-06, 5.918994248E-06, 5.364252502E-06, 4.854050530E-06, - 4.385879038E-06, 3.957220997E-06, 3.565570978E-06, 3.208459020E-06, - 2.883470643E-06, 2.588257530E-06, 2.320550948E-06, 2.078171747E-06, - 1.859034001E-06, 1.661159786E-06, 1.482681114E-06, 1.321840614E-06, - 1.176999604E-06, 1.046637067E-06, 9.293416952E-07, 8.238164355E-07, - 7.288739425E-07, 6.434325428E-07, 5.665120852E-07, 4.972276315E-07, - 4.347855338E-07, 3.784752209E-07, 3.276689142E-07, 2.818143514E-07, - 2.404238444E-07, 2.030677564E-07, 1.693738625E-07, 1.390191784E-07 + SCALE(-1.390191784E-07), SCALE(-1.693738625E-07), + SCALE(-2.030677564E-07), SCALE(-2.404238444E-07), + SCALE(-2.818143514E-07), SCALE(-3.276689142E-07), + SCALE(-3.784752209E-07), SCALE(-4.347855338E-07), + SCALE(-4.972276315E-07), SCALE(-5.665120852E-07), + SCALE(-6.434325428E-07), SCALE(-7.288739425E-07), + SCALE(-8.238164355E-07), SCALE(-9.293416952E-07), + SCALE(-1.046637067E-06), SCALE(-1.176999604E-06), + -SCALE(-1.321840614E-06), -SCALE(-1.482681114E-06), + -SCALE(-1.661159786E-06), -SCALE(-1.859034001E-06), + -SCALE(-2.078171747E-06), -SCALE(-2.320550948E-06), + -SCALE(-2.588257530E-06), -SCALE(-2.883470643E-06), + -SCALE(-3.208459020E-06), -SCALE(-3.565570978E-06), + -SCALE(-3.957220997E-06), -SCALE(-4.385879038E-06), + -SCALE(-4.854050530E-06), -SCALE(-5.364252502E-06), + -SCALE(-5.918994248E-06), -SCALE(-6.520755960E-06), + -SCALE(-7.171964626E-06), -SCALE(-7.874960829E-06), + -SCALE(-8.631964192E-06), -SCALE(-9.445050637E-06), + -SCALE(-1.031611009E-05), -SCALE(-1.124680875E-05), + -SCALE(-1.223855270E-05), -SCALE(-1.329243969E-05), + -SCALE(-1.440921824E-05), -SCALE(-1.558924305E-05), + -SCALE(-1.683242772E-05), -SCALE(-1.813820381E-05), + -SCALE(-1.950545993E-05), -SCALE(-2.093250441E-05), + -SCALE(-2.241701623E-05), -SCALE(-2.395598858E-05), + -SCALE(-2.554569073E-05), -SCALE(-2.718161704E-05), + -SCALE(-2.885844333E-05), -SCALE(-3.056998685E-05), + -SCALE(-3.230916263E-05), -SCALE(-3.406793985E-05), + -SCALE(-3.583733633E-05), -SCALE(-3.760734762E-05), + -SCALE(-3.936696885E-05), -SCALE(-4.110412556E-05), + -SCALE(-4.280570283E-05), -SCALE(-4.445751256E-05), + -SCALE(-4.604430433E-05), -SCALE(-4.754976908E-05), + -SCALE(-4.895655002E-05), -SCALE(-5.024627535E-05), + SCALE( 5.139957648E-05), SCALE( 5.239612074E-05), + SCALE( 5.321469871E-05), SCALE( 5.383323878E-05), + SCALE( 5.422891263E-05), SCALE( 5.437819709E-05), + SCALE( 5.425697600E-05), SCALE( 5.384063843E-05), + SCALE( 5.310418419E-05), SCALE( 5.202236207E-05), + SCALE( 5.056979353E-05), SCALE( 4.872112549E-05), + SCALE( 4.645117951E-05), SCALE( 4.373511547E-05), + SCALE( 4.054862075E-05), SCALE( 3.686808850E-05), + -SCALE( 3.267079956E-05), -SCALE( 2.793515523E-05), + -SCALE( 2.264085742E-05), -SCALE( 1.676913780E-05), + -SCALE( 1.030297699E-05), -SCALE( 3.227306706E-06), + -SCALE(-4.470633485E-06), -SCALE(-1.280130618E-05), + -SCALE(-2.177240640E-05), -SCALE(-3.138873581E-05), + -SCALE(-4.165195787E-05), -SCALE(-5.256036457E-05), + -SCALE(-6.410864444E-05), -SCALE(-7.628766616E-05), + -SCALE(-8.908427117E-05), -SCALE(-1.024810626E-04), + -SCALE(-1.164562127E-04), -SCALE(-1.309833024E-04), + -SCALE(-1.460311323E-04), -SCALE(-1.615635992E-04), + -SCALE(-1.775395358E-04), -SCALE(-1.939126523E-04), + -SCALE(-2.106313768E-04), -SCALE(-2.276388550E-04), + -SCALE(-2.448728774E-04), -SCALE(-2.622658503E-04), + -SCALE(-2.797449124E-04), -SCALE(-2.972317743E-04), + -SCALE(-3.146430245E-04), -SCALE(-3.318900708E-04), + -SCALE(-3.488793736E-04), -SCALE(-3.655125911E-04), + -SCALE(-3.816867538E-04), -SCALE(-3.972945851E-04), + -SCALE(-4.122247046E-04), -SCALE(-4.263620067E-04), + -SCALE(-4.395879805E-04), -SCALE(-4.517810594E-04), + -SCALE(-4.628172028E-04), -SCALE(-4.725702747E-04), + -SCALE(-4.809123348E-04), -SCALE(-4.877146275E-04), + -SCALE(-4.928477574E-04), -SCALE(-4.961824161E-04), + -SCALE(-4.975944757E-04), -SCALE(-4.969481961E-04), + -SCALE(-4.941228544E-04), -SCALE(-4.889960401E-04), + SCALE( 4.814492422E-04), SCALE( 4.713678791E-04), + SCALE( 4.586426076E-04), SCALE( 4.431701091E-04), + SCALE( 4.248536134E-04), SCALE( 4.036037717E-04), + SCALE( 3.793396754E-04), SCALE( 3.519894381E-04), + SCALE( 3.214911267E-04), SCALE( 2.877934603E-04), + SCALE( 2.508567995E-04), SCALE( 2.106537577E-04), + SCALE( 1.671699720E-04), SCALE( 1.204049113E-04), + SCALE( 7.037253090E-05), SCALE( 1.710198012E-05), + -SCALE(-3.936182839E-05), -SCALE(-9.895755647E-05), + -SCALE(-1.616069785E-04), -SCALE(-2.272142592E-04), + -SCALE(-2.956659591E-04), -SCALE(-3.668301215E-04), + -SCALE(-4.405563814E-04), -SCALE(-5.166754709E-04), + -SCALE(-5.949990009E-04), -SCALE(-6.753197522E-04), + -SCALE(-7.574109477E-04), -SCALE(-8.410271257E-04), + -SCALE(-9.259034996E-04), -SCALE(-1.011756598E-03), + -SCALE(-1.098284614E-03), -SCALE(-1.185167348E-03), + -SCALE(-1.272067428E-03), -SCALE(-1.358630019E-03), + -SCALE(-1.444484224E-03), -SCALE(-1.529243193E-03), + -SCALE(-1.612505526E-03), -SCALE(-1.693855622E-03), + -SCALE(-1.772865304E-03), -SCALE(-1.849094522E-03), + -SCALE(-1.922092517E-03), -SCALE(-1.991399564E-03), + -SCALE(-2.056547208E-03), -SCALE(-2.117061289E-03), + -SCALE(-2.172462177E-03), -SCALE(-2.222266514E-03), + -SCALE(-2.265989315E-03), -SCALE(-2.303145360E-03), + -SCALE(-2.333251061E-03), -SCALE(-2.355825622E-03), + -SCALE(-2.370394068E-03), -SCALE(-2.376487479E-03), + -SCALE(-2.373647178E-03), -SCALE(-2.361423569E-03), + -SCALE(-2.339380793E-03), -SCALE(-2.307097195E-03), + -SCALE(-2.264167881E-03), -SCALE(-2.210205887E-03), + -SCALE(-2.144844970E-03), -SCALE(-2.067740774E-03), + -SCALE(-1.978572691E-03), -SCALE(-1.877046190E-03), + -SCALE(-1.762894331E-03), -SCALE(-1.635878929E-03), + SCALE( 1.495792647E-03), SCALE( 1.342460280E-03), + SCALE( 1.175740734E-03), SCALE( 9.955273708E-04), + SCALE( 8.017504588E-04), SCALE( 5.943773431E-04), + SCALE( 3.734139318E-04), SCALE( 1.389056415E-04), + SCALE(-1.090620208E-04), SCALE(-3.703625989E-04), + SCALE(-6.448282511E-04), SCALE(-9.322494152E-04), + SCALE(-1.232374110E-03), SCALE(-1.544908970E-03), + SCALE(-1.869517611E-03), SCALE(-2.205822384E-03), + -SCALE(-2.553403843E-03), -SCALE(-2.911801683E-03), + -SCALE(-3.280514618E-03), -SCALE(-3.659002949E-03), + -SCALE(-4.046686925E-03), -SCALE(-4.442950245E-03), + -SCALE(-4.847140983E-03), -SCALE(-5.258570891E-03), + -SCALE(-5.676518660E-03), -SCALE(-6.100233644E-03), + -SCALE(-6.528933067E-03), -SCALE(-6.961807609E-03), + -SCALE(-7.398022339E-03), -SCALE(-7.836719044E-03), + -SCALE(-8.277016692E-03), -SCALE(-8.718019351E-03), + -SCALE(-9.158811532E-03), -SCALE(-9.598465636E-03), + -SCALE(-1.003604382E-02), -SCALE(-1.047059800E-02), + -SCALE(-1.090117730E-02), -SCALE(-1.132682897E-02), + -SCALE(-1.174659748E-02), -SCALE(-1.215953380E-02), + -SCALE(-1.256469358E-02), -SCALE(-1.296114177E-02), + -SCALE(-1.334795821E-02), -SCALE(-1.372423489E-02), + -SCALE(-1.408908330E-02), -SCALE(-1.444163360E-02), + -SCALE(-1.478104480E-02), -SCALE(-1.510649733E-02), + -SCALE(-1.541720331E-02), -SCALE(-1.571240649E-02), + -SCALE(-1.599138230E-02), -SCALE(-1.625344716E-02), + -SCALE(-1.649795473E-02), -SCALE(-1.672429405E-02), + -SCALE(-1.693190821E-02), -SCALE(-1.712027565E-02), + -SCALE(-1.728892699E-02), -SCALE(-1.743743755E-02), + -SCALE(-1.756543480E-02), -SCALE(-1.767260395E-02), + -SCALE(-1.775865816E-02), -SCALE(-1.782339066E-02), + -SCALE(-1.786663756E-02), -SCALE(-1.788828894E-02), + SCALE( 1.788828894E-02), SCALE( 1.786663756E-02), + SCALE( 1.782339066E-02), SCALE( 1.775865816E-02), + SCALE( 1.767260395E-02), SCALE( 1.756543480E-02), + SCALE( 1.743743755E-02), SCALE( 1.728892699E-02), + SCALE( 1.712027565E-02), SCALE( 1.693190821E-02), + SCALE( 1.672429405E-02), SCALE( 1.649795473E-02), + SCALE( 1.625344716E-02), SCALE( 1.599138230E-02), + SCALE( 1.571240649E-02), SCALE( 1.541720331E-02), + -SCALE( 1.510649733E-02), -SCALE( 1.478104480E-02), + -SCALE( 1.444163360E-02), -SCALE( 1.408908330E-02), + -SCALE( 1.372423489E-02), -SCALE( 1.334795821E-02), + -SCALE( 1.296114177E-02), -SCALE( 1.256469358E-02), + -SCALE( 1.215953380E-02), -SCALE( 1.174659748E-02), + -SCALE( 1.132682897E-02), -SCALE( 1.090117730E-02), + -SCALE( 1.047059800E-02), -SCALE( 1.003604382E-02), + -SCALE( 9.598465636E-03), -SCALE( 9.158811532E-03), + -SCALE( 8.718019351E-03), -SCALE( 8.277016692E-03), + -SCALE( 7.836719044E-03), -SCALE( 7.398022339E-03), + -SCALE( 6.961807609E-03), -SCALE( 6.528933067E-03), + -SCALE( 6.100233644E-03), -SCALE( 5.676518660E-03), + -SCALE( 5.258570891E-03), -SCALE( 4.847140983E-03), + -SCALE( 4.442950245E-03), -SCALE( 4.046686925E-03), + -SCALE( 3.659002949E-03), -SCALE( 3.280514618E-03), + -SCALE( 2.911801683E-03), -SCALE( 2.553403843E-03), + -SCALE( 2.205822384E-03), -SCALE( 1.869517611E-03), + -SCALE( 1.544908970E-03), -SCALE( 1.232374110E-03), + -SCALE( 9.322494152E-04), -SCALE( 6.448282511E-04), + -SCALE( 3.703625989E-04), -SCALE( 1.090620208E-04), + -SCALE(-1.389056415E-04), -SCALE(-3.734139318E-04), + -SCALE(-5.943773431E-04), -SCALE(-8.017504588E-04), + -SCALE(-9.955273708E-04), -SCALE(-1.175740734E-03), + -SCALE(-1.342460280E-03), -SCALE(-1.495792647E-03), + SCALE( 1.635878929E-03), SCALE( 1.762894331E-03), + SCALE( 1.877046190E-03), SCALE( 1.978572691E-03), + SCALE( 2.067740774E-03), SCALE( 2.144844970E-03), + SCALE( 2.210205887E-03), SCALE( 2.264167881E-03), + SCALE( 2.307097195E-03), SCALE( 2.339380793E-03), + SCALE( 2.361423569E-03), SCALE( 2.373647178E-03), + SCALE( 2.376487479E-03), SCALE( 2.370394068E-03), + SCALE( 2.355825622E-03), SCALE( 2.333251061E-03), + -SCALE( 2.303145360E-03), -SCALE( 2.265989315E-03), + -SCALE( 2.222266514E-03), -SCALE( 2.172462177E-03), + -SCALE( 2.117061289E-03), -SCALE( 2.056547208E-03), + -SCALE( 1.991399564E-03), -SCALE( 1.922092517E-03), + -SCALE( 1.849094522E-03), -SCALE( 1.772865304E-03), + -SCALE( 1.693855622E-03), -SCALE( 1.612505526E-03), + -SCALE( 1.529243193E-03), -SCALE( 1.444484224E-03), + -SCALE( 1.358630019E-03), -SCALE( 1.272067428E-03), + -SCALE( 1.185167348E-03), -SCALE( 1.098284614E-03), + -SCALE( 1.011756598E-03), -SCALE( 9.259034996E-04), + -SCALE( 8.410271257E-04), -SCALE( 7.574109477E-04), + -SCALE( 6.753197522E-04), -SCALE( 5.949990009E-04), + -SCALE( 5.166754709E-04), -SCALE( 4.405563814E-04), + -SCALE( 3.668301215E-04), -SCALE( 2.956659591E-04), + -SCALE( 2.272142592E-04), -SCALE( 1.616069785E-04), + -SCALE( 9.895755647E-05), -SCALE( 3.936182839E-05), + -SCALE(-1.710198012E-05), -SCALE(-7.037253090E-05), + -SCALE(-1.204049113E-04), -SCALE(-1.671699720E-04), + -SCALE(-2.106537577E-04), -SCALE(-2.508567995E-04), + -SCALE(-2.877934603E-04), -SCALE(-3.214911267E-04), + -SCALE(-3.519894381E-04), -SCALE(-3.793396754E-04), + -SCALE(-4.036037717E-04), -SCALE(-4.248536134E-04), + -SCALE(-4.431701091E-04), -SCALE(-4.586426076E-04), + -SCALE(-4.713678791E-04), -SCALE(-4.814492422E-04), + SCALE( 4.889960401E-04), SCALE( 4.941228544E-04), + SCALE( 4.969481961E-04), SCALE( 4.975944757E-04), + SCALE( 4.961824161E-04), SCALE( 4.928477574E-04), + SCALE( 4.877146275E-04), SCALE( 4.809123348E-04), + SCALE( 4.725702747E-04), SCALE( 4.628172028E-04), + SCALE( 4.517810594E-04), SCALE( 4.395879805E-04), + SCALE( 4.263620067E-04), SCALE( 4.122247046E-04), + SCALE( 3.972945851E-04), SCALE( 3.816867538E-04), + -SCALE( 3.655125911E-04), -SCALE( 3.488793736E-04), + -SCALE( 3.318900708E-04), -SCALE( 3.146430245E-04), + -SCALE( 2.972317743E-04), -SCALE( 2.797449124E-04), + -SCALE( 2.622658503E-04), -SCALE( 2.448728774E-04), + -SCALE( 2.276388550E-04), -SCALE( 2.106313768E-04), + -SCALE( 1.939126523E-04), -SCALE( 1.775395358E-04), + -SCALE( 1.615635992E-04), -SCALE( 1.460311323E-04), + -SCALE( 1.309833024E-04), -SCALE( 1.164562127E-04), + -SCALE( 1.024810626E-04), -SCALE( 8.908427117E-05), + -SCALE( 7.628766616E-05), -SCALE( 6.410864444E-05), + -SCALE( 5.256036457E-05), -SCALE( 4.165195787E-05), + -SCALE( 3.138873581E-05), -SCALE( 2.177240640E-05), + -SCALE( 1.280130618E-05), -SCALE( 4.470633485E-06), + -SCALE(-3.227306706E-06), -SCALE(-1.030297699E-05), + -SCALE(-1.676913780E-05), -SCALE(-2.264085742E-05), + -SCALE(-2.793515523E-05), -SCALE(-3.267079956E-05), + -SCALE(-3.686808850E-05), -SCALE(-4.054862075E-05), + -SCALE(-4.373511547E-05), -SCALE(-4.645117951E-05), + -SCALE(-4.872112549E-05), -SCALE(-5.056979353E-05), + -SCALE(-5.202236207E-05), -SCALE(-5.310418419E-05), + -SCALE(-5.384063843E-05), -SCALE(-5.425697600E-05), + -SCALE(-5.437819709E-05), -SCALE(-5.422891263E-05), + -SCALE(-5.383323878E-05), -SCALE(-5.321469871E-05), + -SCALE(-5.239612074E-05), -SCALE(-5.139957648E-05), + SCALE( 5.024627535E-05), SCALE( 4.895655002E-05), + SCALE( 4.754976908E-05), SCALE( 4.604430433E-05), + SCALE( 4.445751256E-05), SCALE( 4.280570283E-05), + SCALE( 4.110412556E-05), SCALE( 3.936696885E-05), + SCALE( 3.760734762E-05), SCALE( 3.583733633E-05), + SCALE( 3.406793985E-05), SCALE( 3.230916263E-05), + SCALE( 3.056998685E-05), SCALE( 2.885844333E-05), + SCALE( 2.718161704E-05), SCALE( 2.554569073E-05), + -SCALE( 2.395598858E-05), -SCALE( 2.241701623E-05), + -SCALE( 2.093250441E-05), -SCALE( 1.950545993E-05), + -SCALE( 1.813820381E-05), -SCALE( 1.683242772E-05), + -SCALE( 1.558924305E-05), -SCALE( 1.440921824E-05), + -SCALE( 1.329243969E-05), -SCALE( 1.223855270E-05), + -SCALE( 1.124680875E-05), -SCALE( 1.031611009E-05), + -SCALE( 9.445050637E-06), -SCALE( 8.631964192E-06), + -SCALE( 7.874960829E-06), -SCALE( 7.171964626E-06), + -SCALE( 6.520755960E-06), -SCALE( 5.918994248E-06), + -SCALE( 5.364252502E-06), -SCALE( 4.854050530E-06), + -SCALE( 4.385879038E-06), -SCALE( 3.957220997E-06), + -SCALE( 3.565570978E-06), -SCALE( 3.208459020E-06), + -SCALE( 2.883470643E-06), -SCALE( 2.588257530E-06), + -SCALE( 2.320550948E-06), -SCALE( 2.078171747E-06), + -SCALE( 1.859034001E-06), -SCALE( 1.661159786E-06), + -SCALE( 1.482681114E-06), -SCALE( 1.321840614E-06), + -SCALE( 1.176999604E-06), -SCALE( 1.046637067E-06), + -SCALE( 9.293416952E-07), -SCALE( 8.238164355E-07), + -SCALE( 7.288739425E-07), -SCALE( 6.434325428E-07), + -SCALE( 5.665120852E-07), -SCALE( 4.972276315E-07), + -SCALE( 4.347855338E-07), -SCALE( 3.784752209E-07), + -SCALE( 3.276689142E-07), -SCALE( 2.818143514E-07), + -SCALE( 2.404238444E-07), -SCALE( 2.030677564E-07), + -SCALE( 1.693738625E-07), -SCALE( 1.390191784E-07) }; +#undef SCALE + // Annex D.8 - LFE interpolation FIR, 64x interpolation static const double lfe_fir_64[512] = { 2.658434387E-04, 8.179365250E-05, 9.439323912E-05, 1.082170274E-04, @@ -544,348 +804,522 @@ static const double lfe_fir_128[512] = { 2.164336300E-04, 1.887860900E-04, 1.635869100E-04, 5.316857100E-04 }; +#define SCALE(x) ((x) * M_SQRT2 * 512) + // Annex D.9 - 1024 tap FIR for X96 synthesis QMF static const double band_fir_x96[1024] = { - -7.1279389866041690E-8, -7.0950903150874990E-8, -7.9525034321375090E-8, - -8.9326871281374790E-8, -9.7483190494874640E-8, -1.0586659510721950E-7, - -1.1527363411865760E-7, -1.2523109645615350E-7, -1.3555636137971380E-7, - -1.4640931821191640E-7, -1.5787424998123710E-7, -1.6994592926571220E-7, - -1.8264184311018150E-7, -1.9600594587757850E-7, -2.1007899706006800E-7, - -2.2489759047553620E-7, -2.4050245877923400E-7, -2.5693874615777660E-7, - -2.7425370308549580E-7, -2.9249662541757600E-7, -3.1171981968268900E-7, - -3.3197864040473180E-7, -3.5333134588843600E-7, -3.7583910465412180E-7, - -3.9956628121669190E-7, -4.2458045296159330E-7, -4.5095249563698380E-7, - -4.7875659112606760E-7, -5.0807031294631050E-7, -5.3897464223335550E-7, - -5.7155423388793000E-7, -6.0589741192019800E-7, -6.4209580087853050E-7, - -6.8024432849991400E-7, -7.2044165259013450E-7, -7.6279018172077200E-7, - -8.0739610368280600E-7, -8.5436937020293650E-7, -9.0382333224895500E-7, - -9.5587472540498280E-7, -1.0106437128213760E-6, -1.0682538906146330E-6, - -1.1288323637155430E-6, -1.1925097184646100E-6, -1.2594193438633260E-6, - -1.3296974052300520E-6, -1.4034829433780260E-6, -1.4809178634979940E-6, - -1.5621465913980060E-6, -1.6473160377545360E-6, -1.7365751553971340E-6, - -1.8300749104526120E-6, -1.9279680902322050E-6, -2.0304092660990760E-6, - -2.1375541686662320E-6, -2.2495596253776460E-6, -2.3665828120950560E-6, - -2.4887811970856540E-6, -2.6163120571644820E-6, -2.7493324266391140E-6, - -2.8879984579501380E-6, -3.0324653639203880E-6, -3.1828867865974640E-6, - -3.3394147240855820E-6, -3.5021985520037540E-6, -3.6713849262294680E-6, - -3.8471166218015830E-6, -4.0295324657699800E-6, -4.2187670209852250E-6, - -4.4149505043312320E-6, -4.6182073040543900E-6, -4.8286558658894680E-6, - -5.0464076705003400E-6, -5.2715671455405850E-6, -5.5042307535458100E-6, - -5.7444868785028750E-6, -5.9924142424804800E-6, -6.2480817863072800E-6, - -6.5115476278604000E-6, -6.7828589565804950E-6, -7.0620507545154100E-6, - -7.3491456697144900E-6, -7.6441525098592000E-6, -7.9470661364365490E-6, - -8.2578666429227760E-6, -8.5765192154768100E-6, -8.9029718900122000E-6, - -9.2371554195468400E-6, -9.5789825988253100E-6, -9.9283481667264540E-6, - -1.0285127334608450E-5, -1.0649175634328590E-5, -1.1020327046334650E-5, - -1.1398393880881060E-5, -1.1783166036693560E-5, -1.2174410889256530E-5, - -1.2571871574469220E-5, -1.2975266858030310E-5, -1.3384289978242060E-5, - -1.3798608540965960E-5, -1.4217863365843780E-5, -1.4641668383496450E-5, - -1.5069609527679710E-5, -1.5501244597782600E-5, -1.5936101341640500E-5, - -1.6373677426466900E-5, -1.6813441716539560E-5, -1.7254834143068570E-5, - -1.7697261563607500E-5, -1.8140097714618200E-5, -1.8582686308483550E-5, - -1.9024340970099240E-5, -1.9464340744880170E-5, -1.9901930030141080E-5, - -2.0336321557464510E-5, -2.0766696417773940E-5, -2.1192201630574280E-5, - -2.1611950084231910E-5, -2.2025021652894630E-5, -2.2430463239517170E-5, - -2.2827288605503470E-5, -2.3214478371918170E-5, -2.3590980216497750E-5, - -2.3955708939763280E-5, -2.4307547722489910E-5, -2.4645348200903720E-5, - -2.4967930863542620E-5, -2.5274085082324960E-5, 2.5562569399199020E-5, - 2.5832111724562040E-5, 2.6081413415833200E-5, 2.6309149390520640E-5, - 2.6513966535124460E-5, 2.6694483850464800E-5, 2.6849297239997120E-5, - 2.6976979753245170E-5, 2.7076082153012070E-5, 2.7145133103663890E-5, - 2.7182642746157720E-5, 2.7187102980536760E-5, 2.7156990105794550E-5, - 2.7090765064735940E-5, 2.6986876191054700E-5, 2.6843759539035120E-5, - 2.6659843389908530E-5, 2.6433548592482960E-5, 2.6163291550639320E-5, - 2.5847484577439320E-5, 2.5484540698002960E-5, 2.5072874052447260E-5, - 2.4610903957661350E-5, 2.4097055300584120E-5, 2.3529763128539150E-5, - 2.2907473117403740E-5, 2.2228647280994560E-5, 2.1491764461832140E-5, - 2.0695325418576370E-5, 1.9837853265502040E-5, 1.8917898053528080E-5, - 1.7934037335534700E-5, 1.6884884022311310E-5, 1.5769086921577900E-5, - 1.4585334740507920E-5, 1.3332356590263080E-5, 1.2008929083235120E-5, - 1.0613876973541650E-5, 9.1460801506922300E-6, 7.6044740757265500E-6, - 5.9880523825897000E-6, 4.2958677847708840E-6, 2.5270494199802070E-6, - 6.8080315386959900E-7, -1.2435990827839660E-6, -3.2468187066945930E-6, - -5.3294268968052800E-6, -7.4919036559427900E-6, -9.7346407524871100E-6, - -1.2057941408635810E-5, -1.4462010500550970E-5, -1.6946953848107710E-5, - -1.9512772389215240E-5, -2.2159361597292710E-5, -2.4886504491416160E-5, - -2.7693871041862060E-5, -3.0581012081916960E-5, -3.3547358765259040E-5, - -3.6592216716540970E-5, -3.9714765485539260E-5, -4.2914052387856640E-5, - -4.6188991961724560E-5, -4.9538360176954340E-5, -5.2960794000140600E-5, - -5.6454787620185350E-5, -6.0018691972791050E-5, -6.3650708053788550E-5, - -6.7348886525882700E-5, -7.1111125753722860E-5, -7.4935171411178040E-5, - -7.8818609806320000E-5, -8.2758867628623800E-5, -8.6753213062403400E-5, - -9.0798755482139240E-5, -9.4892437636254000E-5, -9.9031035415475500E-5, - -1.0321116057304920E-4, -1.0742926070674010E-4, -1.1168161614264270E-4, - -1.1596433966772030E-4, -1.2027337376184880E-4, -1.2460449089034750E-4, - -1.2895330270761850E-4, -1.3331525983885840E-4, -1.3768563787408340E-4, - -1.4205953760578120E-4, -1.4643190426323540E-4, -1.5079752791692290E-4, - -1.5515103314094370E-4, -1.5948687909058970E-4, -1.6379937154642740E-4, - -1.6808266356446820E-4, -1.7233075773584680E-4, -1.7653750646560020E-4, - -1.8069661584612290E-4, -1.8480164638953740E-4, -1.8884602526638050E-4, - -1.9282304696531290E-4, -1.9672587556804270E-4, -2.0054754547108610E-4, - -2.0428097498957360E-4, -2.0791896735659270E-4, -2.1145421910491280E-4, - -2.1487932080488700E-4, -2.1818676491655660E-4, -2.2136894706917190E-4, - -2.2441818635854840E-4, -2.2732672676686290E-4, -2.3008674810081220E-4, - -2.3269036653525150E-4, -2.3512963563507800E-4, -2.3739654799291240E-4, - -2.3948307023621970E-4, -2.4138114593372380E-4, -2.4308272452941820E-4, - -2.4457975717687980E-4, -2.4586407616017000E-4, -2.4692741569938220E-4, - -2.4776199025177680E-4, -2.4836046092637280E-4, -2.4871461830381660E-4, - -2.4881540457247040E-4, -2.4865471770248810E-4, -2.4822543333608940E-4, - -2.4752008219951220E-4, -2.4653081794176570E-4, -2.4525003217524440E-4, - -2.4367037437341020E-4, 2.4178457457919800E-4, 2.3958543985834340E-4, - 2.3706595356421380E-4, 2.3421928008696620E-4, 2.3103877007019660E-4, - 2.2751796132972940E-4, 2.2365059385031200E-4, 2.1943061159567880E-4, - 2.1485218733324290E-4, 2.0990972538755550E-4, 2.0459789739171640E-4, - 1.9891164424316180E-4, 1.9284618337957900E-4, 1.8639701070854740E-4, - 1.7955993578371750E-4, 1.7233108395155490E-4, 1.6470690840351980E-4, - 1.5668419239382670E-4, 1.4826008597798460E-4, 1.3943210818407590E-4, - 1.3019815804235450E-4, 1.2055651618705740E-4, 1.1050586906665980E-4, - 1.0004531116378850E-4, 8.9174369623037550E-5, 7.7893006105444910E-5, - 6.6201632959158800E-5, 5.4101115008963200E-5, 4.1592792755171040E-5, - 2.8678484003389880E-5, 1.5360496520469550E-5, 1.6416297019304470E-6, - -1.2474801400564880E-5, -2.6984964757674160E-5, -4.1884506316022560E-5, - -5.7168548169515050E-5, -7.2831653374563650E-5, -8.8867825335203200E-5, - -1.0527052946041040E-4, -1.2203269185287530E-4, -1.3914664880465400E-4, - -1.5660414556657680E-4, -1.7439635977956720E-4, -1.9251390142613000E-4, - -2.1094678833176480E-4, -2.2968444457655940E-4, -2.4871569004884240E-4, - -2.6802874127778880E-4, -2.8761124019708440E-4, -3.0745025297166030E-4, - -3.2753221542219500E-4, -3.4784293347385130E-4, -3.6836764760397900E-4, - -3.8909103335715320E-4, -4.0999714822829530E-4, -4.3106943097409840E-4, - -4.5229073958127750E-4, -4.7364335350426610E-4, -4.9510898492628230E-4, - -5.1666877822680600E-4, -5.3830328700499900E-4, -5.5999247625413450E-4, - -5.8171579317559550E-4, -6.0345216810040500E-4, -6.2517996394886800E-4, - -6.4687697763330650E-4, -6.6852052145861900E-4, -6.9008742526480550E-4, - -7.1155400216196750E-4, -7.3289605035434600E-4, -7.5408892753413600E-4, - -7.7510755325530950E-4, -7.9592638676398950E-4, -8.1651942936660300E-4, - -8.3686029869896850E-4, -8.5692223230171550E-4, -8.7667809201044900E-4, - -8.9610036547340950E-4, -9.1516119514986000E-4, -9.3383238324995840E-4, - -9.5208547141354700E-4, -9.6989174214394400E-4, -9.8722217067251400E-4, - -1.0040474297445790E-3, -1.0203380430448350E-3, -1.0360643900964910E-3, - -1.0511966606168980E-3, -1.0657048556038330E-3, -1.0795588568782010E-3, - -1.0927284332850520E-3, -1.1051833075734240E-3, -1.1168931605293980E-3, - -1.1278276550234160E-3, -1.1379564405661050E-3, -1.1472492294891640E-3, - -1.1556758000499310E-3, -1.1632059885511800E-3, -1.1698096960154200E-3, - -1.1754570428998680E-3, -1.1801183720212010E-3, -1.1837641581852870E-3, - -1.1863650153060240E-3, -1.1878919433902330E-3, -1.1883163316843900E-3, - -1.1876097809178440E-3, -1.1857441072376680E-3, -1.1826916065321440E-3, - -1.1784250628415020E-3, -1.1729176690707690E-3, -1.1661430294353880E-3, - -1.1580752925519680E-3, -1.1486891568700730E-3, -1.1379598570807350E-3, - -1.1258631690530700E-3, -1.1123755320313420E-3, -1.0974740543942100E-3, - -1.0811365181610850E-3, -1.0633413819325920E-3, -1.0440678410743190E-3, - -1.0232958338441730E-3, -1.0010061160103870E-3, -9.7718026613602800E-4, - -9.5180072722007060E-4, -9.2485080945546600E-4, -8.9631470926558100E-4, - -8.6617751390929650E-4, -8.3442528375666700E-4, -8.0104505655578600E-4, - 7.6602485902806300E-4, 7.2935371157849700E-4, 6.9102172032639350E-4, - 6.5102007948960100E-4, 6.0934103180698750E-4, 5.6597787244591100E-4, - 5.2092507454409450E-4, 4.7417829303612970E-4, 4.2573432329476060E-4, - 3.7559110239316400E-4, 3.2374777823389440E-4, 2.7020471361387040E-4, - 2.1496350652513040E-4, 1.5802699163104190E-4, 9.9399252442146460E-5, - 3.9085623279149610E-5, -2.2907279717153710E-5, -8.6571556658577800E-5, - -1.5189801251884410E-4, -2.1887615668780720E-4, -2.8749420455512610E-4, - -3.5773907519488100E-4, -4.2959633884346400E-4, -5.0305021853266900E-4, - -5.7808367853976800E-4, -6.5467842279709950E-4, -7.3281477145293300E-4, - -8.1247166091487090E-4, -8.9362676824381250E-4, -9.7625651350435400E-4, - -1.0603359870796300E-3, -1.1458389497708370E-3, -1.2327379076720450E-3, - -1.3210041125919850E-3, -1.4106074964587530E-3, -1.5015166759080980E-3, - -1.5936991188210680E-3, -1.6871211446584360E-3, -1.7817477652804130E-3, - -1.8775426862784720E-3, -1.9744684954557180E-3, -2.0724866717198650E-3, - -2.1715575922482770E-3, -2.2716405301701940E-3, -2.3726935964105480E-3, - -2.4746737418493600E-3, -2.5775368629845300E-3, -2.6812378156433060E-3, - -2.7857306109716460E-3, -2.8909684129992950E-3, -2.9969032890820140E-3, - -3.1034862132032660E-3, -3.2106673881690480E-3, -3.3183962566563890E-3, - -3.4266214220855450E-3, -3.5352906520539890E-3, -3.6443510330122110E-3, - -3.7537489709635930E-3, -3.8634300521859240E-3, -3.9733390588103910E-3, - -4.0834204508378470E-3, -4.1936183686073460E-3, -4.3038762050876900E-3, - -4.4141366059086620E-3, -4.5243418977567100E-3, -4.6344341075783170E-3, - -4.7443549566589130E-3, -4.8540458565358850E-3, -4.9634478250060780E-3, - -5.0725014978718950E-3, -5.1811474713480250E-3, -5.2893263173827950E-3, - -5.3969785783205650E-3, -5.5040447592375600E-3, -5.6104651646665850E-3, - -5.7161799140263450E-3, -5.8211294443412250E-3, -5.9252545216101900E-3, - -6.0284959882028950E-3, -6.1307947602360250E-3, -6.2320920224565700E-3, - -6.3323292492425800E-3, -6.4314484717364400E-3, -6.5293922762311450E-3, - -6.6261035015351700E-3, -6.7215252466922100E-3, -6.8156013434509950E-3, - -6.9082763630156450E-3, -6.9994952920827200E-3, -7.0892035490577050E-3, - -7.1773476647806300E-3, -7.2638752839566550E-3, -7.3487345159041400E-3, - -7.4318739341000500E-3, -7.5132432154309250E-3, -7.5927931627681400E-3, - -7.6704755623721500E-3, -7.7462431738117650E-3, -7.8200496507836000E-3, - -7.8918495587816850E-3, -7.9615988430090790E-3, -8.0292548409052500E-3, - -8.0947760898363200E-3, -8.1581223027535600E-3, -8.2192540249893810E-3, - -8.2781326752680240E-3, -8.3347217911436610E-3, -8.3889870206274740E-3, - -8.4408946925453690E-3, -8.4904118087845760E-3, -8.5375073033623590E-3, - -8.5821520672029750E-3, -8.6243182341614300E-3, -8.6639791627160300E-3, - -8.7011097471794110E-3, -8.7356864659172800E-3, -8.7676881309490440E-3, - -8.7970958152554810E-3, -8.8238905039462850E-3, -8.8480531477483150E-3, - -8.8695681885783190E-3, -8.8884235927356400E-3, -8.9046080555685600E-3, - -8.9181109318560050E-3, -8.9289234995380550E-3, -8.9370390010903460E-3, - -8.9424522900292110E-3, -8.9451598223763610E-3, 8.9451598223763610E-3, - 8.9424522900292110E-3, 8.9370390010903460E-3, 8.9289234995380550E-3, - 8.9181109318560050E-3, 8.9046080555685600E-3, 8.8884235927356400E-3, - 8.8695681885783190E-3, 8.8480531477483150E-3, 8.8238905039462850E-3, - 8.7970958152554810E-3, 8.7676881309490440E-3, 8.7356864659172800E-3, - 8.7011097471794110E-3, 8.6639791627160300E-3, 8.6243182341614300E-3, - 8.5821520672029750E-3, 8.5375073033623590E-3, 8.4904118087845760E-3, - 8.4408946925453690E-3, 8.3889870206274740E-3, 8.3347217911436610E-3, - 8.2781326752680240E-3, 8.2192540249893810E-3, 8.1581223027535600E-3, - 8.0947760898363200E-3, 8.0292548409052500E-3, 7.9615988430090790E-3, - 7.8918495587816850E-3, 7.8200496507836000E-3, 7.7462431738117650E-3, - 7.6704755623721500E-3, 7.5927931627681400E-3, 7.5132432154309250E-3, - 7.4318739341000500E-3, 7.3487345159041400E-3, 7.2638752839566550E-3, - 7.1773476647806300E-3, 7.0892035490577050E-3, 6.9994952920827200E-3, - 6.9082763630156450E-3, 6.8156013434509950E-3, 6.7215252466922100E-3, - 6.6261035015351700E-3, 6.5293922762311450E-3, 6.4314484717364400E-3, - 6.3323292492425800E-3, 6.2320920224565700E-3, 6.1307947602360250E-3, - 6.0284959882028950E-3, 5.9252545216101900E-3, 5.8211294443412250E-3, - 5.7161799140263450E-3, 5.6104651646665850E-3, 5.5040447592375600E-3, - 5.3969785783205650E-3, 5.2893263173827950E-3, 5.1811474713480250E-3, - 5.0725014978718950E-3, 4.9634478250060780E-3, 4.8540458565358850E-3, - 4.7443549566589130E-3, 4.6344341075783170E-3, 4.5243418977567100E-3, - 4.4141366059086620E-3, 4.3038762050876900E-3, 4.1936183686073460E-3, - 4.0834204508378470E-3, 3.9733390588103910E-3, 3.8634300521859240E-3, - 3.7537489709635930E-3, 3.6443510330122110E-3, 3.5352906520539890E-3, - 3.4266214220855450E-3, 3.3183962566563890E-3, 3.2106673881690480E-3, - 3.1034862132032660E-3, 2.9969032890820140E-3, 2.8909684129992950E-3, - 2.7857306109716460E-3, 2.6812378156433060E-3, 2.5775368629845300E-3, - 2.4746737418493600E-3, 2.3726935964105480E-3, 2.2716405301701940E-3, - 2.1715575922482770E-3, 2.0724866717198650E-3, 1.9744684954557180E-3, - 1.8775426862784720E-3, 1.7817477652804130E-3, 1.6871211446584360E-3, - 1.5936991188210680E-3, 1.5015166759080980E-3, 1.4106074964587530E-3, - 1.3210041125919850E-3, 1.2327379076720450E-3, 1.1458389497708370E-3, - 1.0603359870796300E-3, 9.7625651350435400E-4, 8.9362676824381250E-4, - 8.1247166091487090E-4, 7.3281477145293300E-4, 6.5467842279709950E-4, - 5.7808367853976800E-4, 5.0305021853266900E-4, 4.2959633884346400E-4, - 3.5773907519488100E-4, 2.8749420455512610E-4, 2.1887615668780720E-4, - 1.5189801251884410E-4, 8.6571556658577800E-5, 2.2907279717153710E-5, - -3.9085623279149610E-5, -9.9399252442146460E-5, -1.5802699163104190E-4, - -2.1496350652513040E-4, -2.7020471361387040E-4, -3.2374777823389440E-4, - -3.7559110239316400E-4, -4.2573432329476060E-4, -4.7417829303612970E-4, - -5.2092507454409450E-4, -5.6597787244591100E-4, -6.0934103180698750E-4, - -6.5102007948960100E-4, -6.9102172032639350E-4, -7.2935371157849700E-4, - -7.6602485902806300E-4, 8.0104505655578600E-4, 8.3442528375666700E-4, - 8.6617751390929650E-4, 8.9631470926558100E-4, 9.2485080945546600E-4, - 9.5180072722007060E-4, 9.7718026613602800E-4, 1.0010061160103870E-3, - 1.0232958338441730E-3, 1.0440678410743190E-3, 1.0633413819325920E-3, - 1.0811365181610850E-3, 1.0974740543942100E-3, 1.1123755320313420E-3, - 1.1258631690530700E-3, 1.1379598570807350E-3, 1.1486891568700730E-3, - 1.1580752925519680E-3, 1.1661430294353880E-3, 1.1729176690707690E-3, - 1.1784250628415020E-3, 1.1826916065321440E-3, 1.1857441072376680E-3, - 1.1876097809178440E-3, 1.1883163316843900E-3, 1.1878919433902330E-3, - 1.1863650153060240E-3, 1.1837641581852870E-3, 1.1801183720212010E-3, - 1.1754570428998680E-3, 1.1698096960154200E-3, 1.1632059885511800E-3, - 1.1556758000499310E-3, 1.1472492294891640E-3, 1.1379564405661050E-3, - 1.1278276550234160E-3, 1.1168931605293980E-3, 1.1051833075734240E-3, - 1.0927284332850520E-3, 1.0795588568782010E-3, 1.0657048556038330E-3, - 1.0511966606168980E-3, 1.0360643900964910E-3, 1.0203380430448350E-3, - 1.0040474297445790E-3, 9.8722217067251400E-4, 9.6989174214394400E-4, - 9.5208547141354700E-4, 9.3383238324995840E-4, 9.1516119514986000E-4, - 8.9610036547340950E-4, 8.7667809201044900E-4, 8.5692223230171550E-4, - 8.3686029869896850E-4, 8.1651942936660300E-4, 7.9592638676398950E-4, - 7.7510755325530950E-4, 7.5408892753413600E-4, 7.3289605035434600E-4, - 7.1155400216196750E-4, 6.9008742526480550E-4, 6.6852052145861900E-4, - 6.4687697763330650E-4, 6.2517996394886800E-4, 6.0345216810040500E-4, - 5.8171579317559550E-4, 5.5999247625413450E-4, 5.3830328700499900E-4, - 5.1666877822680600E-4, 4.9510898492628230E-4, 4.7364335350426610E-4, - 4.5229073958127750E-4, 4.3106943097409840E-4, 4.0999714822829530E-4, - 3.8909103335715320E-4, 3.6836764760397900E-4, 3.4784293347385130E-4, - 3.2753221542219500E-4, 3.0745025297166030E-4, 2.8761124019708440E-4, - 2.6802874127778880E-4, 2.4871569004884240E-4, 2.2968444457655940E-4, - 2.1094678833176480E-4, 1.9251390142613000E-4, 1.7439635977956720E-4, - 1.5660414556657680E-4, 1.3914664880465400E-4, 1.2203269185287530E-4, - 1.0527052946041040E-4, 8.8867825335203200E-5, 7.2831653374563650E-5, - 5.7168548169515050E-5, 4.1884506316022560E-5, 2.6984964757674160E-5, - 1.2474801400564880E-5, -1.6416297019304470E-6, -1.5360496520469550E-5, - -2.8678484003389880E-5, -4.1592792755171040E-5, -5.4101115008963200E-5, - -6.6201632959158800E-5, -7.7893006105444910E-5, -8.9174369623037550E-5, - -1.0004531116378850E-4, -1.1050586906665980E-4, -1.2055651618705740E-4, - -1.3019815804235450E-4, -1.3943210818407590E-4, -1.4826008597798460E-4, - -1.5668419239382670E-4, -1.6470690840351980E-4, -1.7233108395155490E-4, - -1.7955993578371750E-4, -1.8639701070854740E-4, -1.9284618337957900E-4, - -1.9891164424316180E-4, -2.0459789739171640E-4, -2.0990972538755550E-4, - -2.1485218733324290E-4, -2.1943061159567880E-4, -2.2365059385031200E-4, - -2.2751796132972940E-4, -2.3103877007019660E-4, -2.3421928008696620E-4, - -2.3706595356421380E-4, -2.3958543985834340E-4, -2.4178457457919800E-4, - 2.4367037437341020E-4, 2.4525003217524440E-4, 2.4653081794176570E-4, - 2.4752008219951220E-4, 2.4822543333608940E-4, 2.4865471770248810E-4, - 2.4881540457247040E-4, 2.4871461830381660E-4, 2.4836046092637280E-4, - 2.4776199025177680E-4, 2.4692741569938220E-4, 2.4586407616017000E-4, - 2.4457975717687980E-4, 2.4308272452941820E-4, 2.4138114593372380E-4, - 2.3948307023621970E-4, 2.3739654799291240E-4, 2.3512963563507800E-4, - 2.3269036653525150E-4, 2.3008674810081220E-4, 2.2732672676686290E-4, - 2.2441818635854840E-4, 2.2136894706917190E-4, 2.1818676491655660E-4, - 2.1487932080488700E-4, 2.1145421910491280E-4, 2.0791896735659270E-4, - 2.0428097498957360E-4, 2.0054754547108610E-4, 1.9672587556804270E-4, - 1.9282304696531290E-4, 1.8884602526638050E-4, 1.8480164638953740E-4, - 1.8069661584612290E-4, 1.7653750646560020E-4, 1.7233075773584680E-4, - 1.6808266356446820E-4, 1.6379937154642740E-4, 1.5948687909058970E-4, - 1.5515103314094370E-4, 1.5079752791692290E-4, 1.4643190426323540E-4, - 1.4205953760578120E-4, 1.3768563787408340E-4, 1.3331525983885840E-4, - 1.2895330270761850E-4, 1.2460449089034750E-4, 1.2027337376184880E-4, - 1.1596433966772030E-4, 1.1168161614264270E-4, 1.0742926070674010E-4, - 1.0321116057304920E-4, 9.9031035415475500E-5, 9.4892437636254000E-5, - 9.0798755482139240E-5, 8.6753213062403400E-5, 8.2758867628623800E-5, - 7.8818609806320000E-5, 7.4935171411178040E-5, 7.1111125753722860E-5, - 6.7348886525882700E-5, 6.3650708053788550E-5, 6.0018691972791050E-5, - 5.6454787620185350E-5, 5.2960794000140600E-5, 4.9538360176954340E-5, - 4.6188991961724560E-5, 4.2914052387856640E-5, 3.9714765485539260E-5, - 3.6592216716540970E-5, 3.3547358765259040E-5, 3.0581012081916960E-5, - 2.7693871041862060E-5, 2.4886504491416160E-5, 2.2159361597292710E-5, - 1.9512772389215240E-5, 1.6946953848107710E-5, 1.4462010500550970E-5, - 1.2057941408635810E-5, 9.7346407524871100E-6, 7.4919036559427900E-6, - 5.3294268968052800E-6, 3.2468187066945930E-6, 1.2435990827839660E-6, - -6.8080315386959900E-7, -2.5270494199802070E-6, -4.2958677847708840E-6, - -5.9880523825897000E-6, -7.6044740757265500E-6, -9.1460801506922300E-6, - -1.0613876973541650E-5, -1.2008929083235120E-5, -1.3332356590263080E-5, - -1.4585334740507920E-5, -1.5769086921577900E-5, -1.6884884022311310E-5, - -1.7934037335534700E-5, -1.8917898053528080E-5, -1.9837853265502040E-5, - -2.0695325418576370E-5, -2.1491764461832140E-5, -2.2228647280994560E-5, - -2.2907473117403740E-5, -2.3529763128539150E-5, -2.4097055300584120E-5, - -2.4610903957661350E-5, -2.5072874052447260E-5, -2.5484540698002960E-5, - -2.5847484577439320E-5, -2.6163291550639320E-5, -2.6433548592482960E-5, - -2.6659843389908530E-5, -2.6843759539035120E-5, -2.6986876191054700E-5, - -2.7090765064735940E-5, -2.7156990105794550E-5, -2.7187102980536760E-5, - -2.7182642746157720E-5, -2.7145133103663890E-5, -2.7076082153012070E-5, - -2.6976979753245170E-5, -2.6849297239997120E-5, -2.6694483850464800E-5, - -2.6513966535124460E-5, -2.6309149390520640E-5, -2.6081413415833200E-5, - -2.5832111724562040E-5, -2.5562569399199020E-5, 2.5274085082324960E-5, - 2.4967930863542620E-5, 2.4645348200903720E-5, 2.4307547722489910E-5, - 2.3955708939763280E-5, 2.3590980216497750E-5, 2.3214478371918170E-5, - 2.2827288605503470E-5, 2.2430463239517170E-5, 2.2025021652894630E-5, - 2.1611950084231910E-5, 2.1192201630574280E-5, 2.0766696417773940E-5, - 2.0336321557464510E-5, 1.9901930030141080E-5, 1.9464340744880170E-5, - 1.9024340970099240E-5, 1.8582686308483550E-5, 1.8140097714618200E-5, - 1.7697261563607500E-5, 1.7254834143068570E-5, 1.6813441716539560E-5, - 1.6373677426466900E-5, 1.5936101341640500E-5, 1.5501244597782600E-5, - 1.5069609527679710E-5, 1.4641668383496450E-5, 1.4217863365843780E-5, - 1.3798608540965960E-5, 1.3384289978242060E-5, 1.2975266858030310E-5, - 1.2571871574469220E-5, 1.2174410889256530E-5, 1.1783166036693560E-5, - 1.1398393880881060E-5, 1.1020327046334650E-5, 1.0649175634328590E-5, - 1.0285127334608450E-5, 9.9283481667264540E-6, 9.5789825988253100E-6, - 9.2371554195468400E-6, 8.9029718900122000E-6, 8.5765192154768100E-6, - 8.2578666429227760E-6, 7.9470661364365490E-6, 7.6441525098592000E-6, - 7.3491456697144900E-6, 7.0620507545154100E-6, 6.7828589565804950E-6, - 6.5115476278604000E-6, 6.2480817863072800E-6, 5.9924142424804800E-6, - 5.7444868785028750E-6, 5.5042307535458100E-6, 5.2715671455405850E-6, - 5.0464076705003400E-6, 4.8286558658894680E-6, 4.6182073040543900E-6, - 4.4149505043312320E-6, 4.2187670209852250E-6, 4.0295324657699800E-6, - 3.8471166218015830E-6, 3.6713849262294680E-6, 3.5021985520037540E-6, - 3.3394147240855820E-6, 3.1828867865974640E-6, 3.0324653639203880E-6, - 2.8879984579501380E-6, 2.7493324266391140E-6, 2.6163120571644820E-6, - 2.4887811970856540E-6, 2.3665828120950560E-6, 2.2495596253776460E-6, - 2.1375541686662320E-6, 2.0304092660990760E-6, 1.9279680902322050E-6, - 1.8300749104526120E-6, 1.7365751553971340E-6, 1.6473160377545360E-6, - 1.5621465913980060E-6, 1.4809178634979940E-6, 1.4034829433780260E-6, - 1.3296974052300520E-6, 1.2594193438633260E-6, 1.1925097184646100E-6, - 1.1288323637155430E-6, 1.0682538906146330E-6, 1.0106437128213760E-6, - 9.5587472540498280E-7, 9.0382333224895500E-7, 8.5436937020293650E-7, - 8.0739610368280600E-7, 7.6279018172077200E-7, 7.2044165259013450E-7, - 6.8024432849991400E-7, 6.4209580087853050E-7, 6.0589741192019800E-7, - 5.7155423388793000E-7, 5.3897464223335550E-7, 5.0807031294631050E-7, - 4.7875659112606760E-7, 4.5095249563698380E-7, 4.2458045296159330E-7, - 3.9956628121669190E-7, 3.7583910465412180E-7, 3.5333134588843600E-7, - 3.3197864040473180E-7, 3.1171981968268900E-7, 2.9249662541757600E-7, - 2.7425370308549580E-7, 2.5693874615777660E-7, 2.4050245877923400E-7, - 2.2489759047553620E-7, 2.1007899706006800E-7, 1.9600594587757850E-7, - 1.8264184311018150E-7, 1.6994592926571220E-7, 1.5787424998123710E-7, - 1.4640931821191640E-7, 1.3555636137971380E-7, 1.2523109645615350E-7, - 1.1527363411865760E-7, 1.0586659510721950E-7, 9.7483190494874640E-8, - 8.9326871281374790E-8, 7.9525034321375090E-8, 7.0950903150874990E-8, - 7.1279389866041690E-8 + SCALE(-7.127938986604168E-08), SCALE(-7.095090315087499E-08), + SCALE(-7.952503432137510E-08), SCALE(-8.932687128137479E-08), + SCALE(-9.748319049487465E-08), SCALE(-1.058665951072195E-07), + SCALE(-1.152736341186576E-07), SCALE(-1.252310964561535E-07), + SCALE(-1.355563613797138E-07), SCALE(-1.464093182119164E-07), + SCALE(-1.578742499812371E-07), SCALE(-1.699459292657122E-07), + SCALE(-1.826418431101815E-07), SCALE(-1.960059458775785E-07), + SCALE(-2.100789970600680E-07), SCALE(-2.248975904755362E-07), + SCALE(-2.405024587792340E-07), SCALE(-2.569387461577766E-07), + SCALE(-2.742537030854958E-07), SCALE(-2.924966254175760E-07), + SCALE(-3.117198196826890E-07), SCALE(-3.319786404047318E-07), + SCALE(-3.533313458884360E-07), SCALE(-3.758391046541218E-07), + SCALE(-3.995662812166919E-07), SCALE(-4.245804529615933E-07), + SCALE(-4.509524956369838E-07), SCALE(-4.787565911260676E-07), + SCALE(-5.080703129463105E-07), SCALE(-5.389746422333555E-07), + SCALE(-5.715542338879300E-07), SCALE(-6.058974119201980E-07), + -SCALE(-6.420958008785305E-07), -SCALE(-6.802443284999140E-07), + -SCALE(-7.204416525901345E-07), -SCALE(-7.627901817207720E-07), + -SCALE(-8.073961036828060E-07), -SCALE(-8.543693702029365E-07), + -SCALE(-9.038233322489550E-07), -SCALE(-9.558747254049829E-07), + -SCALE(-1.010643712821376E-06), -SCALE(-1.068253890614633E-06), + -SCALE(-1.128832363715543E-06), -SCALE(-1.192509718464610E-06), + -SCALE(-1.259419343863326E-06), -SCALE(-1.329697405230052E-06), + -SCALE(-1.403482943378026E-06), -SCALE(-1.480917863497994E-06), + -SCALE(-1.562146591398006E-06), -SCALE(-1.647316037754536E-06), + -SCALE(-1.736575155397134E-06), -SCALE(-1.830074910452612E-06), + -SCALE(-1.927968090232205E-06), -SCALE(-2.030409266099076E-06), + -SCALE(-2.137554168666232E-06), -SCALE(-2.249559625377646E-06), + -SCALE(-2.366582812095056E-06), -SCALE(-2.488781197085654E-06), + -SCALE(-2.616312057164482E-06), -SCALE(-2.749332426639114E-06), + -SCALE(-2.887998457950138E-06), -SCALE(-3.032465363920388E-06), + -SCALE(-3.182886786597464E-06), -SCALE(-3.339414724085582E-06), + -SCALE(-3.502198552003754E-06), -SCALE(-3.671384926229468E-06), + -SCALE(-3.847116621801583E-06), -SCALE(-4.029532465769980E-06), + -SCALE(-4.218767020985225E-06), -SCALE(-4.414950504331232E-06), + -SCALE(-4.618207304054390E-06), -SCALE(-4.828655865889468E-06), + -SCALE(-5.046407670500340E-06), -SCALE(-5.271567145540585E-06), + -SCALE(-5.504230753545810E-06), -SCALE(-5.744486878502875E-06), + -SCALE(-5.992414242480480E-06), -SCALE(-6.248081786307280E-06), + -SCALE(-6.511547627860400E-06), -SCALE(-6.782858956580495E-06), + -SCALE(-7.062050754515410E-06), -SCALE(-7.349145669714490E-06), + -SCALE(-7.644152509859200E-06), -SCALE(-7.947066136436549E-06), + -SCALE(-8.257866642922776E-06), -SCALE(-8.576519215476810E-06), + -SCALE(-8.902971890012200E-06), -SCALE(-9.237155419546841E-06), + -SCALE(-9.578982598825311E-06), -SCALE(-9.928348166726454E-06), + -SCALE(-1.028512733460845E-05), -SCALE(-1.064917563432859E-05), + -SCALE(-1.102032704633465E-05), -SCALE(-1.139839388088106E-05), + -SCALE(-1.178316603669356E-05), -SCALE(-1.217441088925653E-05), + -SCALE(-1.257187157446922E-05), -SCALE(-1.297526685803031E-05), + -SCALE(-1.338428997824206E-05), -SCALE(-1.379860854096596E-05), + -SCALE(-1.421786336584378E-05), -SCALE(-1.464166838349645E-05), + -SCALE(-1.506960952767971E-05), -SCALE(-1.550124459778260E-05), + -SCALE(-1.593610134164050E-05), -SCALE(-1.637367742646690E-05), + -SCALE(-1.681344171653956E-05), -SCALE(-1.725483414306857E-05), + -SCALE(-1.769726156360750E-05), -SCALE(-1.814009771461820E-05), + -SCALE(-1.858268630848355E-05), -SCALE(-1.902434097009924E-05), + -SCALE(-1.946434074488017E-05), -SCALE(-1.990193003014108E-05), + -SCALE(-2.033632155746451E-05), -SCALE(-2.076669641777394E-05), + -SCALE(-2.119220163057428E-05), -SCALE(-2.161195008423191E-05), + -SCALE(-2.202502165289463E-05), -SCALE(-2.243046323951717E-05), + -SCALE(-2.282728860550347E-05), -SCALE(-2.321447837191817E-05), + -SCALE(-2.359098021649775E-05), -SCALE(-2.395570893976328E-05), + -SCALE(-2.430754772248991E-05), -SCALE(-2.464534820090372E-05), + -SCALE(-2.496793086354262E-05), -SCALE(-2.527408508232496E-05), + SCALE( 2.556256939919902E-05), SCALE( 2.583211172456204E-05), + SCALE( 2.608141341583320E-05), SCALE( 2.630914939052064E-05), + SCALE( 2.651396653512446E-05), SCALE( 2.669448385046480E-05), + SCALE( 2.684929723999712E-05), SCALE( 2.697697975324517E-05), + SCALE( 2.707608215301207E-05), SCALE( 2.714513310366389E-05), + SCALE( 2.718264274615772E-05), SCALE( 2.718710298053676E-05), + SCALE( 2.715699010579455E-05), SCALE( 2.709076506473594E-05), + SCALE( 2.698687619105470E-05), SCALE( 2.684375953903512E-05), + SCALE( 2.665984338990853E-05), SCALE( 2.643354859248296E-05), + SCALE( 2.616329155063932E-05), SCALE( 2.584748457743932E-05), + SCALE( 2.548454069800296E-05), SCALE( 2.507287405244726E-05), + SCALE( 2.461090395766135E-05), SCALE( 2.409705530058412E-05), + SCALE( 2.352976312853915E-05), SCALE( 2.290747311740374E-05), + SCALE( 2.222864728099456E-05), SCALE( 2.149176446183214E-05), + SCALE( 2.069532541857637E-05), SCALE( 1.983785326550204E-05), + SCALE( 1.891789805352808E-05), SCALE( 1.793403733553470E-05), + -SCALE( 1.688488402231131E-05), -SCALE( 1.576908692157790E-05), + -SCALE( 1.458533474050792E-05), -SCALE( 1.333235659026308E-05), + -SCALE( 1.200892908323512E-05), -SCALE( 1.061387697354165E-05), + -SCALE( 9.146080150692231E-06), -SCALE( 7.604474075726550E-06), + -SCALE( 5.988052382589700E-06), -SCALE( 4.295867784770884E-06), + -SCALE( 2.527049419980207E-06), -SCALE( 6.808031538695990E-07), + -SCALE(-1.243599082783966E-06), -SCALE(-3.246818706694593E-06), + -SCALE(-5.329426896805280E-06), -SCALE(-7.491903655942790E-06), + -SCALE(-9.734640752487110E-06), -SCALE(-1.205794140863581E-05), + -SCALE(-1.446201050055097E-05), -SCALE(-1.694695384810771E-05), + -SCALE(-1.951277238921524E-05), -SCALE(-2.215936159729271E-05), + -SCALE(-2.488650449141616E-05), -SCALE(-2.769387104186206E-05), + -SCALE(-3.058101208191696E-05), -SCALE(-3.354735876525904E-05), + -SCALE(-3.659221671654097E-05), -SCALE(-3.971476548553926E-05), + -SCALE(-4.291405238785664E-05), -SCALE(-4.618899196172456E-05), + -SCALE(-4.953836017695434E-05), -SCALE(-5.296079400014060E-05), + -SCALE(-5.645478762018535E-05), -SCALE(-6.001869197279105E-05), + -SCALE(-6.365070805378855E-05), -SCALE(-6.734888652588270E-05), + -SCALE(-7.111112575372286E-05), -SCALE(-7.493517141117804E-05), + -SCALE(-7.881860980632000E-05), -SCALE(-8.275886762862380E-05), + -SCALE(-8.675321306240340E-05), -SCALE(-9.079875548213924E-05), + -SCALE(-9.489243763625400E-05), -SCALE(-9.903103541547551E-05), + -SCALE(-1.032111605730492E-04), -SCALE(-1.074292607067401E-04), + -SCALE(-1.116816161426427E-04), -SCALE(-1.159643396677203E-04), + -SCALE(-1.202733737618488E-04), -SCALE(-1.246044908903475E-04), + -SCALE(-1.289533027076185E-04), -SCALE(-1.333152598388584E-04), + -SCALE(-1.376856378740834E-04), -SCALE(-1.420595376057812E-04), + -SCALE(-1.464319042632354E-04), -SCALE(-1.507975279169229E-04), + -SCALE(-1.551510331409437E-04), -SCALE(-1.594868790905897E-04), + -SCALE(-1.637993715464274E-04), -SCALE(-1.680826635644682E-04), + -SCALE(-1.723307577358468E-04), -SCALE(-1.765375064656002E-04), + -SCALE(-1.806966158461229E-04), -SCALE(-1.848016463895374E-04), + -SCALE(-1.888460252663805E-04), -SCALE(-1.928230469653129E-04), + -SCALE(-1.967258755680427E-04), -SCALE(-2.005475454710861E-04), + -SCALE(-2.042809749895736E-04), -SCALE(-2.079189673565927E-04), + -SCALE(-2.114542191049128E-04), -SCALE(-2.148793208048870E-04), + -SCALE(-2.181867649165566E-04), -SCALE(-2.213689470691719E-04), + -SCALE(-2.244181863585484E-04), -SCALE(-2.273267267668629E-04), + -SCALE(-2.300867481008122E-04), -SCALE(-2.326903665352515E-04), + -SCALE(-2.351296356350780E-04), -SCALE(-2.373965479929124E-04), + -SCALE(-2.394830702362197E-04), -SCALE(-2.413811459337238E-04), + -SCALE(-2.430827245294182E-04), -SCALE(-2.445797571768798E-04), + -SCALE(-2.458640761601700E-04), -SCALE(-2.469274156993822E-04), + -SCALE(-2.477619902517768E-04), -SCALE(-2.483604609263728E-04), + -SCALE(-2.487146183038166E-04), -SCALE(-2.488154045724704E-04), + -SCALE(-2.486547177024881E-04), -SCALE(-2.482254333360894E-04), + -SCALE(-2.475200821995122E-04), -SCALE(-2.465308179417657E-04), + -SCALE(-2.452500321752444E-04), -SCALE(-2.436703743734102E-04), + SCALE( 2.417845745791980E-04), SCALE( 2.395854398583434E-04), + SCALE( 2.370659535642138E-04), SCALE( 2.342192800869662E-04), + SCALE( 2.310387700701966E-04), SCALE( 2.275179613297294E-04), + SCALE( 2.236505938503120E-04), SCALE( 2.194306115956788E-04), + SCALE( 2.148521873332429E-04), SCALE( 2.099097253875555E-04), + SCALE( 2.045978973917164E-04), SCALE( 1.989116442431618E-04), + SCALE( 1.928461833795790E-04), SCALE( 1.863970107085474E-04), + SCALE( 1.795599357837175E-04), SCALE( 1.723310839515549E-04), + SCALE( 1.647069084035198E-04), SCALE( 1.566841923938267E-04), + SCALE( 1.482600859779846E-04), SCALE( 1.394321081840759E-04), + SCALE( 1.301981580423545E-04), SCALE( 1.205565161870574E-04), + SCALE( 1.105058690666598E-04), SCALE( 1.000453111637885E-04), + SCALE( 8.917436962303755E-05), SCALE( 7.789300610544491E-05), + SCALE( 6.620163295915880E-05), SCALE( 5.410111500896320E-05), + SCALE( 4.159279275517104E-05), SCALE( 2.867848400338988E-05), + SCALE( 1.536049652046955E-05), SCALE( 1.641629701930447E-06), + -SCALE(-1.247480140056488E-05), -SCALE(-2.698496475767416E-05), + -SCALE(-4.188450631602256E-05), -SCALE(-5.716854816951505E-05), + -SCALE(-7.283165337456365E-05), -SCALE(-8.886782533520320E-05), + -SCALE(-1.052705294604104E-04), -SCALE(-1.220326918528753E-04), + -SCALE(-1.391466488046540E-04), -SCALE(-1.566041455665768E-04), + -SCALE(-1.743963597795672E-04), -SCALE(-1.925139014261300E-04), + -SCALE(-2.109467883317648E-04), -SCALE(-2.296844445765594E-04), + -SCALE(-2.487156900488424E-04), -SCALE(-2.680287412777888E-04), + -SCALE(-2.876112401970844E-04), -SCALE(-3.074502529716603E-04), + -SCALE(-3.275322154221950E-04), -SCALE(-3.478429334738513E-04), + -SCALE(-3.683676476039790E-04), -SCALE(-3.890910333571532E-04), + -SCALE(-4.099971482282953E-04), -SCALE(-4.310694309740984E-04), + -SCALE(-4.522907395812775E-04), -SCALE(-4.736433535042661E-04), + -SCALE(-4.951089849262823E-04), -SCALE(-5.166687782268060E-04), + -SCALE(-5.383032870049990E-04), -SCALE(-5.599924762541345E-04), + -SCALE(-5.817157931755955E-04), -SCALE(-6.034521681004050E-04), + -SCALE(-6.251799639488680E-04), -SCALE(-6.468769776333065E-04), + -SCALE(-6.685205214586190E-04), -SCALE(-6.900874252648055E-04), + -SCALE(-7.115540021619675E-04), -SCALE(-7.328960503543460E-04), + -SCALE(-7.540889275341360E-04), -SCALE(-7.751075532553095E-04), + -SCALE(-7.959263867639895E-04), -SCALE(-8.165194293666030E-04), + -SCALE(-8.368602986989685E-04), -SCALE(-8.569222323017155E-04), + -SCALE(-8.766780920104490E-04), -SCALE(-8.961003654734095E-04), + -SCALE(-9.151611951498600E-04), -SCALE(-9.338323832499584E-04), + -SCALE(-9.520854714135470E-04), -SCALE(-9.698917421439440E-04), + -SCALE(-9.872221706725139E-04), -SCALE(-1.004047429744579E-03), + -SCALE(-1.020338043044835E-03), -SCALE(-1.036064390096491E-03), + -SCALE(-1.051196660616898E-03), -SCALE(-1.065704855603833E-03), + -SCALE(-1.079558856878201E-03), -SCALE(-1.092728433285052E-03), + -SCALE(-1.105183307573424E-03), -SCALE(-1.116893160529398E-03), + -SCALE(-1.127827655023416E-03), -SCALE(-1.137956440566105E-03), + -SCALE(-1.147249229489164E-03), -SCALE(-1.155675800049931E-03), + -SCALE(-1.163205988551180E-03), -SCALE(-1.169809696015420E-03), + -SCALE(-1.175457042899868E-03), -SCALE(-1.180118372021201E-03), + -SCALE(-1.183764158185287E-03), -SCALE(-1.186365015306024E-03), + -SCALE(-1.187891943390233E-03), -SCALE(-1.188316331684390E-03), + -SCALE(-1.187609780917844E-03), -SCALE(-1.185744107237668E-03), + -SCALE(-1.182691606532144E-03), -SCALE(-1.178425062841502E-03), + -SCALE(-1.172917669070769E-03), -SCALE(-1.166143029435388E-03), + -SCALE(-1.158075292551968E-03), -SCALE(-1.148689156870073E-03), + -SCALE(-1.137959857080735E-03), -SCALE(-1.125863169053070E-03), + -SCALE(-1.112375532031342E-03), -SCALE(-1.097474054394210E-03), + -SCALE(-1.081136518161085E-03), -SCALE(-1.063341381932592E-03), + -SCALE(-1.044067841074319E-03), -SCALE(-1.023295833844173E-03), + -SCALE(-1.001006116010387E-03), -SCALE(-9.771802661360279E-04), + -SCALE(-9.518007272200706E-04), -SCALE(-9.248508094554660E-04), + -SCALE(-8.963147092655810E-04), -SCALE(-8.661775139092965E-04), + -SCALE(-8.344252837566670E-04), -SCALE(-8.010450565557860E-04), + SCALE( 7.660248590280630E-04), SCALE( 7.293537115784970E-04), + SCALE( 6.910217203263935E-04), SCALE( 6.510200794896010E-04), + SCALE( 6.093410318069875E-04), SCALE( 5.659778724459110E-04), + SCALE( 5.209250745440945E-04), SCALE( 4.741782930361297E-04), + SCALE( 4.257343232947606E-04), SCALE( 3.755911023931640E-04), + SCALE( 3.237477782338944E-04), SCALE( 2.702047136138704E-04), + SCALE( 2.149635065251304E-04), SCALE( 1.580269916310419E-04), + SCALE( 9.939925244214647E-05), SCALE( 3.908562327914961E-05), + SCALE(-2.290727971715371E-05), SCALE(-8.657155665857780E-05), + SCALE(-1.518980125188441E-04), SCALE(-2.188761566878072E-04), + SCALE(-2.874942045551261E-04), SCALE(-3.577390751948810E-04), + SCALE(-4.295963388434640E-04), SCALE(-5.030502185326690E-04), + SCALE(-5.780836785397680E-04), SCALE(-6.546784227970995E-04), + SCALE(-7.328147714529330E-04), SCALE(-8.124716609148709E-04), + SCALE(-8.936267682438125E-04), SCALE(-9.762565135043539E-04), + SCALE(-1.060335987079630E-03), SCALE(-1.145838949770837E-03), + -SCALE(-1.232737907672045E-03), -SCALE(-1.321004112591985E-03), + -SCALE(-1.410607496458753E-03), -SCALE(-1.501516675908098E-03), + -SCALE(-1.593699118821068E-03), -SCALE(-1.687121144658436E-03), + -SCALE(-1.781747765280413E-03), -SCALE(-1.877542686278472E-03), + -SCALE(-1.974468495455718E-03), -SCALE(-2.072486671719865E-03), + -SCALE(-2.171557592248277E-03), -SCALE(-2.271640530170194E-03), + -SCALE(-2.372693596410548E-03), -SCALE(-2.474673741849360E-03), + -SCALE(-2.577536862984530E-03), -SCALE(-2.681237815643306E-03), + -SCALE(-2.785730610971646E-03), -SCALE(-2.890968412999295E-03), + -SCALE(-2.996903289082014E-03), -SCALE(-3.103486213203266E-03), + -SCALE(-3.210667388169048E-03), -SCALE(-3.318396256656389E-03), + -SCALE(-3.426621422085545E-03), -SCALE(-3.535290652053989E-03), + -SCALE(-3.644351033012211E-03), -SCALE(-3.753748970963593E-03), + -SCALE(-3.863430052185924E-03), -SCALE(-3.973339058810391E-03), + -SCALE(-4.083420450837847E-03), -SCALE(-4.193618368607346E-03), + -SCALE(-4.303876205087690E-03), -SCALE(-4.414136605908662E-03), + -SCALE(-4.524341897756710E-03), -SCALE(-4.634434107578317E-03), + -SCALE(-4.744354956658913E-03), -SCALE(-4.854045856535885E-03), + -SCALE(-4.963447825006078E-03), -SCALE(-5.072501497871895E-03), + -SCALE(-5.181147471348025E-03), -SCALE(-5.289326317382795E-03), + -SCALE(-5.396978578320565E-03), -SCALE(-5.504044759237560E-03), + -SCALE(-5.610465164666585E-03), -SCALE(-5.716179914026345E-03), + -SCALE(-5.821129444341225E-03), -SCALE(-5.925254521610190E-03), + -SCALE(-6.028495988202895E-03), -SCALE(-6.130794760236025E-03), + -SCALE(-6.232092022456570E-03), -SCALE(-6.332329249242580E-03), + -SCALE(-6.431448471736440E-03), -SCALE(-6.529392276231145E-03), + -SCALE(-6.626103501535170E-03), -SCALE(-6.721525246692210E-03), + -SCALE(-6.815601343450995E-03), -SCALE(-6.908276363015645E-03), + -SCALE(-6.999495292082720E-03), -SCALE(-7.089203549057705E-03), + -SCALE(-7.177347664780630E-03), -SCALE(-7.263875283956655E-03), + -SCALE(-7.348734515904140E-03), -SCALE(-7.431873934100050E-03), + -SCALE(-7.513243215430925E-03), -SCALE(-7.592793162768140E-03), + -SCALE(-7.670475562372150E-03), -SCALE(-7.746243173811765E-03), + -SCALE(-7.820049650783600E-03), -SCALE(-7.891849558781685E-03), + -SCALE(-7.961598843009079E-03), -SCALE(-8.029254840905250E-03), + -SCALE(-8.094776089836320E-03), -SCALE(-8.158122302753560E-03), + -SCALE(-8.219254024989381E-03), -SCALE(-8.278132675268024E-03), + -SCALE(-8.334721791143661E-03), -SCALE(-8.388987020627474E-03), + -SCALE(-8.440894692545369E-03), -SCALE(-8.490411808784576E-03), + -SCALE(-8.537507303362359E-03), -SCALE(-8.582152067202975E-03), + -SCALE(-8.624318234161430E-03), -SCALE(-8.663979162716030E-03), + -SCALE(-8.701109747179411E-03), -SCALE(-8.735686465917280E-03), + -SCALE(-8.767688130949044E-03), -SCALE(-8.797095815255481E-03), + -SCALE(-8.823890503946285E-03), -SCALE(-8.848053147748315E-03), + -SCALE(-8.869568188578319E-03), -SCALE(-8.888423592735640E-03), + -SCALE(-8.904608055568560E-03), -SCALE(-8.918110931856005E-03), + -SCALE(-8.928923499538055E-03), -SCALE(-8.937039001090346E-03), + -SCALE(-8.942452290029211E-03), -SCALE(-8.945159822376361E-03), + SCALE( 8.945159822376361E-03), SCALE( 8.942452290029211E-03), + SCALE( 8.937039001090346E-03), SCALE( 8.928923499538055E-03), + SCALE( 8.918110931856005E-03), SCALE( 8.904608055568560E-03), + SCALE( 8.888423592735640E-03), SCALE( 8.869568188578319E-03), + SCALE( 8.848053147748315E-03), SCALE( 8.823890503946285E-03), + SCALE( 8.797095815255481E-03), SCALE( 8.767688130949044E-03), + SCALE( 8.735686465917280E-03), SCALE( 8.701109747179411E-03), + SCALE( 8.663979162716030E-03), SCALE( 8.624318234161430E-03), + SCALE( 8.582152067202975E-03), SCALE( 8.537507303362359E-03), + SCALE( 8.490411808784576E-03), SCALE( 8.440894692545369E-03), + SCALE( 8.388987020627474E-03), SCALE( 8.334721791143661E-03), + SCALE( 8.278132675268024E-03), SCALE( 8.219254024989381E-03), + SCALE( 8.158122302753560E-03), SCALE( 8.094776089836320E-03), + SCALE( 8.029254840905250E-03), SCALE( 7.961598843009079E-03), + SCALE( 7.891849558781685E-03), SCALE( 7.820049650783600E-03), + SCALE( 7.746243173811765E-03), SCALE( 7.670475562372150E-03), + -SCALE( 7.592793162768140E-03), -SCALE( 7.513243215430925E-03), + -SCALE( 7.431873934100050E-03), -SCALE( 7.348734515904140E-03), + -SCALE( 7.263875283956655E-03), -SCALE( 7.177347664780630E-03), + -SCALE( 7.089203549057705E-03), -SCALE( 6.999495292082720E-03), + -SCALE( 6.908276363015645E-03), -SCALE( 6.815601343450995E-03), + -SCALE( 6.721525246692210E-03), -SCALE( 6.626103501535170E-03), + -SCALE( 6.529392276231145E-03), -SCALE( 6.431448471736440E-03), + -SCALE( 6.332329249242580E-03), -SCALE( 6.232092022456570E-03), + -SCALE( 6.130794760236025E-03), -SCALE( 6.028495988202895E-03), + -SCALE( 5.925254521610190E-03), -SCALE( 5.821129444341225E-03), + -SCALE( 5.716179914026345E-03), -SCALE( 5.610465164666585E-03), + -SCALE( 5.504044759237560E-03), -SCALE( 5.396978578320565E-03), + -SCALE( 5.289326317382795E-03), -SCALE( 5.181147471348025E-03), + -SCALE( 5.072501497871895E-03), -SCALE( 4.963447825006078E-03), + -SCALE( 4.854045856535885E-03), -SCALE( 4.744354956658913E-03), + -SCALE( 4.634434107578317E-03), -SCALE( 4.524341897756710E-03), + -SCALE( 4.414136605908662E-03), -SCALE( 4.303876205087690E-03), + -SCALE( 4.193618368607346E-03), -SCALE( 4.083420450837847E-03), + -SCALE( 3.973339058810391E-03), -SCALE( 3.863430052185924E-03), + -SCALE( 3.753748970963593E-03), -SCALE( 3.644351033012211E-03), + -SCALE( 3.535290652053989E-03), -SCALE( 3.426621422085545E-03), + -SCALE( 3.318396256656389E-03), -SCALE( 3.210667388169048E-03), + -SCALE( 3.103486213203266E-03), -SCALE( 2.996903289082014E-03), + -SCALE( 2.890968412999295E-03), -SCALE( 2.785730610971646E-03), + -SCALE( 2.681237815643306E-03), -SCALE( 2.577536862984530E-03), + -SCALE( 2.474673741849360E-03), -SCALE( 2.372693596410548E-03), + -SCALE( 2.271640530170194E-03), -SCALE( 2.171557592248277E-03), + -SCALE( 2.072486671719865E-03), -SCALE( 1.974468495455718E-03), + -SCALE( 1.877542686278472E-03), -SCALE( 1.781747765280413E-03), + -SCALE( 1.687121144658436E-03), -SCALE( 1.593699118821068E-03), + -SCALE( 1.501516675908098E-03), -SCALE( 1.410607496458753E-03), + -SCALE( 1.321004112591985E-03), -SCALE( 1.232737907672045E-03), + -SCALE( 1.145838949770837E-03), -SCALE( 1.060335987079630E-03), + -SCALE( 9.762565135043539E-04), -SCALE( 8.936267682438125E-04), + -SCALE( 8.124716609148709E-04), -SCALE( 7.328147714529330E-04), + -SCALE( 6.546784227970995E-04), -SCALE( 5.780836785397680E-04), + -SCALE( 5.030502185326690E-04), -SCALE( 4.295963388434640E-04), + -SCALE( 3.577390751948810E-04), -SCALE( 2.874942045551261E-04), + -SCALE( 2.188761566878072E-04), -SCALE( 1.518980125188441E-04), + -SCALE( 8.657155665857780E-05), -SCALE( 2.290727971715371E-05), + -SCALE(-3.908562327914961E-05), -SCALE(-9.939925244214647E-05), + -SCALE(-1.580269916310419E-04), -SCALE(-2.149635065251304E-04), + -SCALE(-2.702047136138704E-04), -SCALE(-3.237477782338944E-04), + -SCALE(-3.755911023931640E-04), -SCALE(-4.257343232947606E-04), + -SCALE(-4.741782930361297E-04), -SCALE(-5.209250745440945E-04), + -SCALE(-5.659778724459110E-04), -SCALE(-6.093410318069875E-04), + -SCALE(-6.510200794896010E-04), -SCALE(-6.910217203263935E-04), + -SCALE(-7.293537115784970E-04), -SCALE(-7.660248590280630E-04), + SCALE( 8.010450565557860E-04), SCALE( 8.344252837566670E-04), + SCALE( 8.661775139092965E-04), SCALE( 8.963147092655810E-04), + SCALE( 9.248508094554660E-04), SCALE( 9.518007272200706E-04), + SCALE( 9.771802661360279E-04), SCALE( 1.001006116010387E-03), + SCALE( 1.023295833844173E-03), SCALE( 1.044067841074319E-03), + SCALE( 1.063341381932592E-03), SCALE( 1.081136518161085E-03), + SCALE( 1.097474054394210E-03), SCALE( 1.112375532031342E-03), + SCALE( 1.125863169053070E-03), SCALE( 1.137959857080735E-03), + SCALE( 1.148689156870073E-03), SCALE( 1.158075292551968E-03), + SCALE( 1.166143029435388E-03), SCALE( 1.172917669070769E-03), + SCALE( 1.178425062841502E-03), SCALE( 1.182691606532144E-03), + SCALE( 1.185744107237668E-03), SCALE( 1.187609780917844E-03), + SCALE( 1.188316331684390E-03), SCALE( 1.187891943390233E-03), + SCALE( 1.186365015306024E-03), SCALE( 1.183764158185287E-03), + SCALE( 1.180118372021201E-03), SCALE( 1.175457042899868E-03), + SCALE( 1.169809696015420E-03), SCALE( 1.163205988551180E-03), + -SCALE( 1.155675800049931E-03), -SCALE( 1.147249229489164E-03), + -SCALE( 1.137956440566105E-03), -SCALE( 1.127827655023416E-03), + -SCALE( 1.116893160529398E-03), -SCALE( 1.105183307573424E-03), + -SCALE( 1.092728433285052E-03), -SCALE( 1.079558856878201E-03), + -SCALE( 1.065704855603833E-03), -SCALE( 1.051196660616898E-03), + -SCALE( 1.036064390096491E-03), -SCALE( 1.020338043044835E-03), + -SCALE( 1.004047429744579E-03), -SCALE( 9.872221706725139E-04), + -SCALE( 9.698917421439440E-04), -SCALE( 9.520854714135470E-04), + -SCALE( 9.338323832499584E-04), -SCALE( 9.151611951498600E-04), + -SCALE( 8.961003654734095E-04), -SCALE( 8.766780920104490E-04), + -SCALE( 8.569222323017155E-04), -SCALE( 8.368602986989685E-04), + -SCALE( 8.165194293666030E-04), -SCALE( 7.959263867639895E-04), + -SCALE( 7.751075532553095E-04), -SCALE( 7.540889275341360E-04), + -SCALE( 7.328960503543460E-04), -SCALE( 7.115540021619675E-04), + -SCALE( 6.900874252648055E-04), -SCALE( 6.685205214586190E-04), + -SCALE( 6.468769776333065E-04), -SCALE( 6.251799639488680E-04), + -SCALE( 6.034521681004050E-04), -SCALE( 5.817157931755955E-04), + -SCALE( 5.599924762541345E-04), -SCALE( 5.383032870049990E-04), + -SCALE( 5.166687782268060E-04), -SCALE( 4.951089849262823E-04), + -SCALE( 4.736433535042661E-04), -SCALE( 4.522907395812775E-04), + -SCALE( 4.310694309740984E-04), -SCALE( 4.099971482282953E-04), + -SCALE( 3.890910333571532E-04), -SCALE( 3.683676476039790E-04), + -SCALE( 3.478429334738513E-04), -SCALE( 3.275322154221950E-04), + -SCALE( 3.074502529716603E-04), -SCALE( 2.876112401970844E-04), + -SCALE( 2.680287412777888E-04), -SCALE( 2.487156900488424E-04), + -SCALE( 2.296844445765594E-04), -SCALE( 2.109467883317648E-04), + -SCALE( 1.925139014261300E-04), -SCALE( 1.743963597795672E-04), + -SCALE( 1.566041455665768E-04), -SCALE( 1.391466488046540E-04), + -SCALE( 1.220326918528753E-04), -SCALE( 1.052705294604104E-04), + -SCALE( 8.886782533520320E-05), -SCALE( 7.283165337456365E-05), + -SCALE( 5.716854816951505E-05), -SCALE( 4.188450631602256E-05), + -SCALE( 2.698496475767416E-05), -SCALE( 1.247480140056488E-05), + -SCALE(-1.641629701930447E-06), -SCALE(-1.536049652046955E-05), + -SCALE(-2.867848400338988E-05), -SCALE(-4.159279275517104E-05), + -SCALE(-5.410111500896320E-05), -SCALE(-6.620163295915880E-05), + -SCALE(-7.789300610544491E-05), -SCALE(-8.917436962303755E-05), + -SCALE(-1.000453111637885E-04), -SCALE(-1.105058690666598E-04), + -SCALE(-1.205565161870574E-04), -SCALE(-1.301981580423545E-04), + -SCALE(-1.394321081840759E-04), -SCALE(-1.482600859779846E-04), + -SCALE(-1.566841923938267E-04), -SCALE(-1.647069084035198E-04), + -SCALE(-1.723310839515549E-04), -SCALE(-1.795599357837175E-04), + -SCALE(-1.863970107085474E-04), -SCALE(-1.928461833795790E-04), + -SCALE(-1.989116442431618E-04), -SCALE(-2.045978973917164E-04), + -SCALE(-2.099097253875555E-04), -SCALE(-2.148521873332429E-04), + -SCALE(-2.194306115956788E-04), -SCALE(-2.236505938503120E-04), + -SCALE(-2.275179613297294E-04), -SCALE(-2.310387700701966E-04), + -SCALE(-2.342192800869662E-04), -SCALE(-2.370659535642138E-04), + -SCALE(-2.395854398583434E-04), -SCALE(-2.417845745791980E-04), + SCALE( 2.436703743734102E-04), SCALE( 2.452500321752444E-04), + SCALE( 2.465308179417657E-04), SCALE( 2.475200821995122E-04), + SCALE( 2.482254333360894E-04), SCALE( 2.486547177024881E-04), + SCALE( 2.488154045724704E-04), SCALE( 2.487146183038166E-04), + SCALE( 2.483604609263728E-04), SCALE( 2.477619902517768E-04), + SCALE( 2.469274156993822E-04), SCALE( 2.458640761601700E-04), + SCALE( 2.445797571768798E-04), SCALE( 2.430827245294182E-04), + SCALE( 2.413811459337238E-04), SCALE( 2.394830702362197E-04), + SCALE( 2.373965479929124E-04), SCALE( 2.351296356350780E-04), + SCALE( 2.326903665352515E-04), SCALE( 2.300867481008122E-04), + SCALE( 2.273267267668629E-04), SCALE( 2.244181863585484E-04), + SCALE( 2.213689470691719E-04), SCALE( 2.181867649165566E-04), + SCALE( 2.148793208048870E-04), SCALE( 2.114542191049128E-04), + SCALE( 2.079189673565927E-04), SCALE( 2.042809749895736E-04), + SCALE( 2.005475454710861E-04), SCALE( 1.967258755680427E-04), + SCALE( 1.928230469653129E-04), SCALE( 1.888460252663805E-04), + -SCALE( 1.848016463895374E-04), -SCALE( 1.806966158461229E-04), + -SCALE( 1.765375064656002E-04), -SCALE( 1.723307577358468E-04), + -SCALE( 1.680826635644682E-04), -SCALE( 1.637993715464274E-04), + -SCALE( 1.594868790905897E-04), -SCALE( 1.551510331409437E-04), + -SCALE( 1.507975279169229E-04), -SCALE( 1.464319042632354E-04), + -SCALE( 1.420595376057812E-04), -SCALE( 1.376856378740834E-04), + -SCALE( 1.333152598388584E-04), -SCALE( 1.289533027076185E-04), + -SCALE( 1.246044908903475E-04), -SCALE( 1.202733737618488E-04), + -SCALE( 1.159643396677203E-04), -SCALE( 1.116816161426427E-04), + -SCALE( 1.074292607067401E-04), -SCALE( 1.032111605730492E-04), + -SCALE( 9.903103541547551E-05), -SCALE( 9.489243763625400E-05), + -SCALE( 9.079875548213924E-05), -SCALE( 8.675321306240340E-05), + -SCALE( 8.275886762862380E-05), -SCALE( 7.881860980632000E-05), + -SCALE( 7.493517141117804E-05), -SCALE( 7.111112575372286E-05), + -SCALE( 6.734888652588270E-05), -SCALE( 6.365070805378855E-05), + -SCALE( 6.001869197279105E-05), -SCALE( 5.645478762018535E-05), + -SCALE( 5.296079400014060E-05), -SCALE( 4.953836017695434E-05), + -SCALE( 4.618899196172456E-05), -SCALE( 4.291405238785664E-05), + -SCALE( 3.971476548553926E-05), -SCALE( 3.659221671654097E-05), + -SCALE( 3.354735876525904E-05), -SCALE( 3.058101208191696E-05), + -SCALE( 2.769387104186206E-05), -SCALE( 2.488650449141616E-05), + -SCALE( 2.215936159729271E-05), -SCALE( 1.951277238921524E-05), + -SCALE( 1.694695384810771E-05), -SCALE( 1.446201050055097E-05), + -SCALE( 1.205794140863581E-05), -SCALE( 9.734640752487110E-06), + -SCALE( 7.491903655942790E-06), -SCALE( 5.329426896805280E-06), + -SCALE( 3.246818706694593E-06), -SCALE( 1.243599082783966E-06), + -SCALE(-6.808031538695990E-07), -SCALE(-2.527049419980207E-06), + -SCALE(-4.295867784770884E-06), -SCALE(-5.988052382589700E-06), + -SCALE(-7.604474075726550E-06), -SCALE(-9.146080150692231E-06), + -SCALE(-1.061387697354165E-05), -SCALE(-1.200892908323512E-05), + -SCALE(-1.333235659026308E-05), -SCALE(-1.458533474050792E-05), + -SCALE(-1.576908692157790E-05), -SCALE(-1.688488402231131E-05), + -SCALE(-1.793403733553470E-05), -SCALE(-1.891789805352808E-05), + -SCALE(-1.983785326550204E-05), -SCALE(-2.069532541857637E-05), + -SCALE(-2.149176446183214E-05), -SCALE(-2.222864728099456E-05), + -SCALE(-2.290747311740374E-05), -SCALE(-2.352976312853915E-05), + -SCALE(-2.409705530058412E-05), -SCALE(-2.461090395766135E-05), + -SCALE(-2.507287405244726E-05), -SCALE(-2.548454069800296E-05), + -SCALE(-2.584748457743932E-05), -SCALE(-2.616329155063932E-05), + -SCALE(-2.643354859248296E-05), -SCALE(-2.665984338990853E-05), + -SCALE(-2.684375953903512E-05), -SCALE(-2.698687619105470E-05), + -SCALE(-2.709076506473594E-05), -SCALE(-2.715699010579455E-05), + -SCALE(-2.718710298053676E-05), -SCALE(-2.718264274615772E-05), + -SCALE(-2.714513310366389E-05), -SCALE(-2.707608215301207E-05), + -SCALE(-2.697697975324517E-05), -SCALE(-2.684929723999712E-05), + -SCALE(-2.669448385046480E-05), -SCALE(-2.651396653512446E-05), + -SCALE(-2.630914939052064E-05), -SCALE(-2.608141341583320E-05), + -SCALE(-2.583211172456204E-05), -SCALE(-2.556256939919902E-05), + SCALE( 2.527408508232496E-05), SCALE( 2.496793086354262E-05), + SCALE( 2.464534820090372E-05), SCALE( 2.430754772248991E-05), + SCALE( 2.395570893976328E-05), SCALE( 2.359098021649775E-05), + SCALE( 2.321447837191817E-05), SCALE( 2.282728860550347E-05), + SCALE( 2.243046323951717E-05), SCALE( 2.202502165289463E-05), + SCALE( 2.161195008423191E-05), SCALE( 2.119220163057428E-05), + SCALE( 2.076669641777394E-05), SCALE( 2.033632155746451E-05), + SCALE( 1.990193003014108E-05), SCALE( 1.946434074488017E-05), + SCALE( 1.902434097009924E-05), SCALE( 1.858268630848355E-05), + SCALE( 1.814009771461820E-05), SCALE( 1.769726156360750E-05), + SCALE( 1.725483414306857E-05), SCALE( 1.681344171653956E-05), + SCALE( 1.637367742646690E-05), SCALE( 1.593610134164050E-05), + SCALE( 1.550124459778260E-05), SCALE( 1.506960952767971E-05), + SCALE( 1.464166838349645E-05), SCALE( 1.421786336584378E-05), + SCALE( 1.379860854096596E-05), SCALE( 1.338428997824206E-05), + SCALE( 1.297526685803031E-05), SCALE( 1.257187157446922E-05), + -SCALE( 1.217441088925653E-05), -SCALE( 1.178316603669356E-05), + -SCALE( 1.139839388088106E-05), -SCALE( 1.102032704633465E-05), + -SCALE( 1.064917563432859E-05), -SCALE( 1.028512733460845E-05), + -SCALE( 9.928348166726454E-06), -SCALE( 9.578982598825311E-06), + -SCALE( 9.237155419546841E-06), -SCALE( 8.902971890012200E-06), + -SCALE( 8.576519215476810E-06), -SCALE( 8.257866642922776E-06), + -SCALE( 7.947066136436549E-06), -SCALE( 7.644152509859200E-06), + -SCALE( 7.349145669714490E-06), -SCALE( 7.062050754515410E-06), + -SCALE( 6.782858956580495E-06), -SCALE( 6.511547627860400E-06), + -SCALE( 6.248081786307280E-06), -SCALE( 5.992414242480480E-06), + -SCALE( 5.744486878502875E-06), -SCALE( 5.504230753545810E-06), + -SCALE( 5.271567145540585E-06), -SCALE( 5.046407670500340E-06), + -SCALE( 4.828655865889468E-06), -SCALE( 4.618207304054390E-06), + -SCALE( 4.414950504331232E-06), -SCALE( 4.218767020985225E-06), + -SCALE( 4.029532465769980E-06), -SCALE( 3.847116621801583E-06), + -SCALE( 3.671384926229468E-06), -SCALE( 3.502198552003754E-06), + -SCALE( 3.339414724085582E-06), -SCALE( 3.182886786597464E-06), + -SCALE( 3.032465363920388E-06), -SCALE( 2.887998457950138E-06), + -SCALE( 2.749332426639114E-06), -SCALE( 2.616312057164482E-06), + -SCALE( 2.488781197085654E-06), -SCALE( 2.366582812095056E-06), + -SCALE( 2.249559625377646E-06), -SCALE( 2.137554168666232E-06), + -SCALE( 2.030409266099076E-06), -SCALE( 1.927968090232205E-06), + -SCALE( 1.830074910452612E-06), -SCALE( 1.736575155397134E-06), + -SCALE( 1.647316037754536E-06), -SCALE( 1.562146591398006E-06), + -SCALE( 1.480917863497994E-06), -SCALE( 1.403482943378026E-06), + -SCALE( 1.329697405230052E-06), -SCALE( 1.259419343863326E-06), + -SCALE( 1.192509718464610E-06), -SCALE( 1.128832363715543E-06), + -SCALE( 1.068253890614633E-06), -SCALE( 1.010643712821376E-06), + -SCALE( 9.558747254049829E-07), -SCALE( 9.038233322489550E-07), + -SCALE( 8.543693702029365E-07), -SCALE( 8.073961036828060E-07), + -SCALE( 7.627901817207720E-07), -SCALE( 7.204416525901345E-07), + -SCALE( 6.802443284999140E-07), -SCALE( 6.420958008785305E-07), + -SCALE( 6.058974119201980E-07), -SCALE( 5.715542338879300E-07), + -SCALE( 5.389746422333555E-07), -SCALE( 5.080703129463105E-07), + -SCALE( 4.787565911260676E-07), -SCALE( 4.509524956369838E-07), + -SCALE( 4.245804529615933E-07), -SCALE( 3.995662812166919E-07), + -SCALE( 3.758391046541218E-07), -SCALE( 3.533313458884360E-07), + -SCALE( 3.319786404047318E-07), -SCALE( 3.117198196826890E-07), + -SCALE( 2.924966254175760E-07), -SCALE( 2.742537030854958E-07), + -SCALE( 2.569387461577766E-07), -SCALE( 2.405024587792340E-07), + -SCALE( 2.248975904755362E-07), -SCALE( 2.100789970600680E-07), + -SCALE( 1.960059458775785E-07), -SCALE( 1.826418431101815E-07), + -SCALE( 1.699459292657122E-07), -SCALE( 1.578742499812371E-07), + -SCALE( 1.464093182119164E-07), -SCALE( 1.355563613797138E-07), + -SCALE( 1.252310964561535E-07), -SCALE( 1.152736341186576E-07), + -SCALE( 1.058665951072195E-07), -SCALE( 9.748319049487465E-08), + -SCALE( 8.932687128137479E-08), -SCALE( 7.952503432137510E-08), + -SCALE( 7.095090315087499E-08), -SCALE( 7.127938986604168E-08) }; + +#undef SCALE diff --git a/libdcadec/interpolator_float.c b/libdcadec/interpolator_float.c index 97f31c6..7bf7179 100644 --- a/libdcadec/interpolator_float.c +++ b/libdcadec/interpolator_float.c @@ -30,10 +30,8 @@ static const double lfe_iir[12] = { }; static double cos_mod_32[32][32]; -static double filter_coeff_32[2][512]; static double cos_mod_64[64][64]; -static double filter_coeff_64[1024]; static inline int convert(double a) { @@ -121,7 +119,7 @@ INTERPOLATE_SUB(sub32_float) double *history = dsp->history; // Select filter - const double *filter_coeff = filter_coeff_32[perfect]; + const double *filter_coeff = perfect ? band_fir_perfect : band_fir_nonperfect; // Interpolation begins for (int sample = 0; sample < nsamples; sample++) { @@ -231,9 +229,9 @@ INTERPOLATE_SUB(sub64_float) // Accumulate for (j = 0; j < 1024; j += 128) - res += history[ i + j] * filter_coeff_64[i + j]; + res += history[ i + j] * band_fir_x96[i + j]; for (j = 64; j < 1024; j += 128) - res += history[32 + i + j] * filter_coeff_64[i + j]; + res += history[32 + i + j] * band_fir_x96[i + j]; // Save interpolated samples pcm_samples[sample * 64 + i] = convert(res); @@ -245,9 +243,9 @@ INTERPOLATE_SUB(sub64_float) // Accumulate for (j = 0; j < 1024; j += 128) - res += history[ k + j] * filter_coeff_64[i + j]; + res += history[ k + j] * band_fir_x96[i + j]; for (j = 64; j < 1024; j += 128) - res += history[32 + k + j] * filter_coeff_64[i + j]; + res += history[32 + k + j] * band_fir_x96[i + j]; // Save interpolated samples pcm_samples[sample * 64 + i] = convert(res); @@ -270,17 +268,6 @@ void interpolate_sub32_float_init(void) for (int j = 0; j < 32; j++) cos_mod_32[i][j] = 0.25 * cos((2 * i + 1) * (2 * j + 1) * M_PI / 128); - // Pre-scale floating point FIR coefficients - for (int i = 0; i < 512; i++) { - filter_coeff_32[0][i] = band_fir_nonperfect[i] * M_SQRT2 * 128; - filter_coeff_32[1][i] = band_fir_perfect[i] * M_SQRT2 * 128; - if ((i & 63) >= 16) { - // Invert sign to make all equations positive - filter_coeff_32[0][i] = -filter_coeff_32[0][i]; - filter_coeff_32[1][i] = -filter_coeff_32[1][i]; - } - } - initialized = true; } @@ -295,13 +282,5 @@ void interpolate_sub64_float_init(void) for (int j = 0; j < 64; j++) cos_mod_64[i][j] = 0.125 * cos((2 * i + 1) * (2 * j + 1) * M_PI / 256); - // Pre-scale floating point FIR coefficients - for (int i = 0; i < 1024; i++) { - filter_coeff_64[i] = band_fir_x96[i] * M_SQRT2 * 512; - if ((i & 127) >= 32) - // Invert sign to make all equations positive - filter_coeff_64[i] = -filter_coeff_64[i]; - } - initialized = true; }