mpv/libfaad2/sbr_dct.c

4275 lines
111 KiB
C
Raw Normal View History

/*
** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
** Copyright (C) 2003 M. Bakker, Ahead Software AG, http://www.nero.com
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
**
** Any non-GPL usage of this software or parts of this software is strictly
** forbidden.
**
** Commercial non-GPL licensing of this software is possible.
** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
**
** $Id: sbr_dct.c,v 1.1 2003/07/29 08:20:13 menno Exp $
**/
#include "common.h"
#ifdef SBR_DEC
#ifdef _MSC_VER
#pragma warning(disable:4305)
#pragma warning(disable:4244)
#endif
#define MUL_C_R(B,A) MUL_R_C(A,B)
#include "sbr_dct.h"
#ifdef SBR_LOW_POWER
void DCT3_32_unscaled(real_t *y, real_t *x)
{
real_t f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10;
real_t f11, f12, f13, f14, f15, f16, f17, f18, f19, f20;
real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30;
real_t f31, f32, f33, f34, f35, f36, f37, f38, f39, f40;
real_t f41, f42, f43, f44, f45, f46, f47, f48, f49, f50;
real_t f51, f52, f53, f54, f55, f56, f57, f58, f59, f60;
real_t f61, f62, f63, f64, f65, f66, f67, f68, f69, f70;
real_t f71, f72, f73, f74, f75, f76, f77, f78, f79, f80;
real_t f81, f82, f83, f84, f85, f86, f87, f88, f89, f90;
real_t f91, f92, f93, f94, f95, f96, f97, f98, f99, f100;
real_t f101, f102, f103, f104, f105, f106, f107, f108, f109, f110;
real_t f111, f112, f113, f114, f115, f116, f117, f118, f119, f120;
real_t f121, f122, f123, f124, f125, f126, f127, f128, f129, f130;
real_t f131, f132, f133, f134, f135, f136, f137, f138, f139, f140;
real_t f141, f142, f143, f144, f145, f146, f147, f148, f149, f150;
real_t f151, f152, f153, f154, f155, f156, f157, f158, f159, f160;
real_t f161, f162, f163, f164, f165, f166, f167, f168, f169, f170;
real_t f171, f172, f173, f174, f175, f176, f177, f178, f179, f180;
real_t f181, f182, f183, f184, f185, f186, f187, f188, f189, f190;
real_t f191, f192, f193, f194, f195, f196, f197, f198, f199, f200;
real_t f201, f202, f203, f204, f205, f206, f207, f208, f209, f210;
real_t f211, f212, f213, f214, f215, f216, f217, f218, f219, f220;
real_t f221, f222, f223, f224, f225, f226, f227, f228, f229, f230;
real_t f231, f232, f233, f234, f235, f236, f237, f238, f239, f240;
real_t f241, f242, f243, f244, f245, f246, f247, f248, f249, f250;
real_t f251, f252, f253, f254, f255, f256, f257, f258, f259, f260;
real_t f261, f262, f263, f264, f265, f266, f267, f268, f269, f270;
real_t f271, f272;
f0 = MUL_C_R(COEF_CONST(0.7071067811865476), x[16]);
f1 = x[0] - f0;
f2 = x[0] + f0;
f3 = x[8] + x[24];
f4 = MUL_C_R(COEF_CONST(1.3065629648763766), x[8]);
f5 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f3);
f6 = MUL_C_R(COEF_CONST((-0.5411961001461967)), x[24]);
f7 = f4 + f5;
f8 = f6 - f5;
f9 = f2 - f8;
f10 = f2 + f8;
f11 = f1 - f7;
f12 = f1 + f7;
f13 = x[4] + x[28];
f14 = MUL_C_R(COEF_CONST(1.1758756024193588), x[4]);
f15 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f13);
f16 = MUL_C_R(COEF_CONST((-0.7856949583871021)), x[28]);
f17 = f14 + f15;
f18 = f16 - f15;
f19 = x[12] + x[20];
f20 = MUL_C_R(COEF_CONST(1.3870398453221473), x[12]);
f21 = MUL_C_R(COEF_CONST((-0.8314696123025455)), f19);
f22 = MUL_C_R(COEF_CONST((-0.2758993792829436)), x[20]);
f23 = f20 + f21;
f24 = f22 - f21;
f25 = f18 - f24;
f26 = f18 + f24;
f27 = MUL_C_R(COEF_CONST(0.7071067811865476), f25);
f28 = f17 - f23;
f29 = f17 + f23;
f30 = MUL_C_R(COEF_CONST(0.7071067811865476), f29);
f31 = f27 - f30;
f32 = f27 + f30;
f33 = f10 - f26;
f34 = f10 + f26;
f35 = f12 - f32;
f36 = f12 + f32;
f37 = f11 - f31;
f38 = f11 + f31;
f39 = f9 - f28;
f40 = f9 + f28;
f41 = x[2] + x[30];
f42 = MUL_C_R(COEF_CONST(1.0932018670017569), x[2]);
f43 = MUL_C_R(COEF_CONST((-0.9951847266721969)), f41);
f44 = MUL_C_R(COEF_CONST((-0.8971675863426368)), x[30]);
f45 = f42 + f43;
f46 = f44 - f43;
f47 = x[6] + x[26];
f48 = MUL_C_R(COEF_CONST(1.2472250129866711), x[6]);
f49 = MUL_C_R(COEF_CONST((-0.9569403357322089)), f47);
f50 = MUL_C_R(COEF_CONST((-0.6666556584777469)), x[26]);
f51 = f48 + f49;
f52 = f50 - f49;
f53 = x[10] + x[22];
f54 = MUL_C_R(COEF_CONST(1.3533180011743526), x[10]);
f55 = MUL_C_R(COEF_CONST((-0.8819212643483551)), f53);
f56 = MUL_C_R(COEF_CONST((-0.4105245275223575)), x[22]);
f57 = f54 + f55;
f58 = f56 - f55;
f59 = x[14] + x[18];
f60 = MUL_C_R(COEF_CONST(1.4074037375263826), x[14]);
f61 = MUL_C_R(COEF_CONST((-0.7730104533627369)), f59);
f62 = MUL_C_R(COEF_CONST((-0.1386171691990913)), x[18]);
f63 = f60 + f61;
f64 = f62 - f61;
f65 = f46 - f64;
f66 = f46 + f64;
f67 = f52 - f58;
f68 = f52 + f58;
f69 = f66 - f68;
f70 = f66 + f68;
f71 = MUL_C_R(COEF_CONST(0.7071067811865476), f69);
f72 = f65 + f67;
f73 = MUL_C_R(COEF_CONST(1.3065629648763766), f65);
f74 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f72);
f75 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f67);
f76 = f73 + f74;
f77 = f75 - f74;
f78 = f45 - f63;
f79 = f45 + f63;
f80 = f51 - f57;
f81 = f51 + f57;
f82 = f79 + f81;
f83 = MUL_C_R(COEF_CONST(1.3065629648763770), f79);
f84 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f82);
f85 = MUL_C_R(COEF_CONST(0.5411961001461961), f81);
f86 = f83 + f84;
f87 = f85 - f84;
f88 = f78 - f80;
f89 = f78 + f80;
f90 = MUL_C_R(COEF_CONST(0.7071067811865476), f89);
f91 = f77 - f87;
f92 = f77 + f87;
f93 = f71 - f90;
f94 = f71 + f90;
f95 = f76 - f86;
f96 = f76 + f86;
f97 = f34 - f70;
f98 = f34 + f70;
f99 = f36 - f92;
f100 = f36 + f92;
f101 = f38 - f91;
f102 = f38 + f91;
f103 = f40 - f94;
f104 = f40 + f94;
f105 = f39 - f93;
f106 = f39 + f93;
f107 = f37 - f96;
f108 = f37 + f96;
f109 = f35 - f95;
f110 = f35 + f95;
f111 = f33 - f88;
f112 = f33 + f88;
f113 = x[1] + x[31];
f114 = MUL_C_R(COEF_CONST(1.0478631305325901), x[1]);
f115 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f113);
f116 = MUL_C_R(COEF_CONST((-0.9497277818777548)), x[31]);
f117 = f114 + f115;
f118 = f116 - f115;
f119 = x[5] + x[27];
f120 = MUL_C_R(COEF_CONST(1.2130114330978077), x[5]);
f121 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f119);
f122 = MUL_C_R(COEF_CONST((-0.7270510732912803)), x[27]);
f123 = f120 + f121;
f124 = f122 - f121;
f125 = x[9] + x[23];
f126 = MUL_C_R(COEF_CONST(1.3315443865537255), x[9]);
f127 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f125);
f128 = MUL_C_R(COEF_CONST((-0.4764341996931612)), x[23]);
f129 = f126 + f127;
f130 = f128 - f127;
f131 = x[13] + x[19];
f132 = MUL_C_R(COEF_CONST(1.3989068359730781), x[13]);
f133 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f131);
f134 = MUL_C_R(COEF_CONST((-0.2075082269882124)), x[19]);
f135 = f132 + f133;
f136 = f134 - f133;
f137 = x[17] + x[15];
f138 = MUL_C_R(COEF_CONST(1.4125100802019777), x[17]);
f139 = MUL_C_R(COEF_CONST((-0.6715589548470187)), f137);
f140 = MUL_C_R(COEF_CONST(0.0693921705079402), x[15]);
f141 = f138 + f139;
f142 = f140 - f139;
f143 = x[21] + x[11];
f144 = MUL_C_R(COEF_CONST(1.3718313541934939), x[21]);
f145 = MUL_C_R(COEF_CONST((-0.5141027441932219)), f143);
f146 = MUL_C_R(COEF_CONST(0.3436258658070501), x[11]);
f147 = f144 + f145;
f148 = f146 - f145;
f149 = x[25] + x[7];
f150 = MUL_C_R(COEF_CONST(1.2784339185752409), x[25]);
f151 = MUL_C_R(COEF_CONST((-0.3368898533922200)), f149);
f152 = MUL_C_R(COEF_CONST(0.6046542117908008), x[7]);
f153 = f150 + f151;
f154 = f152 - f151;
f155 = x[29] + x[3];
f156 = MUL_C_R(COEF_CONST(1.1359069844201433), x[29]);
f157 = MUL_C_R(COEF_CONST((-0.1467304744553624)), f155);
f158 = MUL_C_R(COEF_CONST(0.8424460355094185), x[3]);
f159 = f156 + f157;
f160 = f158 - f157;
f161 = f118 - f142;
f162 = f118 + f142;
f163 = f117 - f141;
f164 = f117 + f141;
f165 = f124 - f148;
f166 = f124 + f148;
f167 = f123 - f147;
f168 = f123 + f147;
f169 = f130 - f154;
f170 = f130 + f154;
f171 = f129 - f153;
f172 = f129 + f153;
f173 = f136 - f160;
f174 = f136 + f160;
f175 = f135 - f159;
f176 = f135 + f159;
f177 = f161 + f163;
f178 = MUL_C_R(COEF_CONST(1.1758756024193588), f161);
f179 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f177);
f180 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f163);
f181 = f178 + f179;
f182 = f180 - f179;
f183 = f165 + f167;
f184 = MUL_C_R(COEF_CONST(1.3870398453221475), f165);
f185 = MUL_C_R(COEF_CONST((-0.5555702330196022)), f183);
f186 = MUL_C_R(COEF_CONST(0.2758993792829431), f167);
f187 = f184 + f185;
f188 = f186 - f185;
f189 = f169 + f171;
f190 = MUL_C_R(COEF_CONST(0.7856949583871022), f169);
f191 = MUL_C_R(COEF_CONST(0.1950903220161283), f189);
f192 = MUL_C_R(COEF_CONST(1.1758756024193586), f171);
f193 = f190 + f191;
f194 = f192 - f191;
f195 = f173 + f175;
f196 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f173);
f197 = MUL_C_R(COEF_CONST(0.8314696123025452), f195);
f198 = MUL_C_R(COEF_CONST(1.3870398453221475), f175);
f199 = f196 + f197;
f200 = f198 - f197;
f201 = f162 - f170;
f202 = f162 + f170;
f203 = f164 - f172;
f204 = f164 + f172;
f205 = f166 - f174;
f206 = f166 + f174;
f207 = f168 - f176;
f208 = f168 + f176;
f209 = f182 - f194;
f210 = f182 + f194;
f211 = f181 - f193;
f212 = f181 + f193;
f213 = f188 - f200;
f214 = f188 + f200;
f215 = f187 - f199;
f216 = f187 + f199;
f217 = f201 + f203;
f218 = MUL_C_R(COEF_CONST(1.3065629648763766), f201);
f219 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f217);
f220 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f203);
f221 = f218 + f219;
f222 = f220 - f219;
f223 = f205 + f207;
f224 = MUL_C_R(COEF_CONST(0.5411961001461969), f205);
f225 = MUL_C_R(COEF_CONST(0.3826834323650898), f223);
f226 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
f227 = f224 + f225;
f228 = f226 - f225;
f229 = f209 + f211;
f230 = MUL_C_R(COEF_CONST(1.3065629648763766), f209);
f231 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f229);
f232 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f211);
f233 = f230 + f231;
f234 = f232 - f231;
f235 = f213 + f215;
f236 = MUL_C_R(COEF_CONST(0.5411961001461969), f213);
f237 = MUL_C_R(COEF_CONST(0.3826834323650898), f235);
f238 = MUL_C_R(COEF_CONST(1.3065629648763766), f215);
f239 = f236 + f237;
f240 = f238 - f237;
f241 = f202 - f206;
f242 = f202 + f206;
f243 = f204 - f208;
f244 = f204 + f208;
f245 = f222 - f228;
f246 = f222 + f228;
f247 = f221 - f227;
f248 = f221 + f227;
f249 = f210 - f214;
f250 = f210 + f214;
f251 = f212 - f216;
f252 = f212 + f216;
f253 = f234 - f240;
f254 = f234 + f240;
f255 = f233 - f239;
f256 = f233 + f239;
f257 = f241 - f243;
f258 = f241 + f243;
f259 = MUL_C_R(COEF_CONST(0.7071067811865474), f257);
f260 = MUL_C_R(COEF_CONST(0.7071067811865474), f258);
f261 = f245 - f247;
f262 = f245 + f247;
f263 = MUL_C_R(COEF_CONST(0.7071067811865474), f261);
f264 = MUL_C_R(COEF_CONST(0.7071067811865474), f262);
f265 = f249 - f251;
f266 = f249 + f251;
f267 = MUL_C_R(COEF_CONST(0.7071067811865474), f265);
f268 = MUL_C_R(COEF_CONST(0.7071067811865474), f266);
f269 = f253 - f255;
f270 = f253 + f255;
f271 = MUL_C_R(COEF_CONST(0.7071067811865474), f269);
f272 = MUL_C_R(COEF_CONST(0.7071067811865474), f270);
y[31] = f98 - f242;
y[0] = f98 + f242;
y[30] = f100 - f250;
y[1] = f100 + f250;
y[29] = f102 - f254;
y[2] = f102 + f254;
y[28] = f104 - f246;
y[3] = f104 + f246;
y[27] = f106 - f264;
y[4] = f106 + f264;
y[26] = f108 - f272;
y[5] = f108 + f272;
y[25] = f110 - f268;
y[6] = f110 + f268;
y[24] = f112 - f260;
y[7] = f112 + f260;
y[23] = f111 - f259;
y[8] = f111 + f259;
y[22] = f109 - f267;
y[9] = f109 + f267;
y[21] = f107 - f271;
y[10] = f107 + f271;
y[20] = f105 - f263;
y[11] = f105 + f263;
y[19] = f103 - f248;
y[12] = f103 + f248;
y[18] = f101 - f256;
y[13] = f101 + f256;
y[17] = f99 - f252;
y[14] = f99 + f252;
y[16] = f97 - f244;
y[15] = f97 + f244;
}
void DCT2_64_unscaled(real_t *y, real_t *x)
{
int16_t i0;
real_t f2, f3, f4, f5, f6, f7, f8, f9, f10;
real_t f11, f12, f13, f14, f15, f16, f17, f18, f19, f20;
real_t f21, f22, f23, f24, f25, f26, f27, f28, f29, f30;
real_t f31, f32, f33, f34, f35, f36, f37, f38, f39, f40;
real_t f41, f42, f43, f44, f45, f46, f47, f48, f49, f50;
real_t f51, f52, f53, f54, f55, f56, f57, f58, f59, f60;
real_t f61, f62, f65, f66, f67, f68, f71, f72, f73, f74;
real_t f75, f76, f77, f78, f79, f80, f81, f82, f85, f86;
real_t f87, f88, f91, f92, f93, f94, f95, f96, f97, f98;
real_t f99, f100, f101, f102, f103, f104, f105, f106, f107, f108;
real_t f109, f110, f111, f112, f113, f114, f115, f116, f117, f118;
real_t f119, f120, f121, f122, f123, f124, f125, f126, f127, f128;
real_t f129, f130, f133, f134, f135, f136, f139, f140, f141, f142;
real_t f145, f146, f147, f148, f151, f152, f153, f154, f155, f156;
real_t f157, f158, f159, f160, f161, f162, f163, f164, f165, f166;
real_t f167, f168, f169, f170, f171, f172, f173, f174, f175, f176;
real_t f177, f178, f179, f180, f181, f182, f183, f184, f185, f186;
real_t f187, f188, f189, f190, f191, f192, f193, f194, f195, f196;
real_t f197, f198, f199, f200, f201, f202, f203, f204, f205, f206;
real_t f207, f208, f209, f210, f211, f213, f214, f215, f216, f217;
real_t f218, f219, f220, f221, f222, f223, f224, f225, f226, f227;
real_t f228, f229, f230, f231, f232, f233, f234, f235, f236, f237;
real_t f238, f239, f240, f241, f242, f243, f244, f245, f246, f247;
real_t f248, f249, f250, f251, f252, f253, f254, f255, f256, f257;
real_t f258, f259, f260, f261, f262, f263, f264, f265, f266, f267;
real_t f268, f269, f270, f271, f272, f273, f274, f275, f276, f277;
real_t f279, f280, f295, f296, f297, f298, f299, f300, f301, f302;
real_t f303, f304, f305, f306, f307, f308, f309, f310, f311, f312;
real_t f313, f314, f315, f316, f317, f318, f319, f320, f321, f322;
real_t f323, f324, f325, f326, f327, f328, f329, f330, f331, f332;
real_t f333, f334, f335, f336, f337, f338, f339, f340, f341, f342;
real_t f343, f344, f345, f346, f347, f348, f349, f350, f351, f352;
real_t f353, f354, f355, f356, f357, f358, f359, f360, f361, f362;
real_t f363, f364, f365, f366, f367, f368, f369, f370, f371, f372;
real_t f373, f374, f375, f376, f377, f378, f379, f380, f381, f382;
real_t f383, f384, f385, f386, f387, f388, f389, f390, f391, f392;
real_t f393, f394, f395, f396, f397, f398, f399, f400, f401, f402;
real_t f403, f404, f405, f406, f407, f408, f409, f410, f411, f412;
real_t f413, f414, f415, f416, f417, f418, f419, f420, f421, f422;
real_t f423, f424, f425, f426, f427, f428, f429, f430, f431, f432;
real_t f433, f434, f435, f436, f437, f438, f439, f440, f441, f442;
real_t f443, f444, f445, f446, f447, f448, f449, f450, f451, f452;
real_t f453, f454, f455, f456, f457, f458, f459, f460, f461, f462;
real_t f463, f464, f465, f466, f467, f468, f469, f470, f471, f472;
real_t f473, f474, f475, f476, f477, f478, f479, f480, f481, f482;
real_t f483, f484, f485, f486, f487, f488, f489, f490, f491, f492;
real_t f493, f494, f495, f496, f497, f498, f499, f500, f501, f502;
real_t f503, f504, f505, f506, f507, f508, f509, f510, f511, f512;
real_t f513, f514, f515, f516, f517, f518, f519, f520, f521, f522;
real_t f523, f524, f525, f526, f527, f528, f529, f530, f531, f532;
real_t f533, f534, f535, f536, f537, f538, f539, f540, f541, f542;
real_t f543, f544, f545, f546, f547, f548, f549, f550, f551, f552;
real_t f553, f554, f557, f558, f559, f560, f563, f564, f565, f566;
real_t f569, f570, f571, f572, f575, f576, f577, f578, f581, f582;
real_t f583, f584, f587, f588, f589, f590, f593, f594, f595, f596;
real_t f599, f600, f601, f602, f605, f606, f607, f608, f611, f612;
real_t f613, f614, f617, f618, f619, f620, f623, f624, f625, f626;
real_t f629, f630, f631, f632, f635, f636, f637, f638, f641, f642;
real_t f643, f644;
static real_t t2[64];
for (i0=0; i0<32; i0++)
{
t2[2*i0+1] = x[i0] - x[-i0+63];
t2[2*i0] = x[i0] + x[-i0+63];
}
f2 = t2[0] - t2[62];
f3 = t2[0] + t2[62];
f4 = t2[2] - t2[60];
f5 = t2[2] + t2[60];
f6 = t2[4] - t2[58];
f7 = t2[4] + t2[58];
f8 = t2[6] - t2[56];
f9 = t2[6] + t2[56];
f10 = t2[8] - t2[54];
f11 = t2[8] + t2[54];
f12 = t2[10] - t2[52];
f13 = t2[10] + t2[52];
f14 = t2[12] - t2[50];
f15 = t2[12] + t2[50];
f16 = t2[14] - t2[48];
f17 = t2[14] + t2[48];
f18 = t2[16] - t2[46];
f19 = t2[16] + t2[46];
f20 = t2[18] - t2[44];
f21 = t2[18] + t2[44];
f22 = t2[20] - t2[42];
f23 = t2[20] + t2[42];
f24 = t2[22] - t2[40];
f25 = t2[22] + t2[40];
f26 = t2[24] - t2[38];
f27 = t2[24] + t2[38];
f28 = t2[26] - t2[36];
f29 = t2[26] + t2[36];
f30 = t2[28] - t2[34];
f31 = t2[28] + t2[34];
f32 = t2[30] - t2[32];
f33 = t2[30] + t2[32];
f34 = f3 - f33;
f35 = f3 + f33;
f36 = f5 - f31;
f37 = f5 + f31;
f38 = f7 - f29;
f39 = f7 + f29;
f40 = f9 - f27;
f41 = f9 + f27;
f42 = f11 - f25;
f43 = f11 + f25;
f44 = f13 - f23;
f45 = f13 + f23;
f46 = f15 - f21;
f47 = f15 + f21;
f48 = f17 - f19;
f49 = f17 + f19;
f50 = f35 - f49;
f51 = f35 + f49;
f52 = f37 - f47;
f53 = f37 + f47;
f54 = f39 - f45;
f55 = f39 + f45;
f56 = f41 - f43;
f57 = f41 + f43;
f58 = f51 - f57;
f59 = f51 + f57;
f60 = f53 - f55;
f61 = f53 + f55;
f62 = f59 - f61;
y[0] = f59 + f61;
y[32] = MUL_C_R(COEF_CONST(0.7071067811865476), f62);
f65 = f58 + f60;
f66 = MUL_C_R(COEF_CONST(1.3065629648763766), f58);
f67 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f65);
f68 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f60);
y[48] = f66 + f67;
y[16] = f68 - f67;
f71 = f52 - f54;
f72 = f52 + f54;
f73 = MUL_C_R(COEF_CONST(0.7071067811865476), f72);
f74 = MUL_C_R(COEF_CONST(0.7071067811865476), f71);
f75 = f50 - f73;
f76 = f50 + f73;
f77 = f56 - f74;
f78 = f56 + f74;
f79 = f78 + f76;
f80 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f78);
f81 = MUL_C_R(COEF_CONST(0.9807852804032304), f79);
f82 = MUL_C_R(COEF_CONST(1.1758756024193588), f76);
y[8] = f80 + f81;
y[56] = f82 - f81;
f85 = f77 + f75;
f86 = MUL_C_R(COEF_CONST(0.2758993792829431), f77);
f87 = MUL_C_R(COEF_CONST(0.5555702330196022), f85);
f88 = MUL_C_R(COEF_CONST(1.3870398453221475), f75);
y[40] = f86 + f87;
y[24] = f88 - f87;
f91 = f40 - f42;
f92 = f40 + f42;
f93 = MUL_C_R(COEF_CONST(0.7071067811865476), f92);
f94 = MUL_C_R(COEF_CONST(0.7071067811865476), f91);
f95 = f38 - f44;
f96 = f38 + f44;
f97 = MUL_C_R(COEF_CONST(0.7071067811865476), f96);
f98 = MUL_C_R(COEF_CONST(0.7071067811865476), f95);
f99 = f34 - f93;
f100 = f34 + f93;
f101 = f48 - f94;
f102 = f48 + f94;
f103 = f36 - f97;
f104 = f36 + f97;
f105 = f46 - f98;
f106 = f46 + f98;
f107 = f106 + f104;
f108 = MUL_C_R(COEF_CONST((-0.5411961001461969)), f106);
f109 = MUL_C_R(COEF_CONST(0.9238795325112867), f107);
f110 = MUL_C_R(COEF_CONST(1.3065629648763766), f104);
f111 = f108 + f109;
f112 = f110 - f109;
f113 = f105 + f103;
f114 = MUL_C_R(COEF_CONST(1.3065629648763770), f105);
f115 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f113);
f116 = MUL_C_R(COEF_CONST(0.5411961001461961), f103);
f117 = f114 + f115;
f118 = f116 - f115;
f119 = f100 - f111;
f120 = f100 + f111;
f121 = f102 - f112;
f122 = f102 + f112;
f123 = f99 - f117;
f124 = f99 + f117;
f125 = f101 - f118;
f126 = f101 + f118;
f127 = f122 + f120;
f128 = MUL_C_R(COEF_CONST((-0.8971675863426361)), f122);
f129 = MUL_C_R(COEF_CONST(0.9951847266721968), f127);
f130 = MUL_C_R(COEF_CONST(1.0932018670017576), f120);
y[4] = f128 + f129;
y[60] = f130 - f129;
f133 = f126 + f124;
f134 = MUL_C_R(COEF_CONST((-0.4105245275223571)), f126);
f135 = MUL_C_R(COEF_CONST(0.8819212643483549), f133);
f136 = MUL_C_R(COEF_CONST(1.3533180011743529), f124);
y[20] = f134 + f135;
y[44] = f136 - f135;
f139 = f121 + f119;
f140 = MUL_C_R(COEF_CONST(0.1386171691990915), f121);
f141 = MUL_C_R(COEF_CONST(0.6343932841636455), f139);
f142 = MUL_C_R(COEF_CONST(1.4074037375263826), f119);
y[36] = f140 + f141;
y[28] = f142 - f141;
f145 = f125 + f123;
f146 = MUL_C_R(COEF_CONST(0.6666556584777466), f125);
f147 = MUL_C_R(COEF_CONST(0.2902846772544623), f145);
f148 = MUL_C_R(COEF_CONST(1.2472250129866711), f123);
y[52] = f146 + f147;
y[12] = f148 - f147;
f151 = f2 + f32;
f152 = MUL_C_R(COEF_CONST(1.0478631305325901), f2);
f153 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f151);
f154 = MUL_C_R(COEF_CONST((-0.9497277818777548)), f32);
f155 = f152 + f153;
f156 = f154 - f153;
f157 = f4 + f30;
f158 = MUL_C_R(COEF_CONST(1.1359069844201428), f4);
f159 = MUL_C_R(COEF_CONST((-0.9891765099647809)), f157);
f160 = MUL_C_R(COEF_CONST((-0.8424460355094190)), f30);
f161 = f158 + f159;
f162 = f160 - f159;
f163 = f6 + f28;
f164 = MUL_C_R(COEF_CONST(1.2130114330978077), f6);
f165 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f163);
f166 = MUL_C_R(COEF_CONST((-0.7270510732912803)), f28);
f167 = f164 + f165;
f168 = f166 - f165;
f169 = f8 + f26;
f170 = MUL_C_R(COEF_CONST(1.2784339185752405), f8);
f171 = MUL_C_R(COEF_CONST((-0.9415440651830209)), f169);
f172 = MUL_C_R(COEF_CONST((-0.6046542117908014)), f26);
f173 = f170 + f171;
f174 = f172 - f171;
f175 = f10 + f24;
f176 = MUL_C_R(COEF_CONST(1.3315443865537255), f10);
f177 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f175);
f178 = MUL_C_R(COEF_CONST((-0.4764341996931612)), f24);
f179 = f176 + f177;
f180 = f178 - f177;
f181 = f12 + f22;
f182 = MUL_C_R(COEF_CONST(1.3718313541934939), f12);
f183 = MUL_C_R(COEF_CONST((-0.8577286100002722)), f181);
f184 = MUL_C_R(COEF_CONST((-0.3436258658070507)), f22);
f185 = f182 + f183;
f186 = f184 - f183;
f187 = f14 + f20;
f188 = MUL_C_R(COEF_CONST(1.3989068359730781), f14);
f189 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f187);
f190 = MUL_C_R(COEF_CONST((-0.2075082269882124)), f20);
f191 = f188 + f189;
f192 = f190 - f189;
f193 = f16 + f18;
f194 = MUL_C_R(COEF_CONST(1.4125100802019774), f16);
f195 = MUL_C_R(COEF_CONST((-0.7409511253549591)), f193);
f196 = MUL_C_R(COEF_CONST((-0.0693921705079408)), f18);
f197 = f194 + f195;
f198 = f196 - f195;
f199 = f156 - f198;
f200 = f156 + f198;
f201 = f162 - f192;
f202 = f162 + f192;
f203 = f168 - f186;
f204 = f168 + f186;
f205 = f174 - f180;
f206 = f174 + f180;
f207 = f200 - f206;
f208 = f200 + f206;
f209 = f202 - f204;
f210 = f202 + f204;
f211 = f208 - f210;
y[2] = f208 + f210;
f213 = MUL_C_R(COEF_CONST(0.7071067811865476), f211);
f214 = f207 + f209;
f215 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
f216 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f214);
f217 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f209);
f218 = f215 + f216;
f219 = f217 - f216;
f220 = f201 - f203;
f221 = f201 + f203;
f222 = MUL_C_R(COEF_CONST(0.7071067811865476), f221);
f223 = MUL_C_R(COEF_CONST(0.7071067811865476), f220);
f224 = f199 - f222;
f225 = f199 + f222;
f226 = f205 - f223;
f227 = f205 + f223;
f228 = f227 + f225;
f229 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f227);
f230 = MUL_C_R(COEF_CONST(0.9807852804032304), f228);
f231 = MUL_C_R(COEF_CONST(1.1758756024193588), f225);
f232 = f229 + f230;
f233 = f231 - f230;
f234 = f226 + f224;
f235 = MUL_C_R(COEF_CONST(0.2758993792829431), f226);
f236 = MUL_C_R(COEF_CONST(0.5555702330196022), f234);
f237 = MUL_C_R(COEF_CONST(1.3870398453221475), f224);
f238 = f235 + f236;
f239 = f237 - f236;
f240 = f155 - f197;
f241 = f155 + f197;
f242 = f161 - f191;
f243 = f161 + f191;
f244 = f167 - f185;
f245 = f167 + f185;
f246 = f173 - f179;
f247 = f173 + f179;
f248 = f245 - f243;
f249 = f245 + f243;
f250 = MUL_C_R(COEF_CONST(0.7071067811865476), f249);
f251 = f247 - f250;
f252 = f247 + f250;
f253 = MUL_C_R(COEF_CONST(0.7071067811865476), f248);
f254 = f253 - f241;
f255 = f253 + f241;
f256 = f255 + f252;
f257 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f255);
f258 = MUL_C_R(COEF_CONST(0.9807852804032304), f256);
f259 = MUL_C_R(COEF_CONST(1.1758756024193588), f252);
f260 = f257 + f258;
f261 = f259 - f258;
f262 = f254 + f251;
f263 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f254);
f264 = MUL_C_R(COEF_CONST(0.8314696123025452), f262);
f265 = MUL_C_R(COEF_CONST(1.3870398453221475), f251);
f266 = f263 + f264;
f267 = f265 - f264;
f268 = f240 - f246;
f269 = f240 + f246;
f270 = f242 - f244;
f271 = f242 + f244;
f272 = f269 + f271;
f273 = MUL_C_R(COEF_CONST(1.3065629648763770), f269);
f274 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f272);
f275 = MUL_C_R(COEF_CONST(0.5411961001461961), f271);
f276 = f273 + f274;
f277 = f275 - f274;
y[62] = f268 - f270;
f279 = f268 + f270;
f280 = MUL_C_R(COEF_CONST(0.7071067811865476), f279);
y[10] = f232 - f260;
y[6] = f232 + f260;
y[18] = f219 - f277;
y[14] = f219 + f277;
y[26] = f239 + f266;
y[22] = f239 - f266;
y[34] = f213 - f280;
y[30] = f213 + f280;
y[42] = f238 - f267;
y[38] = f238 + f267;
y[50] = f218 - f276;
y[46] = f218 + f276;
y[58] = f233 + f261;
y[54] = f233 - f261;
f295 = t2[3] - t2[5];
f296 = t2[3] + t2[5];
f297 = t2[7] - t2[9];
f298 = t2[7] + t2[9];
f299 = t2[11] - t2[13];
f300 = t2[11] + t2[13];
f301 = t2[15] - t2[17];
f302 = t2[15] + t2[17];
f303 = t2[19] - t2[21];
f304 = t2[19] + t2[21];
f305 = t2[23] - t2[25];
f306 = t2[23] + t2[25];
f307 = t2[27] - t2[29];
f308 = t2[27] + t2[29];
f309 = t2[31] - t2[33];
f310 = t2[31] + t2[33];
f311 = t2[35] - t2[37];
f312 = t2[35] + t2[37];
f313 = t2[39] - t2[41];
f314 = t2[39] + t2[41];
f315 = t2[43] - t2[45];
f316 = t2[43] + t2[45];
f317 = t2[47] - t2[49];
f318 = t2[47] + t2[49];
f319 = t2[51] - t2[53];
f320 = t2[51] + t2[53];
f321 = t2[55] - t2[57];
f322 = t2[55] + t2[57];
f323 = t2[59] - t2[61];
f324 = t2[59] + t2[61];
f325 = MUL_C_R(COEF_CONST(0.7071067811865476), f310);
f326 = t2[1] - f325;
f327 = t2[1] + f325;
f328 = f302 + f318;
f329 = MUL_C_R(COEF_CONST(1.3065629648763766), f302);
f330 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f328);
f331 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f318);
f332 = f329 + f330;
f333 = f331 - f330;
f334 = f327 - f333;
f335 = f327 + f333;
f336 = f326 - f332;
f337 = f326 + f332;
f338 = f306 - f314;
f339 = f306 + f314;
f340 = MUL_C_R(COEF_CONST(0.7071067811865476), f339);
f341 = f298 - f340;
f342 = f298 + f340;
f343 = MUL_C_R(COEF_CONST(0.7071067811865476), f338);
f344 = f343 - f322;
f345 = f343 + f322;
f346 = f345 + f342;
f347 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f345);
f348 = MUL_C_R(COEF_CONST(0.9807852804032304), f346);
f349 = MUL_C_R(COEF_CONST(1.1758756024193588), f342);
f350 = f347 + f348;
f351 = f349 - f348;
f352 = f344 + f341;
f353 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f344);
f354 = MUL_C_R(COEF_CONST(0.8314696123025452), f352);
f355 = MUL_C_R(COEF_CONST(1.3870398453221475), f341);
f356 = f353 + f354;
f357 = f355 - f354;
f358 = f335 - f350;
f359 = f335 + f350;
f360 = f337 - f356;
f361 = f337 + f356;
f362 = f336 - f357;
f363 = f336 + f357;
f364 = f334 - f351;
f365 = f334 + f351;
f366 = MUL_C_R(COEF_CONST(5.1011486186891641), f296);
f367 = MUL_C_R(COEF_CONST(1.7224470982383342), f300);
f368 = MUL_C_R(COEF_CONST(1.0606776859903475), f304);
f369 = MUL_C_R(COEF_CONST(0.7881546234512502), f308);
f370 = MUL_C_R(COEF_CONST(0.5024192861881557), f324);
f371 = MUL_C_R(COEF_CONST(0.5224986149396889), f320);
f372 = MUL_C_R(COEF_CONST(0.5669440348163577), f316);
f373 = MUL_C_R(COEF_CONST(0.6468217833599901), f312);
f374 = f366 - f370;
f375 = f366 + f370;
f376 = f367 - f371;
f377 = f367 + f371;
f378 = f368 - f372;
f379 = f368 + f372;
f380 = f369 - f373;
f381 = f369 + f373;
f382 = MUL_C_R(COEF_CONST(0.5097955791041592), f375);
f383 = MUL_C_R(COEF_CONST(0.6013448869350453), f377);
f384 = MUL_C_R(COEF_CONST(0.8999762231364156), f379);
f385 = MUL_C_R(COEF_CONST(2.5629154477415055), f381);
f386 = f382 + f385;
f387 = f382 - f385;
f388 = f383 + f384;
f389 = f384 - f383;
f390 = f387 - f389;
f391 = f387 + f389;
f392 = MUL_C_R(COEF_CONST(0.7071067811865476), f390);
f393 = f386 - f388;
f394 = MUL_C_R(COEF_CONST(1.3065629648763766), f386);
f395 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f393);
f396 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f388);
f397 = f394 + f395;
f398 = f395 + f396;
f399 = f391 - f398;
f400 = f392 - f398;
f401 = f392 + f397;
f402 = f380 - f374;
f403 = f374 + f380;
f404 = f378 - f376;
f405 = f376 + f378;
f406 = f403 + f405;
f407 = MUL_C_R(COEF_CONST(1.3065629648763770), f403);
f408 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f406);
f409 = MUL_C_R(COEF_CONST(0.5411961001461961), f405);
f410 = f407 + f408;
f411 = f408 - f409;
f412 = f402 - f404;
f413 = f402 + f404;
f414 = MUL_C_R(COEF_CONST(0.7071067811865476), f413);
f415 = f411 + f397;
f416 = f401 + f411;
f417 = f414 + f401;
f418 = f400 + f414;
f419 = f400 - f410;
f420 = f399 - f410;
f421 = f412 + f399;
f422 = f359 - f397;
f423 = f359 + f397;
f424 = f361 + f415;
f425 = f361 - f415;
f426 = f363 - f416;
f427 = f363 + f416;
f428 = f365 + f417;
f429 = f365 - f417;
f430 = f364 - f418;
f431 = f364 + f418;
f432 = f362 + f419;
f433 = f362 - f419;
f434 = f360 - f420;
f435 = f360 + f420;
f436 = f358 + f421;
f437 = f358 - f421;
f438 = MUL_C_R(COEF_CONST(5.1011486186891641), f295);
f439 = MUL_C_R(COEF_CONST(1.7224470982383342), f299);
f440 = MUL_C_R(COEF_CONST(1.0606776859903475), f303);
f441 = MUL_C_R(COEF_CONST(0.7881546234512502), f307);
f442 = MUL_C_R(COEF_CONST(0.5024192861881557), f323);
f443 = MUL_C_R(COEF_CONST(0.5224986149396889), f319);
f444 = MUL_C_R(COEF_CONST(0.5669440348163577), f315);
f445 = MUL_C_R(COEF_CONST(0.6468217833599901), f311);
f446 = f438 + f442;
f447 = f438 - f442;
f448 = f439 + f443;
f449 = f443 - f439;
f450 = f440 + f444;
f451 = f440 - f444;
f452 = f441 + f445;
f453 = f445 - f441;
f454 = MUL_C_R(COEF_CONST(0.5097955791041592), f447);
f455 = MUL_C_R(COEF_CONST(0.6013448869350453), f449);
f456 = MUL_C_R(COEF_CONST(0.8999762231364156), f451);
f457 = MUL_C_R(COEF_CONST(2.5629154477415055), f453);
f458 = f454 + f457;
f459 = f454 - f457;
f460 = f455 + f456;
f461 = f456 - f455;
f462 = f459 - f461;
f463 = f459 + f461;
f464 = MUL_C_R(COEF_CONST(0.7071067811865476), f462);
f465 = f458 - f460;
f466 = MUL_C_R(COEF_CONST(1.3065629648763766), f458);
f467 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f465);
f468 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f460);
f469 = f466 + f467;
f470 = f467 + f468;
f471 = f463 - f470;
f472 = f464 - f470;
f473 = f464 + f469;
f474 = f446 + f452;
f475 = f452 - f446;
f476 = f448 + f450;
f477 = f448 - f450;
f478 = f475 + f477;
f479 = MUL_C_R(COEF_CONST(1.3065629648763770), f475);
f480 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f478);
f481 = MUL_C_R(COEF_CONST(0.5411961001461961), f477);
f482 = f479 + f480;
f483 = f481 - f480;
f484 = f474 + f476;
f485 = f476 - f474;
f486 = MUL_C_R(COEF_CONST(0.7071067811865476), f485);
f487 = f483 + f469;
f488 = f473 + f483;
f489 = f486 + f473;
f490 = f472 + f486;
f491 = f482 + f472;
f492 = f471 + f482;
f493 = f471 - f484;
f494 = MUL_C_R(COEF_CONST(0.7071067811865476), f309);
f495 = t2[63] - f494;
f496 = t2[63] + f494;
f497 = f317 + f301;
f498 = MUL_C_R(COEF_CONST(1.3065629648763766), f317);
f499 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f497);
f500 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f301);
f501 = f498 + f499;
f502 = f500 - f499;
f503 = f496 - f502;
f504 = f496 + f502;
f505 = f495 - f501;
f506 = f495 + f501;
f507 = MUL_C_R(COEF_CONST(0.5097955791041592), f321);
f508 = MUL_C_R(COEF_CONST(0.6013448869350453), f313);
f509 = MUL_C_R(COEF_CONST(0.8999762231364156), f305);
f510 = MUL_C_R(COEF_CONST(2.5629154477415055), f297);
f511 = f507 - f510;
f512 = f507 + f510;
f513 = f508 - f509;
f514 = f508 + f509;
f515 = f512 - f514;
f516 = f512 + f514;
f517 = MUL_C_R(COEF_CONST(0.7071067811865476), f515);
f518 = f511 + f513;
f519 = MUL_C_R(COEF_CONST(1.3065629648763766), f511);
f520 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f518);
f521 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f513);
f522 = f519 + f520;
f523 = f521 - f520;
f524 = f516 + f523;
f525 = f523 + f517;
f526 = f517 + f522;
f527 = f504 - f524;
f528 = f504 + f524;
f529 = f506 - f525;
f530 = f506 + f525;
f531 = f505 - f526;
f532 = f505 + f526;
f533 = f503 - f522;
f534 = f503 + f522;
f535 = f493 + f528;
f536 = f528 - f493;
f537 = f492 + f530;
f538 = f492 - f530;
f539 = f491 + f532;
f540 = f532 - f491;
f541 = f490 + f534;
f542 = f490 - f534;
f543 = f489 + f533;
f544 = f533 - f489;
f545 = f488 + f531;
f546 = f488 - f531;
f547 = f487 + f529;
f548 = f529 - f487;
f549 = f469 + f527;
f550 = f469 - f527;
f551 = f536 + f423;
f552 = MUL_C_R(COEF_CONST((-0.9751575901732920)), f536);
f553 = MUL_C_R(COEF_CONST(0.9996988186962043), f551);
f554 = MUL_C_R(COEF_CONST(1.0242400472191164), f423);
y[1] = f552 + f553;
y[63] = f554 - f553;
f557 = f538 + f425;
f558 = MUL_C_R(COEF_CONST((-0.9237258930790228)), f538);
f559 = MUL_C_R(COEF_CONST(0.9972904566786902), f557);
f560 = MUL_C_R(COEF_CONST(1.0708550202783576), f425);
y[3] = f558 + f559;
y[61] = f560 - f559;
f563 = f540 + f427;
f564 = MUL_C_R(COEF_CONST((-0.8700688593994936)), f540);
f565 = MUL_C_R(COEF_CONST(0.9924795345987100), f563);
f566 = MUL_C_R(COEF_CONST(1.1148902097979263), f427);
y[5] = f564 + f565;
y[59] = f566 - f565;
f569 = f542 + f429;
f570 = MUL_C_R(COEF_CONST((-0.8143157536286398)), f542);
f571 = MUL_C_R(COEF_CONST(0.9852776423889412), f569);
f572 = MUL_C_R(COEF_CONST(1.1562395311492426), f429);
y[7] = f570 + f571;
y[57] = f572 - f571;
f575 = f544 + f431;
f576 = MUL_C_R(COEF_CONST((-0.7566008898816587)), f544);
f577 = MUL_C_R(COEF_CONST(0.9757021300385286), f575);
f578 = MUL_C_R(COEF_CONST(1.1948033701953984), f431);
y[9] = f576 + f577;
y[55] = f578 - f577;
f581 = f546 + f433;
f582 = MUL_C_R(COEF_CONST((-0.6970633083205414)), f546);
f583 = MUL_C_R(COEF_CONST(0.9637760657954398), f581);
f584 = MUL_C_R(COEF_CONST(1.2304888232703384), f433);
y[11] = f582 + f583;
y[53] = f584 - f583;
f587 = f548 + f435;
f588 = MUL_C_R(COEF_CONST((-0.6358464401941451)), f548);
f589 = MUL_C_R(COEF_CONST(0.9495281805930367), f587);
f590 = MUL_C_R(COEF_CONST(1.2632099209919283), f435);
y[13] = f588 + f589;
y[51] = f590 - f589;
f593 = f550 + f437;
f594 = MUL_C_R(COEF_CONST((-0.5730977622997506)), f550);
f595 = MUL_C_R(COEF_CONST(0.9329927988347389), f593);
f596 = MUL_C_R(COEF_CONST(1.2928878353697271), f437);
y[15] = f594 + f595;
y[49] = f596 - f595;
f599 = f549 + f436;
f600 = MUL_C_R(COEF_CONST((-0.5089684416985408)), f549);
f601 = MUL_C_R(COEF_CONST(0.9142097557035307), f599);
f602 = MUL_C_R(COEF_CONST(1.3194510697085207), f436);
y[17] = f600 + f601;
y[47] = f602 - f601;
f605 = f434 - f547;
f606 = MUL_C_R(COEF_CONST((-0.4436129715409087)), f547);
f607 = MUL_C_R(COEF_CONST(0.8932243011955153), f605);
f608 = MUL_C_R(COEF_CONST(1.3428356308501219), f434);
y[19] = f607 - f606;
y[45] = f608 - f607;
f611 = f545 + f432;
f612 = MUL_C_R(COEF_CONST((-0.3771887988789273)), f545);
f613 = MUL_C_R(COEF_CONST(0.8700869911087114), f611);
f614 = MUL_C_R(COEF_CONST(1.3629851833384954), f432);
y[21] = f612 + f613;
y[43] = f614 - f613;
f617 = f430 - f543;
f618 = MUL_C_R(COEF_CONST((-0.3098559453626097)), f543);
f619 = MUL_C_R(COEF_CONST(0.8448535652497070), f617);
f620 = MUL_C_R(COEF_CONST(1.3798511851368043), f430);
y[23] = f619 - f618;
y[41] = f620 - f619;
f623 = f541 + f428;
f624 = MUL_C_R(COEF_CONST((-0.2417766217337384)), f541);
f625 = MUL_C_R(COEF_CONST(0.8175848131515837), f623);
f626 = MUL_C_R(COEF_CONST(1.3933930045694289), f428);
y[25] = f624 + f625;
y[39] = f626 - f625;
f629 = f426 - f539;
f630 = MUL_C_R(COEF_CONST((-0.1731148370459794)), f539);
f631 = MUL_C_R(COEF_CONST(0.7883464276266062), f629);
f632 = MUL_C_R(COEF_CONST(1.4035780182072330), f426);
y[27] = f631 - f630;
y[37] = f632 - f631;
f635 = f537 + f424;
f636 = MUL_C_R(COEF_CONST((-0.1040360035527077)), f537);
f637 = MUL_C_R(COEF_CONST(0.7572088465064845), f635);
f638 = MUL_C_R(COEF_CONST(1.4103816894602612), f424);
y[29] = f636 + f637;
y[35] = f638 - f637;
f641 = f422 - f535;
f642 = MUL_C_R(COEF_CONST((-0.0347065382144000)), f535);
f643 = MUL_C_R(COEF_CONST(0.7242470829514669), f641);
f644 = MUL_C_R(COEF_CONST(1.4137876276885337), f422);
y[31] = f643 - f642;
y[33] = f644 - f643;
}
#else
void DCT4_64(real_t *y, real_t *x)
{
int16_t i0;
real_t f2;
real_t f3;
real_t f4;
real_t f5;
real_t f6;
real_t f7;
real_t f8;
real_t f9;
real_t f10;
real_t f11;
real_t f12;
real_t f13;
real_t f14;
real_t f15;
real_t f16;
real_t f17;
real_t f18;
real_t f19;
real_t f20;
real_t f21;
real_t f22;
real_t f23;
real_t f24;
real_t f25;
real_t f26;
real_t f27;
real_t f28;
real_t f29;
real_t f30;
real_t f31;
real_t f32;
real_t f33;
real_t f34;
real_t f35;
real_t f36;
real_t f37;
real_t f38;
real_t f39;
real_t f40;
real_t f41;
real_t f42;
real_t f43;
real_t f44;
real_t f45;
real_t f46;
real_t f47;
real_t f48;
real_t f49;
real_t f50;
real_t f51;
real_t f52;
real_t f53;
real_t f54;
real_t f55;
real_t f56;
real_t f57;
real_t f58;
real_t f59;
real_t f60;
real_t f61;
real_t f62;
real_t f63;
real_t f64;
real_t f65;
real_t f66;
real_t f67;
real_t f68;
real_t f69;
real_t f70;
real_t f71;
real_t f72;
real_t f73;
real_t f74;
real_t f75;
real_t f76;
real_t f77;
real_t f78;
real_t f79;
real_t f80;
real_t f81;
real_t f82;
real_t f83;
real_t f84;
real_t f85;
real_t f86;
real_t f87;
real_t f88;
real_t f89;
real_t f90;
real_t f91;
real_t f92;
real_t f93;
real_t f94;
real_t f95;
real_t f96;
real_t f97;
real_t f98;
real_t f99;
real_t f100;
real_t f101;
real_t f102;
real_t f103;
real_t f104;
real_t f105;
real_t f106;
real_t f107;
real_t f108;
real_t f109;
real_t f110;
real_t f111;
real_t f112;
real_t f113;
real_t f114;
real_t f115;
real_t f116;
real_t f117;
real_t f118;
real_t f119;
real_t f120;
real_t f121;
real_t f122;
real_t f123;
real_t f124;
real_t f125;
real_t f126;
real_t f127;
real_t f128;
real_t f129;
real_t f130;
real_t f131;
real_t f132;
real_t f133;
real_t f134;
real_t f135;
real_t f136;
real_t f137;
real_t f138;
real_t f139;
real_t f140;
real_t f141;
real_t f142;
real_t f143;
real_t f144;
real_t f145;
real_t f146;
real_t f147;
real_t f148;
real_t f149;
real_t f150;
real_t f151;
real_t f152;
real_t f153;
real_t f154;
real_t f155;
real_t f156;
real_t f157;
real_t f158;
real_t f159;
real_t f160;
real_t f161;
real_t f162;
real_t f163;
real_t f164;
real_t f165;
real_t f166;
real_t f167;
real_t f168;
real_t f169;
real_t f170;
real_t f171;
real_t f172;
real_t f173;
real_t f174;
real_t f175;
real_t f176;
real_t f177;
real_t f178;
real_t f179;
real_t f180;
real_t f181;
real_t f182;
real_t f183;
real_t f184;
real_t f185;
real_t f186;
real_t f187;
real_t f188;
real_t f189;
real_t f190;
real_t f191;
real_t f192;
real_t f193;
real_t f194;
real_t f195;
real_t f196;
real_t f197;
real_t f198;
real_t f199;
real_t f200;
real_t f201;
real_t f202;
real_t f203;
real_t f204;
real_t f205;
real_t f206;
real_t f207;
real_t f208;
real_t f209;
real_t f210;
real_t f211;
real_t f212;
real_t f213;
real_t f214;
real_t f215;
real_t f216;
real_t f217;
real_t f218;
real_t f219;
real_t f220;
real_t f221;
real_t f222;
real_t f223;
real_t f224;
real_t f225;
real_t f226;
real_t f227;
real_t f228;
real_t f229;
real_t f230;
real_t f231;
real_t f232;
real_t f233;
real_t f234;
real_t f235;
real_t f236;
real_t f237;
real_t f238;
real_t f239;
real_t f240;
real_t f241;
real_t f242;
real_t f243;
real_t f244;
real_t f245;
real_t f246;
real_t f247;
real_t f248;
real_t f249;
real_t f250;
real_t f251;
real_t f252;
real_t f253;
real_t f254;
real_t f255;
real_t f256;
real_t f257;
real_t f258;
real_t f259;
real_t f260;
real_t f261;
real_t f262;
real_t f263;
real_t f264;
real_t f265;
real_t f266;
real_t f267;
real_t f268;
real_t f269;
real_t f270;
real_t f271;
real_t f272;
real_t f273;
real_t f274;
real_t f275;
real_t f276;
real_t f277;
real_t f278;
real_t f279;
real_t f280;
real_t f281;
real_t f282;
real_t f283;
real_t f284;
real_t f285;
real_t f286;
real_t f287;
real_t f288;
real_t f289;
real_t f290;
real_t f291;
real_t f292;
real_t f293;
real_t f294;
real_t f295;
real_t f296;
real_t f297;
real_t f298;
real_t f299;
real_t f300;
real_t f301;
real_t f302;
real_t f303;
real_t f304;
real_t f305;
real_t f306;
real_t f307;
real_t f308;
real_t f309;
real_t f310;
real_t f311;
real_t f312;
real_t f313;
real_t f314;
real_t f315;
real_t f316;
real_t f317;
real_t f318;
real_t f319;
real_t f320;
real_t f321;
real_t f322;
real_t f323;
real_t f324;
real_t f325;
real_t f326;
real_t f327;
real_t f328;
real_t f329;
real_t f330;
real_t f331;
real_t f332;
real_t f333;
real_t f334;
real_t f335;
real_t f336;
real_t f337;
real_t f338;
real_t f339;
real_t f340;
real_t f341;
real_t f342;
real_t f343;
real_t f344;
real_t f345;
real_t f346;
real_t f347;
real_t f348;
real_t f349;
real_t f350;
real_t f351;
real_t f352;
real_t f353;
real_t f354;
real_t f355;
real_t f356;
real_t f357;
real_t f358;
real_t f359;
real_t f360;
real_t f361;
real_t f362;
real_t f363;
real_t f364;
real_t f365;
real_t f366;
real_t f367;
real_t f368;
real_t f369;
real_t f370;
real_t f371;
real_t f372;
real_t f373;
real_t f374;
real_t f375;
real_t f376;
real_t f377;
real_t f378;
real_t f379;
real_t f380;
real_t f381;
real_t f382;
real_t f383;
real_t f384;
real_t f385;
real_t f386;
real_t f387;
real_t f388;
real_t f389;
real_t f390;
real_t f391;
real_t f392;
real_t f393;
real_t f394;
real_t f395;
real_t f396;
real_t f397;
real_t f398;
real_t f399;
real_t f400;
real_t f401;
real_t f402;
real_t f403;
real_t f404;
real_t f405;
real_t f406;
real_t f407;
real_t f408;
real_t f409;
real_t f410;
real_t f411;
real_t f412;
real_t f413;
real_t f414;
real_t f415;
real_t f416;
real_t f417;
real_t f418;
real_t f419;
real_t f420;
real_t f421;
real_t f422;
real_t f423;
real_t f424;
real_t f425;
real_t f426;
real_t f427;
real_t f428;
real_t f429;
real_t f430;
real_t f431;
real_t f432;
real_t f433;
real_t f434;
real_t f435;
real_t f436;
real_t f437;
real_t f438;
real_t f439;
real_t f440;
real_t f441;
real_t f442;
real_t f443;
real_t f444;
real_t f445;
real_t f446;
real_t f447;
real_t f448;
real_t f449;
real_t f450;
real_t f451;
real_t f452;
real_t f453;
real_t f454;
real_t f455;
real_t f456;
real_t f457;
real_t f458;
real_t f459;
real_t f460;
real_t f461;
real_t f462;
real_t f463;
real_t f464;
real_t f465;
real_t f466;
real_t f467;
real_t f468;
real_t f469;
real_t f470;
real_t f471;
real_t f472;
real_t f473;
real_t f474;
real_t f475;
real_t f476;
real_t f477;
real_t f478;
real_t f479;
real_t f480;
real_t f481;
real_t f482;
real_t f483;
real_t f484;
real_t f485;
real_t f486;
real_t f487;
real_t f488;
real_t f489;
real_t f490;
real_t f491;
real_t f492;
real_t f493;
real_t f494;
real_t f495;
real_t f496;
real_t f497;
real_t f498;
real_t f499;
real_t f500;
real_t f501;
real_t f502;
real_t f503;
real_t f504;
real_t f505;
real_t f506;
real_t f507;
real_t f508;
real_t f509;
real_t f510;
real_t f511;
real_t f512;
real_t f513;
real_t f514;
real_t f515;
real_t f516;
real_t f517;
real_t f518;
real_t f519;
real_t f520;
real_t f521;
real_t f522;
real_t f523;
real_t f524;
real_t f525;
real_t f526;
real_t f527;
real_t f528;
real_t f529;
real_t f530;
real_t f531;
real_t f532;
real_t f533;
real_t f534;
real_t f535;
real_t f536;
real_t f537;
real_t f538;
real_t f539;
real_t f540;
real_t f541;
real_t f542;
real_t f543;
real_t f544;
real_t f545;
real_t f546;
real_t f547;
real_t f548;
real_t f549;
real_t f550;
real_t f551;
real_t f552;
real_t f553;
real_t f554;
real_t f555;
real_t f556;
real_t f557;
real_t f558;
real_t f559;
real_t f560;
real_t f561;
real_t f562;
real_t f563;
real_t f564;
real_t f565;
real_t f566;
real_t f567;
real_t f568;
real_t f569;
real_t f570;
real_t f571;
real_t f572;
real_t f573;
real_t f574;
real_t f575;
real_t f576;
real_t f577;
real_t f578;
real_t f579;
real_t f580;
real_t f581;
real_t f582;
real_t f583;
real_t f584;
real_t f585;
real_t f586;
real_t f587;
real_t f588;
real_t f589;
real_t f590;
real_t f591;
real_t f592;
real_t f593;
real_t f594;
real_t f595;
real_t f596;
real_t f597;
real_t f598;
real_t f599;
real_t f600;
real_t f601;
real_t f602;
real_t f603;
real_t f604;
real_t f605;
real_t f606;
real_t f607;
real_t f608;
real_t f609;
real_t f610;
real_t f611;
real_t f612;
real_t f613;
real_t f614;
real_t f615;
real_t f618;
real_t f619;
real_t f620;
real_t f621;
real_t f624;
real_t f625;
real_t f626;
real_t f627;
real_t f630;
real_t f631;
real_t f632;
real_t f633;
real_t f636;
real_t f637;
real_t f638;
real_t f639;
real_t f642;
real_t f643;
real_t f644;
real_t f645;
real_t f648;
real_t f649;
real_t f650;
real_t f651;
real_t f654;
real_t f655;
real_t f656;
real_t f657;
real_t f660;
real_t f661;
real_t f662;
real_t f663;
real_t f666;
real_t f667;
real_t f668;
real_t f669;
real_t f672;
real_t f673;
real_t f674;
real_t f675;
real_t f678;
real_t f679;
real_t f680;
real_t f681;
real_t f684;
real_t f685;
real_t f686;
real_t f687;
real_t f690;
real_t f691;
real_t f692;
real_t f693;
real_t f696;
real_t f697;
real_t f698;
real_t f699;
real_t f702;
real_t f703;
real_t f704;
real_t f705;
real_t f708;
real_t f709;
real_t f710;
real_t f711;
real_t f714;
real_t f715;
real_t f716;
real_t f717;
real_t f720;
real_t f721;
real_t f722;
real_t f723;
real_t f726;
real_t f727;
real_t f728;
real_t f729;
real_t f732;
real_t f733;
real_t f734;
real_t f735;
real_t f738;
real_t f739;
real_t f740;
real_t f741;
real_t f744;
real_t f745;
real_t f746;
real_t f747;
real_t f750;
real_t f751;
real_t f752;
real_t f753;
real_t f756;
real_t f757;
real_t f758;
real_t f759;
real_t f762;
real_t f763;
real_t f764;
real_t f765;
real_t f768;
real_t f769;
real_t f770;
real_t f771;
real_t f774;
real_t f775;
real_t f776;
real_t f777;
real_t f780;
real_t f781;
real_t f782;
real_t f783;
real_t f786;
real_t f787;
real_t f788;
real_t f789;
real_t f792;
real_t f793;
real_t f794;
real_t f795;
real_t f798;
real_t f799;
real_t f800;
real_t f801;
static real_t t2[64];
t2[0] = x[0];
for (i0=0; i0<31; i0++)
{
t2[2*i0+1] = x[2*i0+1] - x[2*i0+2];
t2[2*i0+2] = x[2*i0+1] + x[2*i0+2];
}
t2[63] = x[63];
f2 = 0.7071067811865476 * t2[32];
f3 = x[0] - f2;
f4 = x[0] + f2;
f5 = t2[16] + t2[48];
f6 = 1.3065629648763766 * t2[16];
f7 = (-0.9238795325112866) * f5;
f8 = (-0.5411961001461967) * t2[48];
f9 = f6 + f7;
f10 = f8 - f7;
f11 = f4 - f10;
f12 = f4 + f10;
f13 = f3 - f9;
f14 = f3 + f9;
f15 = t2[8] + t2[56];
f16 = 1.1758756024193588 * t2[8];
f17 = (-0.9807852804032304) * f15;
f18 = (-0.7856949583871021) * t2[56];
f19 = f16 + f17;
f20 = f18 - f17;
f21 = t2[24] + t2[40];
f22 = 1.3870398453221473 * t2[24];
f23 = (-0.8314696123025455) * f21;
f24 = (-0.2758993792829436) * t2[40];
f25 = f22 + f23;
f26 = f24 - f23;
f27 = f20 - f26;
f28 = f20 + f26;
f29 = 0.7071067811865476 * f27;
f30 = f19 - f25;
f31 = f19 + f25;
f32 = 0.7071067811865476 * f31;
f33 = f29 - f32;
f34 = f29 + f32;
f35 = f12 - f28;
f36 = f12 + f28;
f37 = f14 - f34;
f38 = f14 + f34;
f39 = f13 - f33;
f40 = f13 + f33;
f41 = f11 - f30;
f42 = f11 + f30;
f43 = t2[4] + t2[60];
f44 = 1.0932018670017569 * t2[4];
f45 = (-0.9951847266721969) * f43;
f46 = (-0.8971675863426368) * t2[60];
f47 = f44 + f45;
f48 = f46 - f45;
f49 = t2[12] + t2[52];
f50 = 1.2472250129866711 * t2[12];
f51 = (-0.9569403357322089) * f49;
f52 = (-0.6666556584777469) * t2[52];
f53 = f50 + f51;
f54 = f52 - f51;
f55 = t2[20] + t2[44];
f56 = 1.3533180011743526 * t2[20];
f57 = (-0.8819212643483551) * f55;
f58 = (-0.4105245275223575) * t2[44];
f59 = f56 + f57;
f60 = f58 - f57;
f61 = t2[28] + t2[36];
f62 = 1.4074037375263826 * t2[28];
f63 = (-0.7730104533627369) * f61;
f64 = (-0.1386171691990913) * t2[36];
f65 = f62 + f63;
f66 = f64 - f63;
f67 = f48 - f66;
f68 = f48 + f66;
f69 = f54 - f60;
f70 = f54 + f60;
f71 = f68 - f70;
f72 = f68 + f70;
f73 = 0.7071067811865476 * f71;
f74 = f67 + f69;
f75 = 1.3065629648763766 * f67;
f76 = (-0.9238795325112866) * f74;
f77 = (-0.5411961001461967) * f69;
f78 = f75 + f76;
f79 = f77 - f76;
f80 = f47 - f65;
f81 = f47 + f65;
f82 = f53 - f59;
f83 = f53 + f59;
f84 = f81 + f83;
f85 = 1.3065629648763770 * f81;
f86 = (-0.3826834323650904) * f84;
f87 = 0.5411961001461961 * f83;
f88 = f85 + f86;
f89 = f87 - f86;
f90 = f80 - f82;
f91 = f80 + f82;
f92 = 0.7071067811865476 * f91;
f93 = f79 - f89;
f94 = f79 + f89;
f95 = f73 - f92;
f96 = f73 + f92;
f97 = f78 - f88;
f98 = f78 + f88;
f99 = f36 - f72;
f100 = f36 + f72;
f101 = f38 - f94;
f102 = f38 + f94;
f103 = f40 - f93;
f104 = f40 + f93;
f105 = f42 - f96;
f106 = f42 + f96;
f107 = f41 - f95;
f108 = f41 + f95;
f109 = f39 - f98;
f110 = f39 + f98;
f111 = f37 - f97;
f112 = f37 + f97;
f113 = f35 - f90;
f114 = f35 + f90;
f115 = t2[2] + t2[62];
f116 = 1.0478631305325901 * t2[2];
f117 = (-0.9987954562051724) * f115;
f118 = (-0.9497277818777548) * t2[62];
f119 = f116 + f117;
f120 = f118 - f117;
f121 = t2[10] + t2[54];
f122 = 1.2130114330978077 * t2[10];
f123 = (-0.9700312531945440) * f121;
f124 = (-0.7270510732912803) * t2[54];
f125 = f122 + f123;
f126 = f124 - f123;
f127 = t2[18] + t2[46];
f128 = 1.3315443865537255 * t2[18];
f129 = (-0.9039892931234433) * f127;
f130 = (-0.4764341996931612) * t2[46];
f131 = f128 + f129;
f132 = f130 - f129;
f133 = t2[26] + t2[38];
f134 = 1.3989068359730781 * t2[26];
f135 = (-0.8032075314806453) * f133;
f136 = (-0.2075082269882124) * t2[38];
f137 = f134 + f135;
f138 = f136 - f135;
f139 = t2[34] + t2[30];
f140 = 1.4125100802019777 * t2[34];
f141 = (-0.6715589548470187) * f139;
f142 = 0.0693921705079402 * t2[30];
f143 = f140 + f141;
f144 = f142 - f141;
f145 = t2[42] + t2[22];
f146 = 1.3718313541934939 * t2[42];
f147 = (-0.5141027441932219) * f145;
f148 = 0.3436258658070501 * t2[22];
f149 = f146 + f147;
f150 = f148 - f147;
f151 = t2[50] + t2[14];
f152 = 1.2784339185752409 * t2[50];
f153 = (-0.3368898533922200) * f151;
f154 = 0.6046542117908008 * t2[14];
f155 = f152 + f153;
f156 = f154 - f153;
f157 = t2[58] + t2[6];
f158 = 1.1359069844201433 * t2[58];
f159 = (-0.1467304744553624) * f157;
f160 = 0.8424460355094185 * t2[6];
f161 = f158 + f159;
f162 = f160 - f159;
f163 = f120 - f144;
f164 = f120 + f144;
f165 = f119 - f143;
f166 = f119 + f143;
f167 = f126 - f150;
f168 = f126 + f150;
f169 = f125 - f149;
f170 = f125 + f149;
f171 = f132 - f156;
f172 = f132 + f156;
f173 = f131 - f155;
f174 = f131 + f155;
f175 = f138 - f162;
f176 = f138 + f162;
f177 = f137 - f161;
f178 = f137 + f161;
f179 = f163 + f165;
f180 = 1.1758756024193588 * f163;
f181 = (-0.9807852804032304) * f179;
f182 = (-0.7856949583871021) * f165;
f183 = f180 + f181;
f184 = f182 - f181;
f185 = f167 + f169;
f186 = 1.3870398453221475 * f167;
f187 = (-0.5555702330196022) * f185;
f188 = 0.2758993792829431 * f169;
f189 = f186 + f187;
f190 = f188 - f187;
f191 = f171 + f173;
f192 = 0.7856949583871022 * f171;
f193 = 0.1950903220161283 * f191;
f194 = 1.1758756024193586 * f173;
f195 = f192 + f193;
f196 = f194 - f193;
f197 = f175 + f177;
f198 = (-0.2758993792829430) * f175;
f199 = 0.8314696123025452 * f197;
f200 = 1.3870398453221475 * f177;
f201 = f198 + f199;
f202 = f200 - f199;
f203 = f164 - f172;
f204 = f164 + f172;
f205 = f166 - f174;
f206 = f166 + f174;
f207 = f168 - f176;
f208 = f168 + f176;
f209 = f170 - f178;
f210 = f170 + f178;
f211 = f184 - f196;
f212 = f184 + f196;
f213 = f183 - f195;
f214 = f183 + f195;
f215 = f190 - f202;
f216 = f190 + f202;
f217 = f189 - f201;
f218 = f189 + f201;
f219 = f203 + f205;
f220 = 1.3065629648763766 * f203;
f221 = (-0.9238795325112866) * f219;
f222 = (-0.5411961001461967) * f205;
f223 = f220 + f221;
f224 = f222 - f221;
f225 = f207 + f209;
f226 = 0.5411961001461969 * f207;
f227 = 0.3826834323650898 * f225;
f228 = 1.3065629648763766 * f209;
f229 = f226 + f227;
f230 = f228 - f227;
f231 = f211 + f213;
f232 = 1.3065629648763766 * f211;
f233 = (-0.9238795325112866) * f231;
f234 = (-0.5411961001461967) * f213;
f235 = f232 + f233;
f236 = f234 - f233;
f237 = f215 + f217;
f238 = 0.5411961001461969 * f215;
f239 = 0.3826834323650898 * f237;
f240 = 1.3065629648763766 * f217;
f241 = f238 + f239;
f242 = f240 - f239;
f243 = f204 - f208;
f244 = f204 + f208;
f245 = f206 - f210;
f246 = f206 + f210;
f247 = f224 - f230;
f248 = f224 + f230;
f249 = f223 - f229;
f250 = f223 + f229;
f251 = f212 - f216;
f252 = f212 + f216;
f253 = f214 - f218;
f254 = f214 + f218;
f255 = f236 - f242;
f256 = f236 + f242;
f257 = f235 - f241;
f258 = f235 + f241;
f259 = f243 - f245;
f260 = f243 + f245;
f261 = 0.7071067811865474 * f259;
f262 = 0.7071067811865474 * f260;
f263 = f247 - f249;
f264 = f247 + f249;
f265 = 0.7071067811865474 * f263;
f266 = 0.7071067811865474 * f264;
f267 = f251 - f253;
f268 = f251 + f253;
f269 = 0.7071067811865474 * f267;
f270 = 0.7071067811865474 * f268;
f271 = f255 - f257;
f272 = f255 + f257;
f273 = 0.7071067811865474 * f271;
f274 = 0.7071067811865474 * f272;
f275 = f100 - f244;
f276 = f100 + f244;
f277 = f102 - f252;
f278 = f102 + f252;
f279 = f104 - f256;
f280 = f104 + f256;
f281 = f106 - f248;
f282 = f106 + f248;
f283 = f108 - f266;
f284 = f108 + f266;
f285 = f110 - f274;
f286 = f110 + f274;
f287 = f112 - f270;
f288 = f112 + f270;
f289 = f114 - f262;
f290 = f114 + f262;
f291 = f113 - f261;
f292 = f113 + f261;
f293 = f111 - f269;
f294 = f111 + f269;
f295 = f109 - f273;
f296 = f109 + f273;
f297 = f107 - f265;
f298 = f107 + f265;
f299 = f105 - f250;
f300 = f105 + f250;
f301 = f103 - f258;
f302 = f103 + f258;
f303 = f101 - f254;
f304 = f101 + f254;
f305 = f99 - f246;
f306 = f99 + f246;
f307 = t2[1] - t2[61];
f308 = 1.0478631305325901 * t2[1];
f309 = (-0.9987954562051724) * f307;
f310 = (-0.9497277818777548) * t2[61];
f311 = f308 + f309;
f312 = f309 + f310;
f313 = t2[9] - t2[53];
f314 = 1.2130114330978077 * t2[9];
f315 = (-0.9700312531945440) * f313;
f316 = (-0.7270510732912803) * t2[53];
f317 = f314 + f315;
f318 = f315 + f316;
f319 = t2[17] - t2[45];
f320 = 1.3315443865537255 * t2[17];
f321 = (-0.9039892931234433) * f319;
f322 = (-0.4764341996931612) * t2[45];
f323 = f320 + f321;
f324 = f321 + f322;
f325 = t2[25] - t2[37];
f326 = 1.3989068359730781 * t2[25];
f327 = (-0.8032075314806453) * f325;
f328 = (-0.2075082269882124) * t2[37];
f329 = f326 + f327;
f330 = f327 + f328;
f331 = t2[33] - t2[29];
f332 = 1.4125100802019777 * t2[33];
f333 = (-0.6715589548470187) * f331;
f334 = 0.0693921705079402 * t2[29];
f335 = f332 + f333;
f336 = f333 + f334;
f337 = t2[41] - t2[21];
f338 = 1.3718313541934939 * t2[41];
f339 = (-0.5141027441932219) * f337;
f340 = 0.3436258658070501 * t2[21];
f341 = f338 + f339;
f342 = f339 + f340;
f343 = t2[49] - t2[13];
f344 = 1.2784339185752409 * t2[49];
f345 = (-0.3368898533922200) * f343;
f346 = 0.6046542117908008 * t2[13];
f347 = f344 + f345;
f348 = f345 + f346;
f349 = t2[57] - t2[5];
f350 = 1.1359069844201433 * t2[57];
f351 = (-0.1467304744553624) * f349;
f352 = 0.8424460355094185 * t2[5];
f353 = f350 + f351;
f354 = f351 + f352;
f355 = f336 - f312;
f356 = f312 + f336;
f357 = f311 - f335;
f358 = f311 + f335;
f359 = f342 - f318;
f360 = f318 + f342;
f361 = f317 - f341;
f362 = f317 + f341;
f363 = f348 - f324;
f364 = f324 + f348;
f365 = f323 - f347;
f366 = f323 + f347;
f367 = f354 - f330;
f368 = f330 + f354;
f369 = f329 - f353;
f370 = f329 + f353;
f371 = f355 + f357;
f372 = 1.1758756024193588 * f355;
f373 = (-0.9807852804032304) * f371;
f374 = (-0.7856949583871021) * f357;
f375 = f372 + f373;
f376 = f374 - f373;
f377 = f359 + f361;
f378 = 1.3870398453221475 * f359;
f379 = (-0.5555702330196022) * f377;
f380 = 0.2758993792829431 * f361;
f381 = f378 + f379;
f382 = f380 - f379;
f383 = f363 + f365;
f384 = 0.7856949583871022 * f363;
f385 = 0.1950903220161283 * f383;
f386 = 1.1758756024193586 * f365;
f387 = f384 + f385;
f388 = f386 - f385;
f389 = f367 + f369;
f390 = (-0.2758993792829430) * f367;
f391 = 0.8314696123025452 * f389;
f392 = 1.3870398453221475 * f369;
f393 = f390 + f391;
f394 = f392 - f391;
f395 = f364 - f356;
f396 = f356 + f364;
f397 = f358 - f366;
f398 = f358 + f366;
f399 = f368 - f360;
f400 = f360 + f368;
f401 = f362 - f370;
f402 = f362 + f370;
f403 = f376 - f388;
f404 = f376 + f388;
f405 = f375 - f387;
f406 = f375 + f387;
f407 = f382 - f394;
f408 = f382 + f394;
f409 = f381 - f393;
f410 = f381 + f393;
f411 = f395 + f397;
f412 = 1.3065629648763766 * f395;
f413 = (-0.9238795325112866) * f411;
f414 = (-0.5411961001461967) * f397;
f415 = f412 + f413;
f416 = f414 - f413;
f417 = f399 + f401;
f418 = 0.5411961001461969 * f399;
f419 = 0.3826834323650898 * f417;
f420 = 1.3065629648763766 * f401;
f421 = f418 + f419;
f422 = f420 - f419;
f423 = f403 + f405;
f424 = 1.3065629648763766 * f403;
f425 = (-0.9238795325112866) * f423;
f426 = (-0.5411961001461967) * f405;
f427 = f424 + f425;
f428 = f426 - f425;
f429 = f407 + f409;
f430 = 0.5411961001461969 * f407;
f431 = 0.3826834323650898 * f429;
f432 = 1.3065629648763766 * f409;
f433 = f430 + f431;
f434 = f432 - f431;
f435 = f400 - f396;
f436 = f396 + f400;
f437 = f398 - f402;
f438 = f398 + f402;
f439 = f416 - f422;
f440 = f416 + f422;
f441 = f415 - f421;
f442 = f415 + f421;
f443 = f404 - f408;
f444 = f404 + f408;
f445 = f406 - f410;
f446 = f406 + f410;
f447 = f428 - f434;
f448 = f428 + f434;
f449 = f427 - f433;
f450 = f427 + f433;
f451 = f435 - f437;
f452 = f435 + f437;
f453 = 0.7071067811865474 * f451;
f454 = 0.7071067811865474 * f452;
f455 = f439 - f441;
f456 = f439 + f441;
f457 = 0.7071067811865474 * f455;
f458 = 0.7071067811865474 * f456;
f459 = f443 - f445;
f460 = f443 + f445;
f461 = 0.7071067811865474 * f459;
f462 = 0.7071067811865474 * f460;
f463 = f447 - f449;
f464 = f447 + f449;
f465 = 0.7071067811865474 * f463;
f466 = 0.7071067811865474 * f464;
f467 = 0.7071067811865476 * t2[31];
f468 = x[63] - f467;
f469 = x[63] + f467;
f470 = t2[47] + t2[15];
f471 = 1.3065629648763766 * t2[47];
f472 = (-0.9238795325112866) * f470;
f473 = (-0.5411961001461967) * t2[15];
f474 = f471 + f472;
f475 = f473 - f472;
f476 = f469 - f475;
f477 = f469 + f475;
f478 = f468 - f474;
f479 = f468 + f474;
f480 = t2[55] + t2[7];
f481 = 1.1758756024193588 * t2[55];
f482 = (-0.9807852804032304) * f480;
f483 = (-0.7856949583871021) * t2[7];
f484 = f481 + f482;
f485 = f483 - f482;
f486 = t2[39] + t2[23];
f487 = 1.3870398453221473 * t2[39];
f488 = (-0.8314696123025455) * f486;
f489 = (-0.2758993792829436) * t2[23];
f490 = f487 + f488;
f491 = f489 - f488;
f492 = f485 - f491;
f493 = f485 + f491;
f494 = 0.7071067811865476 * f492;
f495 = f484 - f490;
f496 = f484 + f490;
f497 = 0.7071067811865476 * f496;
f498 = f494 - f497;
f499 = f494 + f497;
f500 = f477 - f493;
f501 = f477 + f493;
f502 = f479 - f499;
f503 = f479 + f499;
f504 = f478 - f498;
f505 = f478 + f498;
f506 = f476 - f495;
f507 = f476 + f495;
f508 = t2[59] + t2[3];
f509 = 1.0932018670017569 * t2[59];
f510 = (-0.9951847266721969) * f508;
f511 = (-0.8971675863426368) * t2[3];
f512 = f509 + f510;
f513 = f511 - f510;
f514 = t2[51] + t2[11];
f515 = 1.2472250129866711 * t2[51];
f516 = (-0.9569403357322089) * f514;
f517 = (-0.6666556584777469) * t2[11];
f518 = f515 + f516;
f519 = f517 - f516;
f520 = t2[43] + t2[19];
f521 = 1.3533180011743526 * t2[43];
f522 = (-0.8819212643483551) * f520;
f523 = (-0.4105245275223575) * t2[19];
f524 = f521 + f522;
f525 = f523 - f522;
f526 = t2[35] + t2[27];
f527 = 1.4074037375263826 * t2[35];
f528 = (-0.7730104533627369) * f526;
f529 = (-0.1386171691990913) * t2[27];
f530 = f527 + f528;
f531 = f529 - f528;
f532 = f513 - f531;
f533 = f513 + f531;
f534 = f519 - f525;
f535 = f519 + f525;
f536 = f533 - f535;
f537 = f533 + f535;
f538 = 0.7071067811865476 * f536;
f539 = f532 + f534;
f540 = 1.3065629648763766 * f532;
f541 = (-0.9238795325112866) * f539;
f542 = (-0.5411961001461967) * f534;
f543 = f540 + f541;
f544 = f542 - f541;
f545 = f512 - f530;
f546 = f512 + f530;
f547 = f518 - f524;
f548 = f518 + f524;
f549 = f546 + f548;
f550 = 1.3065629648763770 * f546;
f551 = (-0.3826834323650904) * f549;
f552 = 0.5411961001461961 * f548;
f553 = f550 + f551;
f554 = f552 - f551;
f555 = f545 - f547;
f556 = f545 + f547;
f557 = 0.7071067811865476 * f556;
f558 = f544 - f554;
f559 = f544 + f554;
f560 = f538 - f557;
f561 = f538 + f557;
f562 = f543 - f553;
f563 = f543 + f553;
f564 = f501 - f537;
f565 = f501 + f537;
f566 = f503 - f559;
f567 = f503 + f559;
f568 = f505 - f558;
f569 = f505 + f558;
f570 = f507 - f561;
f571 = f507 + f561;
f572 = f506 - f560;
f573 = f506 + f560;
f574 = f504 - f563;
f575 = f504 + f563;
f576 = f502 - f562;
f577 = f502 + f562;
f578 = f500 - f555;
f579 = f500 + f555;
f580 = f438 - f565;
f581 = f438 + f565;
f582 = f446 + f567;
f583 = f446 - f567;
f584 = f450 - f569;
f585 = f450 + f569;
f586 = f442 + f571;
f587 = f442 - f571;
f588 = f457 - f573;
f589 = f457 + f573;
f590 = f465 + f575;
f591 = f465 - f575;
f592 = f461 - f577;
f593 = f461 + f577;
f594 = f453 + f579;
f595 = f453 - f579;
f596 = f454 - f578;
f597 = f454 + f578;
f598 = f462 + f576;
f599 = f462 - f576;
f600 = f466 - f574;
f601 = f466 + f574;
f602 = f458 + f572;
f603 = f458 - f572;
f604 = f440 - f570;
f605 = f440 + f570;
f606 = f448 + f568;
f607 = f448 - f568;
f608 = f444 - f566;
f609 = f444 + f566;
f610 = f564 - f436;
f611 = f436 + f564;
f612 = f581 + f276;
f613 = (-0.9876531635534246) * f581;
f614 = 0.9999247018391445 * f612;
f615 = 1.0121962401248645 * f276;
y[0] = f613 + f614;
y[63] = f615 - f614;
f618 = f583 + f278;
f619 = (-0.9625151616469906) * f583;
f620 = 0.9993223845883495 * f618;
f621 = 1.0361296075297086 * f278;
y[1] = f619 + f620;
y[62] = f621 - f620;
f624 = f585 + f280;
f625 = (-0.9367973765979405) * f585;
f626 = 0.9981181129001492 * f624;
f627 = 1.0594388492023579 * f280;
y[2] = f625 + f626;
y[61] = f627 - f626;
f630 = f587 + f282;
f631 = (-0.9105152998383381) * f587;
f632 = 0.9963126121827780 * f630;
f633 = 1.0821099245272179 * f282;
y[3] = f631 + f632;
y[60] = f633 - f632;
f636 = f589 + f284;
f637 = (-0.8836847627084729) * f589;
f638 = 0.9939069700023561 * f636;
f639 = 1.1041291772962392 * f284;
y[4] = f637 + f638;
y[59] = f639 - f638;
f642 = f591 + f286;
f643 = (-0.8563219269206538) * f591;
f644 = 0.9909026354277800 * f642;
f645 = 1.1254833439349063 * f286;
y[5] = f643 + f644;
y[58] = f645 - f644;
f648 = f593 + f288;
f649 = (-0.8284432748239970) * f593;
f650 = 0.9873014181578584 * f648;
f651 = 1.1461595614917197 * f288;
y[6] = f649 + f650;
y[57] = f651 - f650;
f654 = f595 + f290;
f655 = (-0.8000655994760753) * f595;
f656 = 0.9831054874312163 * f654;
f657 = 1.1661453753863573 * f290;
y[7] = f655 + f656;
y[56] = f657 - f656;
f660 = f597 + f292;
f661 = (-0.7712059945274091) * f597;
f662 = 0.9783173707196277 * f660;
f663 = 1.1854287469118463 * f292;
y[8] = f661 + f662;
y[55] = f663 - f662;
f666 = f599 + f294;
f667 = (-0.7418818439248888) * f599;
f668 = 0.9729399522055601 * f666;
f669 = 1.2039980604862313 * f294;
y[9] = f667 + f668;
y[54] = f669 - f668;
f672 = f601 + f296;
f673 = (-0.7121108114403374) * f601;
f674 = 0.9669764710448521 * f672;
f675 = 1.2218421306493668 * f296;
y[10] = f673 + f674;
y[53] = f675 - f674;
f678 = f603 + f298;
f679 = (-0.6819108300305128) * f603;
f680 = 0.9604305194155658 * f678;
f681 = 1.2389502088006188 * f298;
y[11] = f679 + f680;
y[52] = f681 - f680;
f684 = f605 + f300;
f685 = (-0.6513000910349656) * f605;
f686 = 0.9533060403541938 * f684;
f687 = 1.2553119896734219 * f300;
y[12] = f685 + f686;
y[51] = f687 - f686;
f690 = f607 + f302;
f691 = (-0.6202970332182582) * f607;
f692 = 0.9456073253805213 * f690;
f693 = 1.2709176175427843 * f302;
y[13] = f691 + f692;
y[50] = f693 - f692;
f696 = f609 + f304;
f697 = (-0.5889203316631404) * f609;
f698 = 0.9373390119125750 * f696;
f699 = 1.2857576921620095 * f304;
y[14] = f697 + f698;
y[49] = f699 - f698;
f702 = f306 - f611;
f703 = (-0.5571888865213779) * f611;
f704 = 0.9285060804732155 * f702;
f705 = 1.2998232744250531 * f306;
y[15] = f704 - f703;
y[48] = f705 - f704;
f708 = f610 + f305;
f709 = (-0.5251218116290097) * f610;
f710 = 0.9191138516900578 * f708;
f711 = 1.3131058917511058 * f305;
y[16] = f709 + f710;
y[47] = f711 - f710;
f714 = f608 + f303;
f715 = (-0.4927384229928850) * f608;
f716 = 0.9091679830905223 * f714;
f717 = 1.3255975431881595 * f303;
y[17] = f715 + f716;
y[46] = f717 - f716;
f720 = f606 + f301;
f721 = (-0.4600582271554261) * f606;
f722 = 0.8986744656939538 * f720;
f723 = 1.3372907042324815 * f301;
y[18] = f721 + f722;
y[45] = f723 - f722;
f726 = f604 + f299;
f727 = (-0.4271009094446139) * f604;
f728 = 0.8876396204028539 * f726;
f729 = 1.3481783313610940 * f299;
y[19] = f727 + f728;
y[44] = f729 - f728;
f732 = f602 + f297;
f733 = (-0.3938863221162838) * f602;
f734 = 0.8760700941954066 * f732;
f735 = 1.3582538662745294 * f297;
y[20] = f733 + f734;
y[43] = f735 - f734;
f738 = f600 + f295;
f739 = (-0.3604344723958691) * f600;
f740 = 0.8639728561215867 * f738;
f741 = 1.3675112398473042 * f295;
y[21] = f739 + f740;
y[42] = f741 - f740;
f744 = f598 + f293;
f745 = (-0.3267655104267964) * f598;
f746 = 0.8513551931052652 * f744;
f747 = 1.3759448757837340 * f293;
y[22] = f745 + f746;
y[41] = f747 - f746;
f750 = f596 + f291;
f751 = (-0.2928997171327915) * f596;
f752 = 0.8382247055548380 * f750;
f753 = 1.3835496939768843 * f291;
y[23] = f751 + f752;
y[40] = f753 - f752;
f756 = f594 + f289;
f757 = (-0.2588574920014121) * f594;
f758 = 0.8245893027850253 * f756;
f759 = 1.3903211135686386 * f289;
y[24] = f757 + f758;
y[39] = f759 - f758;
f762 = f592 + f287;
f763 = (-0.2246593407961559) * f592;
f764 = 0.8104571982525948 * f762;
f765 = 1.3962550557090336 * f287;
y[25] = f763 + f764;
y[38] = f765 - f764;
f768 = f590 + f285;
f769 = (-0.1903258632045579) * f590;
f770 = 0.7958369046088835 * f768;
f771 = 1.4013479460132090 * f285;
y[26] = f769 + f770;
y[37] = f771 - f770;
f774 = f588 + f283;
f775 = (-0.1558777404297079) * f588;
f776 = 0.7807372285720944 * f774;
f777 = 1.4055967167144807 * f283;
y[27] = f775 + f776;
y[36] = f777 - f776;
f780 = f586 + f281;
f781 = (-0.1213357227326675) * f586;
f782 = 0.7651672656224590 * f780;
f783 = 1.4089988085122505 * f281;
y[28] = f781 + f782;
y[35] = f783 - f782;
f786 = f584 + f279;
f787 = (-0.0867206169332875) * f584;
f788 = 0.7491363945234593 * f786;
f789 = 1.4115521721136310 * f279;
y[29] = f787 + f788;
y[34] = f789 - f788;
f792 = f582 + f277;
f793 = (-0.0520532738769597) * f582;
f794 = 0.7326542716724128 * f792;
f795 = 1.4132552694678659 * f277;
y[30] = f793 + f794;
y[33] = f795 - f794;
f798 = f580 + f275;
f799 = (-0.0173545758748457) * f580;
f800 = 0.7157308252838186 * f798;
f801 = 1.4141070746927915 * f275;
y[31] = f799 + f800;
y[32] = f801 - f800;
}
void DST4_64(real_t *y, real_t *x)
{
real_t f1;
real_t f3;
real_t f5;
real_t f7;
real_t f9;
real_t f11;
real_t f13;
real_t f15;
real_t f17;
real_t f19;
real_t f21;
real_t f23;
real_t f25;
real_t f27;
real_t f29;
real_t f31;
real_t f33;
real_t f35;
real_t f37;
real_t f39;
real_t f41;
real_t f43;
real_t f45;
real_t f47;
real_t f49;
real_t f51;
real_t f53;
real_t f55;
real_t f57;
real_t f59;
real_t f61;
real_t f63;
int16_t i0;
real_t f66;
real_t f67;
real_t f68;
real_t f69;
real_t f70;
real_t f71;
real_t f72;
real_t f73;
real_t f74;
real_t f75;
real_t f76;
real_t f77;
real_t f78;
real_t f79;
real_t f80;
real_t f81;
real_t f82;
real_t f83;
real_t f84;
real_t f85;
real_t f86;
real_t f87;
real_t f88;
real_t f89;
real_t f90;
real_t f91;
real_t f92;
real_t f93;
real_t f94;
real_t f95;
real_t f96;
real_t f97;
real_t f98;
real_t f99;
real_t f100;
real_t f101;
real_t f102;
real_t f103;
real_t f104;
real_t f105;
real_t f106;
real_t f107;
real_t f108;
real_t f109;
real_t f110;
real_t f111;
real_t f112;
real_t f113;
real_t f114;
real_t f115;
real_t f116;
real_t f117;
real_t f118;
real_t f119;
real_t f120;
real_t f121;
real_t f122;
real_t f123;
real_t f124;
real_t f125;
real_t f126;
real_t f127;
real_t f128;
real_t f129;
real_t f130;
real_t f131;
real_t f132;
real_t f133;
real_t f134;
real_t f135;
real_t f136;
real_t f137;
real_t f138;
real_t f139;
real_t f140;
real_t f141;
real_t f142;
real_t f143;
real_t f144;
real_t f145;
real_t f146;
real_t f147;
real_t f148;
real_t f149;
real_t f150;
real_t f151;
real_t f152;
real_t f153;
real_t f154;
real_t f155;
real_t f156;
real_t f157;
real_t f158;
real_t f159;
real_t f160;
real_t f161;
real_t f162;
real_t f163;
real_t f164;
real_t f165;
real_t f166;
real_t f167;
real_t f168;
real_t f169;
real_t f170;
real_t f171;
real_t f172;
real_t f173;
real_t f174;
real_t f175;
real_t f176;
real_t f177;
real_t f178;
real_t f179;
real_t f180;
real_t f181;
real_t f182;
real_t f183;
real_t f184;
real_t f185;
real_t f186;
real_t f187;
real_t f188;
real_t f189;
real_t f190;
real_t f191;
real_t f192;
real_t f193;
real_t f194;
real_t f195;
real_t f196;
real_t f197;
real_t f198;
real_t f199;
real_t f200;
real_t f201;
real_t f202;
real_t f203;
real_t f204;
real_t f205;
real_t f206;
real_t f207;
real_t f208;
real_t f209;
real_t f210;
real_t f211;
real_t f212;
real_t f213;
real_t f214;
real_t f215;
real_t f216;
real_t f217;
real_t f218;
real_t f219;
real_t f220;
real_t f221;
real_t f222;
real_t f223;
real_t f224;
real_t f225;
real_t f226;
real_t f227;
real_t f228;
real_t f229;
real_t f230;
real_t f231;
real_t f232;
real_t f233;
real_t f234;
real_t f235;
real_t f236;
real_t f237;
real_t f238;
real_t f239;
real_t f240;
real_t f241;
real_t f242;
real_t f243;
real_t f244;
real_t f245;
real_t f246;
real_t f247;
real_t f248;
real_t f249;
real_t f250;
real_t f251;
real_t f252;
real_t f253;
real_t f254;
real_t f255;
real_t f256;
real_t f257;
real_t f258;
real_t f259;
real_t f260;
real_t f261;
real_t f262;
real_t f263;
real_t f264;
real_t f265;
real_t f266;
real_t f267;
real_t f268;
real_t f269;
real_t f270;
real_t f271;
real_t f272;
real_t f273;
real_t f274;
real_t f275;
real_t f276;
real_t f277;
real_t f278;
real_t f279;
real_t f280;
real_t f281;
real_t f282;
real_t f283;
real_t f284;
real_t f285;
real_t f286;
real_t f287;
real_t f288;
real_t f289;
real_t f290;
real_t f291;
real_t f292;
real_t f293;
real_t f294;
real_t f295;
real_t f296;
real_t f297;
real_t f298;
real_t f299;
real_t f300;
real_t f301;
real_t f302;
real_t f303;
real_t f304;
real_t f305;
real_t f306;
real_t f307;
real_t f308;
real_t f309;
real_t f310;
real_t f311;
real_t f312;
real_t f313;
real_t f314;
real_t f315;
real_t f316;
real_t f317;
real_t f318;
real_t f319;
real_t f320;
real_t f321;
real_t f322;
real_t f323;
real_t f324;
real_t f325;
real_t f326;
real_t f327;
real_t f328;
real_t f329;
real_t f330;
real_t f331;
real_t f332;
real_t f333;
real_t f334;
real_t f335;
real_t f336;
real_t f337;
real_t f338;
real_t f339;
real_t f340;
real_t f341;
real_t f342;
real_t f343;
real_t f344;
real_t f345;
real_t f346;
real_t f347;
real_t f348;
real_t f349;
real_t f350;
real_t f351;
real_t f352;
real_t f353;
real_t f354;
real_t f355;
real_t f356;
real_t f357;
real_t f358;
real_t f359;
real_t f360;
real_t f361;
real_t f362;
real_t f363;
real_t f364;
real_t f365;
real_t f366;
real_t f367;
real_t f368;
real_t f369;
real_t f370;
real_t f371;
real_t f372;
real_t f373;
real_t f374;
real_t f375;
real_t f376;
real_t f377;
real_t f378;
real_t f379;
real_t f380;
real_t f381;
real_t f382;
real_t f383;
real_t f384;
real_t f385;
real_t f386;
real_t f387;
real_t f388;
real_t f389;
real_t f390;
real_t f391;
real_t f392;
real_t f393;
real_t f394;
real_t f395;
real_t f396;
real_t f397;
real_t f398;
real_t f399;
real_t f400;
real_t f401;
real_t f402;
real_t f403;
real_t f404;
real_t f405;
real_t f406;
real_t f407;
real_t f408;
real_t f409;
real_t f410;
real_t f411;
real_t f412;
real_t f413;
real_t f414;
real_t f415;
real_t f416;
real_t f417;
real_t f418;
real_t f419;
real_t f420;
real_t f421;
real_t f422;
real_t f423;
real_t f424;
real_t f425;
real_t f426;
real_t f427;
real_t f428;
real_t f429;
real_t f430;
real_t f431;
real_t f432;
real_t f433;
real_t f434;
real_t f435;
real_t f436;
real_t f437;
real_t f438;
real_t f439;
real_t f440;
real_t f441;
real_t f442;
real_t f443;
real_t f444;
real_t f445;
real_t f446;
real_t f447;
real_t f448;
real_t f449;
real_t f450;
real_t f451;
real_t f452;
real_t f453;
real_t f454;
real_t f455;
real_t f456;
real_t f457;
real_t f458;
real_t f459;
real_t f460;
real_t f461;
real_t f462;
real_t f463;
real_t f464;
real_t f465;
real_t f466;
real_t f467;
real_t f468;
real_t f469;
real_t f470;
real_t f471;
real_t f472;
real_t f473;
real_t f474;
real_t f475;
real_t f476;
real_t f477;
real_t f478;
real_t f479;
real_t f480;
real_t f481;
real_t f482;
real_t f483;
real_t f484;
real_t f485;
real_t f486;
real_t f487;
real_t f488;
real_t f489;
real_t f490;
real_t f491;
real_t f492;
real_t f493;
real_t f494;
real_t f495;
real_t f496;
real_t f497;
real_t f498;
real_t f499;
real_t f500;
real_t f501;
real_t f502;
real_t f503;
real_t f504;
real_t f505;
real_t f506;
real_t f507;
real_t f508;
real_t f509;
real_t f510;
real_t f511;
real_t f512;
real_t f513;
real_t f514;
real_t f515;
real_t f516;
real_t f517;
real_t f518;
real_t f519;
real_t f520;
real_t f521;
real_t f522;
real_t f523;
real_t f524;
real_t f525;
real_t f526;
real_t f527;
real_t f528;
real_t f529;
real_t f530;
real_t f531;
real_t f532;
real_t f533;
real_t f534;
real_t f535;
real_t f536;
real_t f537;
real_t f538;
real_t f539;
real_t f540;
real_t f541;
real_t f542;
real_t f543;
real_t f544;
real_t f545;
real_t f546;
real_t f547;
real_t f548;
real_t f549;
real_t f550;
real_t f551;
real_t f552;
real_t f553;
real_t f554;
real_t f555;
real_t f556;
real_t f557;
real_t f558;
real_t f559;
real_t f560;
real_t f561;
real_t f562;
real_t f563;
real_t f564;
real_t f565;
real_t f566;
real_t f567;
real_t f568;
real_t f569;
real_t f570;
real_t f571;
real_t f572;
real_t f573;
real_t f574;
real_t f575;
real_t f576;
real_t f577;
real_t f578;
real_t f579;
real_t f580;
real_t f581;
real_t f582;
real_t f583;
real_t f584;
real_t f585;
real_t f586;
real_t f587;
real_t f588;
real_t f589;
real_t f590;
real_t f591;
real_t f592;
real_t f593;
real_t f594;
real_t f595;
real_t f596;
real_t f597;
real_t f598;
real_t f599;
real_t f600;
real_t f601;
real_t f602;
real_t f603;
real_t f604;
real_t f605;
real_t f606;
real_t f607;
real_t f608;
real_t f609;
real_t f610;
real_t f611;
real_t f612;
real_t f613;
real_t f614;
real_t f615;
real_t f616;
real_t f617;
real_t f618;
real_t f619;
real_t f620;
real_t f621;
real_t f622;
real_t f623;
real_t f624;
real_t f625;
real_t f626;
real_t f627;
real_t f628;
real_t f629;
real_t f630;
real_t f631;
real_t f632;
real_t f633;
real_t f634;
real_t f635;
real_t f636;
real_t f637;
real_t f638;
real_t f639;
real_t f640;
real_t f641;
real_t f642;
real_t f643;
real_t f644;
real_t f645;
real_t f646;
real_t f647;
real_t f648;
real_t f649;
real_t f650;
real_t f651;
real_t f652;
real_t f653;
real_t f654;
real_t f655;
real_t f656;
real_t f657;
real_t f658;
real_t f659;
real_t f660;
real_t f661;
real_t f662;
real_t f663;
real_t f664;
real_t f665;
real_t f666;
real_t f667;
real_t f668;
real_t f669;
real_t f670;
real_t f671;
real_t f672;
real_t f673;
real_t f674;
real_t f675;
real_t f676;
real_t f677;
real_t f678;
real_t f679;
real_t f681;
real_t f682;
real_t f683;
real_t f684;
real_t f685;
real_t f686;
real_t f687;
real_t f688;
real_t f689;
real_t f690;
real_t f691;
real_t f692;
real_t f693;
real_t f694;
real_t f695;
real_t f696;
real_t f697;
real_t f698;
real_t f699;
real_t f700;
real_t f701;
real_t f702;
real_t f703;
real_t f704;
real_t f705;
real_t f706;
real_t f707;
real_t f708;
real_t f709;
real_t f710;
real_t f711;
real_t f712;
real_t f713;
real_t f714;
real_t f715;
real_t f716;
real_t f717;
real_t f718;
real_t f719;
real_t f720;
real_t f721;
real_t f722;
real_t f723;
real_t f724;
real_t f725;
real_t f726;
real_t f727;
real_t f728;
real_t f729;
real_t f730;
real_t f731;
real_t f732;
real_t f733;
real_t f734;
real_t f735;
real_t f736;
real_t f737;
real_t f738;
real_t f739;
real_t f740;
real_t f741;
real_t f742;
real_t f743;
real_t f744;
real_t f745;
real_t f746;
real_t f747;
real_t f748;
real_t f749;
real_t f750;
real_t f751;
real_t f752;
real_t f753;
real_t f754;
real_t f755;
real_t f756;
real_t f757;
real_t f758;
real_t f759;
real_t f760;
real_t f761;
real_t f762;
real_t f763;
real_t f764;
real_t f765;
real_t f766;
real_t f767;
real_t f768;
real_t f769;
real_t f770;
static real_t t7[64];
static real_t t6[64];
static real_t t0[64];
t7[0] = 0.5000376519155477 * x[0];
f1 = 0.5003390374428216 * x[1];
t7[2] = 0 - f1;
t7[4] = 0.5009427176380873 * x[2];
f3 = 0.5018505174842379 * x[3];
t7[6] = 0 - f3;
t7[8] = 0.5030651913013697 * x[4];
f5 = 0.5045904432216454 * x[5];
t7[10] = 0 - f5;
t7[12] = 0.5064309549285542 * x[6];
f7 = 0.5085924210498143 * x[7];
t7[14] = 0 - f7;
t7[16] = 0.5110815927066812 * x[8];
f9 = 0.5139063298475396 * x[9];
t7[18] = 0 - f9;
t7[20] = 0.5170756631334912 * x[10];
f11 = 0.5205998663018917 * x[11];
t7[22] = 0 - f11;
t7[24] = 0.5244905401147240 * x[12];
f13 = 0.5287607092074876 * x[13];
t7[26] = 0 - f13;
t7[28] = 0.5334249333971333 * x[14];
f15 = 0.5384994352919840 * x[15];
t7[30] = 0 - f15;
t7[32] = 0.5440022463817783 * x[16];
f17 = 0.5499533741832360 * x[17];
t7[34] = 0 - f17;
t7[36] = 0.5563749934898856 * x[18];
f19 = 0.5632916653417023 * x[19];
t7[38] = 0 - f19;
t7[40] = 0.5707305880121454 * x[20];
f21 = 0.5787218851348208 * x[21];
t7[42] = 0 - f21;
t7[44] = 0.5872989370937893 * x[22];
f23 = 0.5964987630244563 * x[23];
t7[46] = 0 - f23;
t7[48] = 0.6063624622721460 * x[24];
f25 = 0.6169357260050706 * x[25];
t7[50] = 0 - f25;
t7[52] = 0.6282694319707711 * x[26];
f27 = 0.6404203382416639 * x[27];
t7[54] = 0 - f27;
t7[56] = 0.6534518953751283 * x[28];
f29 = 0.6674352009263413 * x[29];
t7[58] = 0 - f29;
t7[60] = 0.6824501259764195 * x[30];
f31 = 0.6985866506472291 * x[31];
t7[62] = 0 - f31;
t7[63] = 0.7159464549705746 * x[32];
f33 = 0.7346448236478627 * x[33];
t7[61] = 0 - f33;
t7[59] = 0.7548129391165311 * x[34];
f35 = 0.7766006582339630 * x[35];
t7[57] = 0 - f35;
t7[55] = 0.8001798956216941 * x[36];
f37 = 0.8257487738627852 * x[37];
t7[53] = 0 - f37;
t7[51] = 0.8535367510066064 * x[38];
f39 = 0.8838110045596234 * x[39];
t7[49] = 0 - f39;
t7[47] = 0.9168844461846523 * x[40];
f41 = 0.9531258743921193 * x[41];
t7[45] = 0 - f41;
t7[43] = 0.9929729612675466 * x[42];
f43 = 1.0369490409103890 * x[43];
t7[41] = 0 - f43;
t7[39] = 1.0856850642580145 * x[44];
f45 = 1.1399486751015042 * x[45];
t7[37] = 0 - f45;
t7[35] = 1.2006832557294167 * x[46];
f47 = 1.2690611716991191 * x[47];
t7[33] = 0 - f47;
t7[31] = 1.3465576282062861 * x[48];
f49 = 1.4350550884414341 * x[49];
t7[29] = 0 - f49;
t7[27] = 1.5369941008524954 * x[50];
f51 = 1.6555965242641195 * x[51];
t7[25] = 0 - f51;
t7[23] = 1.7952052190778898 * x[52];
f53 = 1.9618178485711659 * x[53];
t7[21] = 0 - f53;
t7[19] = 2.1639578187519790 * x[54];
f55 = 2.4141600002500763 * x[55];
t7[17] = 0 - f55;
t7[15] = 2.7316450287739396 * x[56];
f57 = 3.1474621917819090 * x[57];
t7[13] = 0 - f57;
t7[11] = 3.7152427383269746 * x[58];
f59 = 4.5362909369693565 * x[59];
t7[9] = 0 - f59;
t7[7] = 5.8276883778446544 * x[60];
f61 = 8.1538486024668142 * x[61];
t7[5] = 0 - f61;
t7[3] = 13.5842902572844600 * x[62];
f63 = 40.7446881033518340 * x[63];
t7[1] = 0 - f63;
for (i0=0; i0<32; i0++)
{
t6[2*i0+1] = t7[2*i0] - t7[2*i0+1];
t6[2*i0] = t7[2*i0] + t7[2*i0+1];
}
f66 = t6[0] - t6[62];
f67 = t6[0] + t6[62];
f68 = t6[2] - t6[60];
f69 = t6[2] + t6[60];
f70 = t6[4] - t6[58];
f71 = t6[4] + t6[58];
f72 = t6[6] - t6[56];
f73 = t6[6] + t6[56];
f74 = t6[8] - t6[54];
f75 = t6[8] + t6[54];
f76 = t6[10] - t6[52];
f77 = t6[10] + t6[52];
f78 = t6[12] - t6[50];
f79 = t6[12] + t6[50];
f80 = t6[14] - t6[48];
f81 = t6[14] + t6[48];
f82 = t6[16] - t6[46];
f83 = t6[16] + t6[46];
f84 = t6[18] - t6[44];
f85 = t6[18] + t6[44];
f86 = t6[20] - t6[42];
f87 = t6[20] + t6[42];
f88 = t6[22] - t6[40];
f89 = t6[22] + t6[40];
f90 = t6[24] - t6[38];
f91 = t6[24] + t6[38];
f92 = t6[26] - t6[36];
f93 = t6[26] + t6[36];
f94 = t6[28] - t6[34];
f95 = t6[28] + t6[34];
f96 = t6[30] - t6[32];
f97 = t6[30] + t6[32];
f98 = f67 - f97;
f99 = f67 + f97;
f100 = f69 - f95;
f101 = f69 + f95;
f102 = f71 - f93;
f103 = f71 + f93;
f104 = f73 - f91;
f105 = f73 + f91;
f106 = f75 - f89;
f107 = f75 + f89;
f108 = f77 - f87;
f109 = f77 + f87;
f110 = f79 - f85;
f111 = f79 + f85;
f112 = f81 - f83;
f113 = f81 + f83;
f114 = f99 - f113;
f115 = f99 + f113;
f116 = f101 - f111;
f117 = f101 + f111;
f118 = f103 - f109;
f119 = f103 + f109;
f120 = f105 - f107;
f121 = f105 + f107;
f122 = f115 - f121;
f123 = f115 + f121;
f124 = f117 - f119;
f125 = f117 + f119;
f126 = f123 - f125;
f127 = f123 + f125;
f128 = 0.7071067811865476 * f126;
f129 = f122 + f124;
f130 = 1.3065629648763766 * f122;
f131 = (-0.9238795325112866) * f129;
f132 = (-0.5411961001461967) * f124;
f133 = f130 + f131;
f134 = f132 - f131;
f135 = f116 - f118;
f136 = f116 + f118;
f137 = 0.7071067811865476 * f136;
f138 = 0.7071067811865476 * f135;
f139 = f114 - f137;
f140 = f114 + f137;
f141 = f120 - f138;
f142 = f120 + f138;
f143 = f142 + f140;
f144 = (-0.7856949583871021) * f142;
f145 = 0.9807852804032304 * f143;
f146 = 1.1758756024193588 * f140;
f147 = f144 + f145;
f148 = f146 - f145;
f149 = f141 + f139;
f150 = 0.2758993792829431 * f141;
f151 = 0.5555702330196022 * f149;
f152 = 1.3870398453221475 * f139;
f153 = f150 + f151;
f154 = f152 - f151;
f155 = f100 - f102;
f156 = f100 + f102;
f157 = f104 - f106;
f158 = f104 + f106;
f159 = f108 - f110;
f160 = f108 + f110;
f161 = 0.7071067811865476 * f158;
f162 = f98 - f161;
f163 = f98 + f161;
f164 = f156 + f160;
f165 = 1.3065629648763766 * f156;
f166 = (-0.9238795325112866) * f164;
f167 = (-0.5411961001461967) * f160;
f168 = f165 + f166;
f169 = f167 - f166;
f170 = f163 - f169;
f171 = f163 + f169;
f172 = f162 - f168;
f173 = f162 + f168;
f174 = f155 + f159;
f175 = 1.3065629648763770 * f155;
f176 = (-0.3826834323650904) * f174;
f177 = 0.5411961001461961 * f159;
f178 = f175 + f176;
f179 = f177 - f176;
f180 = 0.7071067811865476 * f157;
f181 = f180 - f112;
f182 = f180 + f112;
f183 = f179 - f182;
f184 = f179 + f182;
f185 = f178 - f181;
f186 = f178 + f181;
f187 = f184 + f171;
f188 = (-0.8971675863426361) * f184;
f189 = 0.9951847266721968 * f187;
f190 = 1.0932018670017576 * f171;
f191 = f188 + f189;
f192 = f190 - f189;
f193 = f186 + f173;
f194 = (-0.6666556584777466) * f186;
f195 = 0.9569403357322089 * f193;
f196 = 1.2472250129866713 * f173;
f197 = f194 + f195;
f198 = f196 - f195;
f199 = f185 + f172;
f200 = (-0.4105245275223571) * f185;
f201 = 0.8819212643483549 * f199;
f202 = 1.3533180011743529 * f172;
f203 = f200 + f201;
f204 = f202 - f201;
f205 = f183 + f170;
f206 = (-0.1386171691990915) * f183;
f207 = 0.7730104533627370 * f205;
f208 = 1.4074037375263826 * f170;
f209 = f206 + f207;
f210 = f208 - f207;
f211 = f66 + f96;
f212 = 1.0478631305325901 * f66;
f213 = (-0.9987954562051724) * f211;
f214 = (-0.9497277818777548) * f96;
f215 = f212 + f213;
f216 = f214 - f213;
f217 = f70 + f92;
f218 = 1.2130114330978077 * f70;
f219 = (-0.9700312531945440) * f217;
f220 = (-0.7270510732912803) * f92;
f221 = f218 + f219;
f222 = f220 - f219;
f223 = f74 + f88;
f224 = 1.3315443865537255 * f74;
f225 = (-0.9039892931234433) * f223;
f226 = (-0.4764341996931612) * f88;
f227 = f224 + f225;
f228 = f226 - f225;
f229 = f78 + f84;
f230 = 1.3989068359730781 * f78;
f231 = (-0.8032075314806453) * f229;
f232 = (-0.2075082269882124) * f84;
f233 = f230 + f231;
f234 = f232 - f231;
f235 = f82 + f80;
f236 = 1.4125100802019777 * f82;
f237 = (-0.6715589548470187) * f235;
f238 = 0.0693921705079402 * f80;
f239 = f236 + f237;
f240 = f238 - f237;
f241 = f86 + f76;
f242 = 1.3718313541934939 * f86;
f243 = (-0.5141027441932219) * f241;
f244 = 0.3436258658070501 * f76;
f245 = f242 + f243;
f246 = f244 - f243;
f247 = f90 + f72;
f248 = 1.2784339185752409 * f90;
f249 = (-0.3368898533922200) * f247;
f250 = 0.6046542117908008 * f72;
f251 = f248 + f249;
f252 = f250 - f249;
f253 = f94 + f68;
f254 = 1.1359069844201433 * f94;
f255 = (-0.1467304744553624) * f253;
f256 = 0.8424460355094185 * f68;
f257 = f254 + f255;
f258 = f256 - f255;
f259 = f216 - f240;
f260 = f216 + f240;
f261 = f215 - f239;
f262 = f215 + f239;
f263 = f222 - f246;
f264 = f222 + f246;
f265 = f221 - f245;
f266 = f221 + f245;
f267 = f228 - f252;
f268 = f228 + f252;
f269 = f227 - f251;
f270 = f227 + f251;
f271 = f234 - f258;
f272 = f234 + f258;
f273 = f233 - f257;
f274 = f233 + f257;
f275 = f259 + f261;
f276 = 1.1758756024193588 * f259;
f277 = (-0.9807852804032304) * f275;
f278 = (-0.7856949583871021) * f261;
f279 = f276 + f277;
f280 = f278 - f277;
f281 = f263 + f265;
f282 = 1.3870398453221475 * f263;
f283 = (-0.5555702330196022) * f281;
f284 = 0.2758993792829431 * f265;
f285 = f282 + f283;
f286 = f284 - f283;
f287 = f267 + f269;
f288 = 0.7856949583871022 * f267;
f289 = 0.1950903220161283 * f287;
f290 = 1.1758756024193586 * f269;
f291 = f288 + f289;
f292 = f290 - f289;
f293 = f271 + f273;
f294 = (-0.2758993792829430) * f271;
f295 = 0.8314696123025452 * f293;
f296 = 1.3870398453221475 * f273;
f297 = f294 + f295;
f298 = f296 - f295;
f299 = f260 - f268;
f300 = f260 + f268;
f301 = f262 - f270;
f302 = f262 + f270;
f303 = f264 - f272;
f304 = f264 + f272;
f305 = f266 - f274;
f306 = f266 + f274;
f307 = f280 - f292;
f308 = f280 + f292;
f309 = f279 - f291;
f310 = f279 + f291;
f311 = f286 - f298;
f312 = f286 + f298;
f313 = f285 - f297;
f314 = f285 + f297;
f315 = f299 + f301;
f316 = 1.3065629648763766 * f299;
f317 = (-0.9238795325112866) * f315;
f318 = (-0.5411961001461967) * f301;
f319 = f316 + f317;
f320 = f318 - f317;
f321 = f303 + f305;
f322 = 0.5411961001461969 * f303;
f323 = 0.3826834323650898 * f321;
f324 = 1.3065629648763766 * f305;
f325 = f322 + f323;
f326 = f324 - f323;
f327 = f307 + f309;
f328 = 1.3065629648763766 * f307;
f329 = (-0.9238795325112866) * f327;
f330 = (-0.5411961001461967) * f309;
f331 = f328 + f329;
f332 = f330 - f329;
f333 = f311 + f313;
f334 = 0.5411961001461969 * f311;
f335 = 0.3826834323650898 * f333;
f336 = 1.3065629648763766 * f313;
f337 = f334 + f335;
f338 = f336 - f335;
f339 = f300 - f304;
f340 = f300 + f304;
f341 = f302 - f306;
f342 = f302 + f306;
f343 = f320 - f326;
f344 = f320 + f326;
f345 = f319 - f325;
f346 = f319 + f325;
f347 = f308 - f312;
f348 = f308 + f312;
f349 = f310 - f314;
f350 = f310 + f314;
f351 = f332 - f338;
f352 = f332 + f338;
f353 = f331 - f337;
f354 = f331 + f337;
f355 = f339 - f341;
f356 = f339 + f341;
f357 = 0.7071067811865474 * f355;
f358 = 0.7071067811865474 * f356;
f359 = f343 - f345;
f360 = f343 + f345;
f361 = 0.7071067811865474 * f359;
f362 = 0.7071067811865474 * f360;
f363 = f347 - f349;
f364 = f347 + f349;
f365 = 0.7071067811865474 * f363;
f366 = 0.7071067811865474 * f364;
f367 = f351 - f353;
f368 = f351 + f353;
f369 = 0.7071067811865474 * f367;
f370 = 0.7071067811865474 * f368;
f371 = t6[31] - t6[33];
f372 = t6[31] + t6[33];
f373 = 0.7071067811865476 * f372;
f374 = 0.7071067811865476 * f371;
f375 = t6[17] - t6[47];
f376 = t6[17] + t6[47];
f377 = 0.7071067811865476 * f376;
f378 = 0.7071067811865476 * f375;
f379 = t6[25] - t6[39];
f380 = t6[25] + t6[39];
f381 = 0.7071067811865476 * f380;
f382 = 0.7071067811865476 * f379;
f383 = t6[23] - t6[41];
f384 = t6[23] + t6[41];
f385 = 0.7071067811865476 * f384;
f386 = 0.7071067811865476 * f383;
f387 = t6[29] - t6[35];
f388 = t6[29] + t6[35];
f389 = 0.7071067811865476 * f388;
f390 = 0.7071067811865476 * f387;
f391 = t6[19] - t6[45];
f392 = t6[19] + t6[45];
f393 = 0.7071067811865476 * f392;
f394 = 0.7071067811865476 * f391;
f395 = t6[27] - t6[37];
f396 = t6[27] + t6[37];
f397 = 0.7071067811865476 * f396;
f398 = 0.7071067811865476 * f395;
f399 = t6[21] - t6[43];
f400 = t6[21] + t6[43];
f401 = 0.7071067811865476 * f400;
f402 = 0.7071067811865476 * f399;
f403 = t6[1] - f373;
f404 = t6[1] + f373;
f405 = t6[63] - f374;
f406 = t6[63] + f374;
f407 = t6[15] - f377;
f408 = t6[15] + f377;
f409 = t6[49] - f378;
f410 = t6[49] + f378;
f411 = t6[7] - f381;
f412 = t6[7] + f381;
f413 = t6[57] - f382;
f414 = t6[57] + f382;
f415 = t6[9] - f385;
f416 = t6[9] + f385;
f417 = t6[55] - f386;
f418 = t6[55] + f386;
f419 = t6[3] - f389;
f420 = t6[3] + f389;
f421 = t6[61] - f390;
f422 = t6[61] + f390;
f423 = t6[13] - f393;
f424 = t6[13] + f393;
f425 = t6[51] - f394;
f426 = t6[51] + f394;
f427 = t6[5] - f397;
f428 = t6[5] + f397;
f429 = t6[59] - f398;
f430 = t6[59] + f398;
f431 = t6[11] - f401;
f432 = t6[11] + f401;
f433 = t6[53] - f402;
f434 = t6[53] + f402;
f435 = f410 + f408;
f436 = (-0.5411961001461969) * f410;
f437 = 0.9238795325112867 * f435;
f438 = 1.3065629648763766 * f408;
f439 = f436 + f437;
f440 = f438 - f437;
f441 = f409 + f407;
f442 = 1.3065629648763770 * f409;
f443 = (-0.3826834323650904) * f441;
f444 = 0.5411961001461961 * f407;
f445 = f442 + f443;
f446 = f444 - f443;
f447 = f418 + f416;
f448 = (-0.5411961001461969) * f418;
f449 = 0.9238795325112867 * f447;
f450 = 1.3065629648763766 * f416;
f451 = f448 + f449;
f452 = f450 - f449;
f453 = f417 + f415;
f454 = 1.3065629648763770 * f417;
f455 = (-0.3826834323650904) * f453;
f456 = 0.5411961001461961 * f415;
f457 = f454 + f455;
f458 = f456 - f455;
f459 = f426 + f424;
f460 = (-0.5411961001461969) * f426;
f461 = 0.9238795325112867 * f459;
f462 = 1.3065629648763766 * f424;
f463 = f460 + f461;
f464 = f462 - f461;
f465 = f425 + f423;
f466 = 1.3065629648763770 * f425;
f467 = (-0.3826834323650904) * f465;
f468 = 0.5411961001461961 * f423;
f469 = f466 + f467;
f470 = f468 - f467;
f471 = f434 + f432;
f472 = (-0.5411961001461969) * f434;
f473 = 0.9238795325112867 * f471;
f474 = 1.3065629648763766 * f432;
f475 = f472 + f473;
f476 = f474 - f473;
f477 = f433 + f431;
f478 = 1.3065629648763770 * f433;
f479 = (-0.3826834323650904) * f477;
f480 = 0.5411961001461961 * f431;
f481 = f478 + f479;
f482 = f480 - f479;
f483 = f404 - f439;
f484 = f404 + f439;
f485 = f406 - f440;
f486 = f406 + f440;
f487 = f403 - f445;
f488 = f403 + f445;
f489 = f405 - f446;
f490 = f405 + f446;
f491 = f412 - f451;
f492 = f412 + f451;
f493 = f414 - f452;
f494 = f414 + f452;
f495 = f411 - f457;
f496 = f411 + f457;
f497 = f413 - f458;
f498 = f413 + f458;
f499 = f420 - f463;
f500 = f420 + f463;
f501 = f422 - f464;
f502 = f422 + f464;
f503 = f419 - f469;
f504 = f419 + f469;
f505 = f421 - f470;
f506 = f421 + f470;
f507 = f428 - f475;
f508 = f428 + f475;
f509 = f430 - f476;
f510 = f430 + f476;
f511 = f427 - f481;
f512 = f427 + f481;
f513 = f429 - f482;
f514 = f429 + f482;
f515 = f494 + f492;
f516 = (-0.7856949583871021) * f494;
f517 = 0.9807852804032304 * f515;
f518 = 1.1758756024193588 * f492;
f519 = f516 + f517;
f520 = f518 - f517;
f521 = f498 + f496;
f522 = 0.2758993792829431 * f498;
f523 = 0.5555702330196022 * f521;
f524 = 1.3870398453221475 * f496;
f525 = f522 + f523;
f526 = f524 - f523;
f527 = f493 + f491;
f528 = 1.1758756024193591 * f493;
f529 = (-0.1950903220161287) * f527;
f530 = 0.7856949583871016 * f491;
f531 = f528 + f529;
f532 = f530 - f529;
f533 = f497 + f495;
f534 = 1.3870398453221473 * f497;
f535 = (-0.8314696123025455) * f533;
f536 = (-0.2758993792829436) * f495;
f537 = f534 + f535;
f538 = f536 - f535;
f539 = f510 + f508;
f540 = (-0.7856949583871021) * f510;
f541 = 0.9807852804032304 * f539;
f542 = 1.1758756024193588 * f508;
f543 = f540 + f541;
f544 = f542 - f541;
f545 = f514 + f512;
f546 = 0.2758993792829431 * f514;
f547 = 0.5555702330196022 * f545;
f548 = 1.3870398453221475 * f512;
f549 = f546 + f547;
f550 = f548 - f547;
f551 = f509 + f507;
f552 = 1.1758756024193591 * f509;
f553 = (-0.1950903220161287) * f551;
f554 = 0.7856949583871016 * f507;
f555 = f552 + f553;
f556 = f554 - f553;
f557 = f513 + f511;
f558 = 1.3870398453221473 * f513;
f559 = (-0.8314696123025455) * f557;
f560 = (-0.2758993792829436) * f511;
f561 = f558 + f559;
f562 = f560 - f559;
f563 = f484 - f519;
f564 = f484 + f519;
f565 = f486 - f520;
f566 = f486 + f520;
f567 = f488 - f525;
f568 = f488 + f525;
f569 = f490 - f526;
f570 = f490 + f526;
f571 = f483 - f531;
f572 = f483 + f531;
f573 = f485 - f532;
f574 = f485 + f532;
f575 = f487 - f537;
f576 = f487 + f537;
f577 = f489 - f538;
f578 = f489 + f538;
f579 = f500 - f543;
f580 = f500 + f543;
f581 = f502 - f544;
f582 = f502 + f544;
f583 = f504 - f549;
f584 = f504 + f549;
f585 = f506 - f550;
f586 = f506 + f550;
f587 = f499 - f555;
f588 = f499 + f555;
f589 = f501 - f556;
f590 = f501 + f556;
f591 = f503 - f561;
f592 = f503 + f561;
f593 = f505 - f562;
f594 = f505 + f562;
f595 = f582 + f580;
f596 = (-0.8971675863426361) * f582;
f597 = 0.9951847266721968 * f595;
f598 = 1.0932018670017576 * f580;
f599 = f596 + f597;
f600 = f598 - f597;
f601 = f586 + f584;
f602 = (-0.4105245275223571) * f586;
f603 = 0.8819212643483549 * f601;
f604 = 1.3533180011743529 * f584;
f605 = f602 + f603;
f606 = f604 - f603;
f607 = f590 + f588;
f608 = 0.1386171691990915 * f590;
f609 = 0.6343932841636455 * f607;
f610 = 1.4074037375263826 * f588;
f611 = f608 + f609;
f612 = f610 - f609;
f613 = f594 + f592;
f614 = 0.6666556584777466 * f594;
f615 = 0.2902846772544623 * f613;
f616 = 1.2472250129866711 * f592;
f617 = f614 + f615;
f618 = f616 - f615;
f619 = f581 + f579;
f620 = 1.0932018670017574 * f581;
f621 = (-0.0980171403295605) * f619;
f622 = 0.8971675863426364 * f579;
f623 = f620 + f621;
f624 = f622 - f621;
f625 = f585 + f583;
f626 = 1.3533180011743529 * f585;
f627 = (-0.4713967368259979) * f625;
f628 = 0.4105245275223569 * f583;
f629 = f626 + f627;
f630 = f628 - f627;
f631 = f589 + f587;
f632 = 1.4074037375263826 * f589;
f633 = (-0.7730104533627369) * f631;
f634 = (-0.1386171691990913) * f587;
f635 = f632 + f633;
f636 = f634 - f633;
f637 = f593 + f591;
f638 = 1.2472250129866711 * f593;
f639 = (-0.9569403357322089) * f637;
f640 = (-0.6666556584777469) * f591;
f641 = f638 + f639;
f642 = f640 - f639;
f643 = f564 - f599;
f644 = f564 + f599;
f645 = f566 - f600;
f646 = f566 + f600;
f647 = f568 - f605;
f648 = f568 + f605;
f649 = f570 - f606;
f650 = f570 + f606;
f651 = f572 - f611;
f652 = f572 + f611;
f653 = f574 - f612;
f654 = f574 + f612;
f655 = f576 - f617;
f656 = f576 + f617;
f657 = f578 - f618;
f658 = f578 + f618;
f659 = f563 - f623;
f660 = f563 + f623;
f661 = f565 - f624;
f662 = f565 + f624;
f663 = f567 - f629;
f664 = f567 + f629;
f665 = f569 - f630;
f666 = f569 + f630;
f667 = f571 - f635;
f668 = f571 + f635;
f669 = f573 - f636;
f670 = f573 + f636;
f671 = f575 - f641;
f672 = f575 + f641;
f673 = f577 - f642;
f674 = f577 + f642;
f675 = f646 + f644;
f676 = (-0.9751575901732920) * f646;
f677 = 0.9996988186962043 * f675;
f678 = 1.0242400472191164 * f644;
f679 = f676 + f677;
t0[63] = f678 - f677;
f681 = f650 + f648;
f682 = (-0.8700688593994936) * f650;
f683 = 0.9924795345987100 * f681;
f684 = 1.1148902097979263 * f648;
f685 = f682 + f683;
f686 = f684 - f683;
f687 = f654 + f652;
f688 = (-0.7566008898816587) * f654;
f689 = 0.9757021300385286 * f687;
f690 = 1.1948033701953984 * f652;
f691 = f688 + f689;
f692 = f690 - f689;
f693 = f658 + f656;
f694 = (-0.6358464401941451) * f658;
f695 = 0.9495281805930367 * f693;
f696 = 1.2632099209919283 * f656;
f697 = f694 + f695;
f698 = f696 - f695;
f699 = f662 + f660;
f700 = (-0.5089684416985408) * f662;
f701 = 0.9142097557035307 * f699;
f702 = 1.3194510697085207 * f660;
f703 = f700 + f701;
f704 = f702 - f701;
f705 = f666 + f664;
f706 = (-0.3771887988789273) * f666;
f707 = 0.8700869911087114 * f705;
f708 = 1.3629851833384954 * f664;
f709 = f706 + f707;
f710 = f708 - f707;
f711 = f670 + f668;
f712 = (-0.2417766217337384) * f670;
f713 = 0.8175848131515837 * f711;
f714 = 1.3933930045694289 * f668;
f715 = f712 + f713;
f716 = f714 - f713;
f717 = f674 + f672;
f718 = (-0.1040360035527077) * f674;
f719 = 0.7572088465064845 * f717;
f720 = 1.4103816894602612 * f672;
f721 = f718 + f719;
f722 = f720 - f719;
f723 = f645 + f643;
f724 = 0.0347065382144002 * f645;
f725 = 0.6895405447370668 * f723;
f726 = 1.4137876276885337 * f643;
f727 = f724 + f725;
f728 = f726 - f725;
f729 = f649 + f647;
f730 = 0.1731148370459795 * f649;
f731 = 0.6152315905806268 * f729;
f732 = 1.4035780182072330 * f647;
f733 = f730 + f731;
f734 = f732 - f731;
f735 = f653 + f651;
f736 = 0.3098559453626100 * f653;
f737 = 0.5349976198870972 * f735;
f738 = 1.3798511851368043 * f651;
f739 = f736 + f737;
f740 = f738 - f737;
f741 = f657 + f655;
f742 = 0.4436129715409088 * f657;
f743 = 0.4496113296546065 * f741;
f744 = 1.3428356308501219 * f655;
f745 = f742 + f743;
f746 = f744 - f743;
f747 = f661 + f659;
f748 = 0.5730977622997509 * f661;
f749 = 0.3598950365349881 * f747;
f750 = 1.2928878353697271 * f659;
f751 = f748 + f749;
f752 = f750 - f749;
f753 = f665 + f663;
f754 = 0.6970633083205415 * f665;
f755 = 0.2667127574748984 * f753;
f756 = 1.2304888232703382 * f663;
f757 = f754 + f755;
f758 = f756 - f755;
f759 = f669 + f667;
f760 = 0.8143157536286401 * f669;
f761 = 0.1709618887603012 * f759;
f762 = 1.1562395311492424 * f667;
f763 = f760 + f761;
f764 = f762 - f761;
f765 = f673 + f671;
f766 = 0.9237258930790228 * f673;
f767 = 0.0735645635996674 * f765;
f768 = 1.0708550202783576 * f671;
f769 = f766 + f767;
f770 = f768 - f767;
t0[0] = f127 + f679;
t0[1] = f679 + f340;
t0[2] = f340 + f770;
t0[3] = f770 + f191;
t0[4] = f191 + f685;
t0[5] = f685 + f348;
t0[6] = f348 + f764;
t0[7] = f764 + f147;
t0[8] = f147 + f691;
t0[9] = f691 + f352;
t0[10] = f352 + f758;
t0[11] = f758 + f197;
t0[12] = f197 + f697;
t0[13] = f697 + f344;
t0[14] = f344 + f752;
t0[15] = f752 + f134;
t0[16] = f134 + f703;
t0[17] = f703 + f362;
t0[18] = f362 + f746;
t0[19] = f746 + f203;
t0[20] = f203 + f709;
t0[21] = f709 + f370;
t0[22] = f370 + f740;
t0[23] = f740 + f154;
t0[24] = f154 + f715;
t0[25] = f715 + f366;
t0[26] = f366 + f734;
t0[27] = f734 + f209;
t0[28] = f209 + f721;
t0[29] = f721 + f358;
t0[30] = f358 + f728;
t0[31] = f728 + f128;
t0[32] = f128 + f727;
t0[33] = f727 + f357;
t0[34] = f357 + f722;
t0[35] = f722 + f210;
t0[36] = f210 + f733;
t0[37] = f733 + f365;
t0[38] = f365 + f716;
t0[39] = f716 + f153;
t0[40] = f153 + f739;
t0[41] = f739 + f369;
t0[42] = f369 + f710;
t0[43] = f710 + f204;
t0[44] = f204 + f745;
t0[45] = f745 + f361;
t0[46] = f361 + f704;
t0[47] = f704 + f133;
t0[48] = f133 + f751;
t0[49] = f751 + f346;
t0[50] = f346 + f698;
t0[51] = f698 + f198;
t0[52] = f198 + f757;
t0[53] = f757 + f354;
t0[54] = f354 + f692;
t0[55] = f692 + f148;
t0[56] = f148 + f763;
t0[57] = f763 + f350;
t0[58] = f350 + f686;
t0[59] = f686 + f192;
t0[60] = f192 + f769;
t0[61] = f769 + f342;
t0[62] = f342 + t0[63];
for (i0=0; i0<64; i0++)
{
y[i0] = t0[-i0+63];
}
}
#endif
#endif