int i; for (i = 0; i < 16; i++)
int j; for (j = 0; j < 16; j++)
    public void init()    {        // multiply by the COS (matrixing)        add(new Filter()        {            public void init()            {                this.input = new Channel(Float.TYPE, 32);                this.output = new Channel(Float.TYPE, 64);            }            public void work()            {                int i, j;                for (i = 0; i < 64; i++)                {                    float sum = 0;                    for (j = 0; j < 32; j++)                    {                        sum                            += (((float) ((Math.cos((double) ((16 + i) * (2 * j + 1)) * Math.PI / 64.0))))                                * this.input.peekFloat(j));                    }                    this.output.pushFloat(sum);                }                for (i = 0; i < 32; i++)                    this.input.popFloat();            }        });                // build u        add(new Filter()        {            public void init()            {                this.input = new Channel(Float.TYPE, 64, 1024);                this.output = new Channel(Float.TYPE, 512);            }            public void work()            {                // remember that here                // the youngest data is at the highest index!                int i, j;                for (i = 0; i < 16; i++)                {                    for (j = 0; j < 32; j++)                    {                        int peekIndex = ((15 - i) * 2 + (i & 1)) * 32 + j;                        this.output.pushFloat(this.input.peekFloat(peekIndex));                    }                }                for (i = 0; i < 64; i++)                {                    this.input.popFloat();                }            }        });        // multiply u by d        add(new Filter()        {            float d[] = new float[512];            public void init()            {                this.input = new Channel(Float.TYPE, 512);                this.output = new Channel(Float.TYPE, 512);                init_d();            }            public void work()            {                int i;                for (i = 0; i < 512; i++)                {                    this.output.pushFloat(this.input.popFloat() * d[i]);                }            }            void init_d()            {                d[0] = 0.000000000f;                d[1] = -0.000015259f;                d[2] = -0.000015259f;                d[3] = -0.000015259f;                d[4] = -0.000015259f;                d[5] = -0.000015259f;                d[6] = -0.000015259f;                d[7] = -0.000030518f;                d[8] = -0.000030518f;                d[9] = -0.000030518f;                d[10] = -0.000030518f;                d[11] = -0.000045776f;                d[12] = -0.000045776f;                d[13] = -0.000061035f;                d[14] = -0.000061035f;                d[15] = -0.000076294f;                d[16] = -0.000076294f;                d[17] = -0.000091553f;                d[18] = -0.000106812f;                d[19] = -0.000106812f;                d[20] = -0.000122070f;                d[21] = -0.000137329f;                d[22] = -0.000152588f;                d[23] = -0.000167847f;                d[24] = -0.000198364f;                d[25] = -0.000213623f;                d[26] = -0.000244141f;                d[27] = -0.000259399f;                d[28] = -0.000289917f;                d[29] = -0.000320435f;                d[30] = -0.000366211f;                d[31] = -0.000396729f;                d[32] = -0.000442505f;                d[33] = -0.000473022f;                d[34] = -0.000534058f;                d[35] = -0.000579834f;                d[36] = -0.000625610f;                d[37] = -0.000686646f;                d[38] = -0.000747681f;                d[39] = -0.000808716f;                d[40] = -0.000885010f;                d[41] = -0.000961304f;                d[42] = -0.001037598f;                d[43] = -0.001113892f;                d[44] = -0.001205444f;                d[45] = -0.001296997f;                d[46] = -0.001388550f;                d[47] = -0.001480103f;                d[48] = -0.001586914f;                d[49] = -0.001693726f;                d[50] = -0.001785278f;                d[51] = -0.001907349f;                d[52] = -0.002014160f;                d[53] = -0.002120972f;                d[54] = -0.002243042f;                d[55] = -0.002349854f;                d[56] = -0.002456665f;                d[57] = -0.002578735f;                d[58] = -0.002685547f;                d[59] = -0.002792358f;                d[60] = -0.002899170f;                d[61] = -0.002990723f;                d[62] = -0.003082275f;                d[63] = -0.003173828f;                d[64] = 0.003250122f;                d[65] = 0.003326416f;                d[66] = 0.003387451f;                d[67] = 0.003433228f;                d[68] = 0.003463745f;                d[69] = 0.003479004f;                d[70] = 0.003479004f;                d[71] = 0.003463745f;                d[72] = 0.003417969f;                d[73] = 0.003372192f;                d[74] = 0.003280640f;                d[75] = 0.003173828f;                d[76] = 0.003051758f;                d[77] = 0.002883911f;                d[78] = 0.002700806f;                d[79] = 0.002487183f;                d[80] = 0.002227783f;                d[81] = 0.001937866f;                d[82] = 0.001617432f;                d[83] = 0.001266479f;                d[84] = 0.000869751f;                d[85] = 0.000442505f;                d[86] = -0.000030518f;                d[87] = -0.000549316f;                d[88] = -0.001098633f;                d[89] = -0.001693726f;                d[90] = -0.002334595f;                d[91] = -0.003005981f;                d[92] = -0.003723145f;                d[93] = -0.004486084f;                d[94] = -0.005294800f;                d[95] = -0.006118774f;                d[96] = -0.007003784f;                d[97] = -0.007919312f;                d[98] = -0.008865356f;                d[99] = -0.009841919f;                d[100] = -0.010848999f;                d[101] = -0.011886597f;                d[102] = -0.012939453f;                d[103] = -0.014022827f;                d[104] = -0.015121460f;                d[105] = -0.016235352f;                d[106] = -0.017349243f;                d[107] = -0.018463135f;                d[108] = -0.019577026f;                d[109] = -0.020690918f;                d[110] = -0.021789551f;                d[111] = -0.022857666f;                d[112] = -0.023910522f;                d[113] = -0.024932861f;                d[114] = -0.025909424f;                d[115] = -0.026840210f;                d[116] = -0.027725220f;                d[117] = -0.028533936f;                d[118] = -0.029281616f;                d[119] = -0.029937744f;                d[120] = -0.030532837f;                d[121] = -0.031005859f;                d[122] = -0.031387329f;                d[123] = -0.031661987f;                d[124] = -0.031814575f;                d[125] = -0.031845093f;                d[126] = -0.031738281f;                d[127] = -0.031478882f;                d[128] = 0.031082153f;                d[129] = 0.030517578f;                d[130] = 0.029785156f;                d[131] = 0.028884888f;                d[132] = 0.027801514f;                d[133] = 0.026535034f;                d[134] = 0.025085449f;                d[135] = 0.023422241f;                d[136] = 0.021575928f;                d[137] = 0.019531250f;                d[138] = 0.017257690f;                d[139] = 0.014801025f;                d[140] = 0.012115479f;                d[141] = 0.009231567f;                d[142] = 0.006134033f;                d[143] = 0.002822876f;                d[144] = -0.000686646f;                d[145] = -0.004394531f;                d[146] = -0.008316040f;                d[147] = -0.012420654f;                d[148] = -0.016708374f;                d[149] = -0.021179199f;                d[150] = -0.025817871f;                d[151] = -0.030609131f;                d[152] = -0.035552979f;                d[153] = -0.040634155f;                d[154] = -0.045837402f;                d[155] = -0.051132202f;                d[156] = -0.056533813f;                d[157] = -0.061996460f;                d[158] = -0.067520142f;                d[159] = -0.073059082f;                d[160] = -0.078628540f;                d[161] = -0.084182739f;                d[162] = -0.089706421f;                d[163] = -0.095169067f;                d[164] = -0.100540161f;                d[165] = -0.105819702f;                d[166] = -0.110946655f;                d[167] = -0.115921021f;                d[168] = -0.120697021f;                d[169] = -0.125259399f;                d[170] = -0.129562378f;                d[171] = -0.133590698f;                d[172] = -0.137298584f;                d[173] = -0.140670776f;                d[174] = -0.143676758f;                d[175] = -0.146255493f;                d[176] = -0.148422241f;                d[177] = -0.150115967f;                d[178] = -0.151306152f;                d[179] = -0.151962280f;                d[180] = -0.152069092f;                d[181] = -0.151596069f;                d[182] = -0.150497437f;                d[183] = -0.148773193f;                d[184] = -0.146362305f;                d[185] = -0.143264771f;                d[186] = -0.139450073f;                d[187] = -0.134887695f;                d[188] = -0.129577637f;                d[189] = -0.123474121f;                d[190] = -0.116577148f;                d[191] = -0.108856201f;                d[192] = 0.100311279f;                d[193] = 0.090927124f;                d[194] = 0.080688477f;                d[195] = 0.069595337f;                d[196] = 0.057617187f;                d[197] = 0.044784546f;                d[198] = 0.031082153f;                d[199] = 0.016510010f;                d[200] = 0.001068115f;                d[201] = -0.015228271f;                d[202] = -0.032379150f;                d[203] = -0.050354004f;                d[204] = -0.069168091f;                d[205] = -0.088775635f;                d[206] = -0.109161377f;                d[207] = -0.130310059f;                d[208] = -0.152206421f;                d[209] = -0.174789429f;                d[210] = -0.198059082f;                d[211] = -0.221984863f;                d[212] = -0.246505737f;                d[213] = -0.271591187f;                d[214] = -0.297210693f;                d[215] = -0.323318481f;                d[216] = -0.349868774f;                d[217] = -0.376800537f;                d[218] = -0.404083252f;                d[219] = -0.431655884f;                d[220] = -0.459472656f;                d[221] = -0.487472534f;                d[222] = -0.515609741f;                d[223] = -0.543823242f;                d[224] = -0.572036743f;                d[225] = -0.600219727f;                d[226] = -0.628295898f;                d[227] = -0.656219482f;                d[228] = -0.683914185f;                d[229] = -0.711318970f;                d[230] = -0.738372803f;                d[231] = -0.765029907f;                d[232] = -0.791213989f;                d[233] = -0.816864014f;                d[234] = -0.841949463f;                d[235] = -0.866363525f;                d[236] = -0.890090942f;                d[237] = -0.913055420f;                d[238] = -0.935195923f;                d[239] = -0.956481934f;                d[240] = -0.976852417f;                d[241] = -0.996246338f;                d[242] = -1.014617920f;                d[243] = -1.031936646f;                d[244] = -1.048156738f;                d[245] = -1.063217163f;                d[246] = -1.077117920f;                d[247] = -1.089782715f;                d[248] = -1.101211548f;                d[249] = -1.111373901f;                d[250] = -1.120223999f;                d[251] = -1.127746582f;                d[252] = -1.133926392f;                d[253] = -1.138763428f;                d[254] = -1.142211914f;                d[255] = -1.144287109f;                d[256] = 1.144989014f;                d[257] = 1.144287109f;                d[258] = 1.142211914f;                d[259] = 1.138763428f;                d[260] = 1.133926392f;                d[261] = 1.127746582f;                d[262] = 1.120223999f;                d[263] = 1.111373901f;                d[264] = 1.101211548f;                d[265] = 1.089782715f;                d[266] = 1.077117920f;                d[267] = 1.063217163f;                d[268] = 1.048156738f;                d[269] = 1.031936646f;                d[270] = 1.014617920f;                d[271] = 0.996246338f;                d[272] = 0.976852417f;                d[273] = 0.956481934f;                d[274] = 0.935195923f;                d[275] = 0.913055420f;                d[276] = 0.890090942f;                d[277] = 0.866363525f;                d[278] = 0.841949463f;                d[279] = 0.816864014f;                d[280] = 0.791213989f;                d[281] = 0.765029907f;                d[282] = 0.738372803f;                d[283] = 0.711318970f;                d[284] = 0.683914185f;                d[285] = 0.656219482f;                d[286] = 0.628295898f;                d[287] = 0.600219727f;                d[288] = 0.572036743f;                d[289] = 0.543823242f;                d[290] = 0.515609741f;                d[291] = 0.487472534f;                d[292] = 0.459472656f;                d[293] = 0.431655884f;                d[294] = 0.404083252f;                d[295] = 0.376800537f;                d[296] = 0.349868774f;                d[297] = 0.323318481f;                d[298] = 0.297210693f;                d[299] = 0.271591187f;                d[300] = 0.246505737f;                d[301] = 0.221984863f;                d[302] = 0.198059082f;                d[303] = 0.174789429f;                d[304] = 0.152206421f;                d[305] = 0.130310059f;                d[306] = 0.109161377f;                d[307] = 0.088775635f;                d[308] = 0.069168091f;                d[309] = 0.050354004f;                d[310] = 0.032379150f;                d[311] = 0.015228271f;                d[312] = -0.001068115f;                d[313] = -0.016510010f;                d[314] = -0.031082153f;                d[315] = -0.044784546f;                d[316] = -0.057617187f;                d[317] = -0.069595337f;                d[318] = -0.080688477f;                d[319] = -0.090927124f;                d[320] = 0.100311279f;                d[321] = 0.108856201f;                d[322] = 0.116577148f;                d[323] = 0.123474121f;                d[324] = 0.129577637f;                d[325] = 0.134887695f;                d[326] = 0.139450073f;                d[327] = 0.143264771f;                d[328] = 0.146362305f;                d[329] = 0.148773193f;                d[330] = 0.150497437f;                d[331] = 0.151596069f;                d[332] = 0.152069092f;                d[333] = 0.151962280f;                d[334] = 0.151306152f;                d[335] = 0.150115967f;                d[336] = 0.148422241f;                d[337] = 0.146255493f;                d[338] = 0.143676758f;                d[339] = 0.140670776f;                d[340] = 0.137298584f;                d[341] = 0.133590698f;                d[342] = 0.129562378f;                d[343] = 0.125259399f;                d[344] = 0.120697021f;                d[345] = 0.115921021f;                d[346] = 0.110946655f;                d[347] = 0.105819702f;                d[348] = 0.100540161f;                d[349] = 0.095169067f;                d[350] = 0.089706421f;                d[351] = 0.084182739f;                d[352] = 0.078628540f;                d[353] = 0.073059082f;                d[354] = 0.067520142f;                d[355] = 0.061996460f;                d[356] = 0.056533813f;                d[357] = 0.051132202f;                d[358] = 0.045837402f;                d[359] = 0.040634155f;                d[360] = 0.035552979f;                d[361] = 0.030609131f;                d[362] = 0.025817871f;                d[363] = 0.021179199f;                d[364] = 0.016708374f;                d[365] = 0.012420654f;                d[366] = 0.008316040f;                d[367] = 0.004394531f;                d[368] = 0.000686646f;                d[369] = -0.002822876f;                d[370] = -0.006134033f;                d[371] = -0.009231567f;                d[372] = -0.012115479f;                d[373] = -0.014801025f;                d[374] = -0.017257690f;                d[375] = -0.019531250f;                d[376] = -0.021575928f;                d[377] = -0.023422241f;                d[378] = -0.025085449f;                d[379] = -0.026535034f;                d[380] = -0.027801514f;                d[381] = -0.028884888f;                d[382] = -0.029785156f;                d[383] = -0.030517578f;                d[384] = 0.031082153f;                d[385] = 0.031478882f;                d[386] = 0.031738281f;                d[387] = 0.031845093f;                d[388] = 0.031814575f;                d[389] = 0.031661987f;                d[390] = 0.031387329f;                d[391] = 0.031005859f;                d[392] = 0.030532837f;                d[393] = 0.029937744f;                d[394] = 0.029281616f;                d[395] = 0.028533936f;                d[396] = 0.027725220f;                d[397] = 0.026840210f;                d[398] = 0.025909424f;                d[399] = 0.024932861f;                d[400] = 0.023910522f;                d[401] = 0.022857666f;                d[402] = 0.021789551f;                d[403] = 0.020690918f;                d[404] = 0.019577026f;                d[405] = 0.018463135f;                d[406] = 0.017349243f;                d[407] = 0.016235352f;                d[408] = 0.015121460f;                d[409] = 0.014022827f;                d[410] = 0.012939453f;                d[411] = 0.011886597f;                d[412] = 0.010848999f;                d[413] = 0.009841919f;                d[414] = 0.008865356f;                d[415] = 0.007919312f;                d[416] = 0.007003784f;                d[417] = 0.006118774f;                d[418] = 0.005294800f;                d[419] = 0.004486084f;                d[420] = 0.003723145f;                d[421] = 0.003005981f;                d[422] = 0.002334595f;                d[423] = 0.001693726f;                d[424] = 0.001098633f;                d[425] = 0.000549316f;                d[426] = 0.000030518f;                d[427] = -0.000442505f;                d[428] = -0.000869751f;                d[429] = -0.001266479f;                d[430] = -0.001617432f;                d[431] = -0.001937866f;                d[432] = -0.002227783f;                d[433] = -0.002487183f;                d[434] = -0.002700806f;                d[435] = -0.002883911f;                d[436] = -0.003051758f;                d[437] = -0.003173828f;                d[438] = -0.003280640f;                d[439] = -0.003372192f;                d[440] = -0.003417969f;                d[441] = -0.003463745f;                d[442] = -0.003479004f;                d[443] = -0.003479004f;                d[444] = -0.003463745f;                d[445] = -0.003433228f;                d[446] = -0.003387451f;                d[447] = -0.003326416f;                d[448] = 0.003250122f;                d[449] = 0.003173828f;                d[450] = 0.003082275f;                d[451] = 0.002990723f;                d[452] = 0.002899170f;                d[453] = 0.002792358f;                d[454] = 0.002685547f;                d[455] = 0.002578735f;                d[456] = 0.002456665f;                d[457] = 0.002349854f;                d[458] = 0.002243042f;                d[459] = 0.002120972f;                d[460] = 0.002014160f;                d[461] = 0.001907349f;                d[462] = 0.001785278f;                d[463] = 0.001693726f;                d[464] = 0.001586914f;                d[465] = 0.001480103f;                d[466] = 0.001388550f;                d[467] = 0.001296997f;                d[468] = 0.001205444f;                d[469] = 0.001113892f;                d[470] = 0.001037598f;                d[471] = 0.000961304f;                d[472] = 0.000885010f;                d[473] = 0.000808716f;                d[474] = 0.000747681f;                d[475] = 0.000686646f;                d[476] = 0.000625610f;                d[477] = 0.000579834f;                d[478] = 0.000534058f;                d[479] = 0.000473022f;                d[480] = 0.000442505f;                d[481] = 0.000396729f;                d[482] = 0.000366211f;                d[483] = 0.000320435f;                d[484] = 0.000289917f;                d[485] = 0.000259399f;                d[486] = 0.000244141f;                d[487] = 0.000213623f;                d[488] = 0.000198364f;                d[489] = 0.000167847f;                d[490] = 0.000152588f;                d[491] = 0.000137329f;                d[492] = 0.000122070f;                d[493] = 0.000106812f;                d[494] = 0.000106812f;                d[495] = 0.000091553f;                d[496] = 0.000076294f;                d[497] = 0.000076294f;                d[498] = 0.000061035f;                d[499] = 0.000061035f;                d[500] = 0.000045776f;                d[501] = 0.000045776f;                d[502] = 0.000030518f;                d[503] = 0.000030518f;                d[504] = 0.000030518f;                d[505] = 0.000030518f;                d[506] = 0.000015259f;                d[507] = 0.000015259f;                d[508] = 0.000015259f;                d[509] = 0.000015259f;                d[510] = 0.000015259f;                d[511] = 0.000015259f;            }        });                // properly calculate the samples        add(new SplitJoin()        {            public void init()            {                setSplitter(ROUND_ROBIN());                {                    int i;                    for (i = 0; i < 32; i++)                    {                        this.add(new Filter()                        {                            public void init()                            {                                this.input = new Channel(Float.TYPE, 16);                                this.output = new Channel(Float.TYPE, 1);                            }                            public void work()                            {                                float sum = 0;                                int i;                                for (i = 0; i < 16; i++)                                {                                    sum += this.input.popFloat();                                }                                this.output.pushFloat(sum);                            }                        });                    }                }                setJoiner(ROUND_ROBIN());            }        });                // convert to shorts        add(new Filter()        {            public void init()            {                this.input = new Channel(Float.TYPE, 1);                this.output = new Channel(Short.TYPE, 1);            }            public void work()            {                float fs = this.input.popFloat() * 32767;                fs = (fs > 32767.0f ? 32767.0f : (fs < -32767.0f ? -32767.0f : fs));                short s = (short) fs;                this.output.pushShort(s);            }        });    }