Mercurial > mplayer.hg
diff libfaad2/sbr_dct.c @ 10725:e989150f8216
libfaad2 v2.0rc1 imported
author | arpi |
---|---|
date | Sat, 30 Aug 2003 22:30:28 +0000 |
parents | |
children | 3185f64f6350 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libfaad2/sbr_dct.c Sat Aug 30 22:30:28 2003 +0000 @@ -0,0 +1,4274 @@ +/* +** 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 +