ref: c0ae72652fc9619e8b1e8f365ab977614179779a
dir: /libfaad/sbr_dct.c/
/* ** 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 [email protected]. ** ** $Id: sbr_dct.c,v 1.8 2003/11/12 20:47:58 menno Exp $ **/ #include "common.h" #ifdef SBR_DEC #ifdef _MSC_VER #pragma warning(disable:4305) #pragma warning(disable:4244) #endif #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(COEF_CONST(0.7071067811865476), x[16]); f1 = x[0] - f0; f2 = x[0] + f0; f3 = x[8] + x[24]; f4 = MUL_C(COEF_CONST(1.3065629648763766), x[8]); f5 = MUL_C(COEF_CONST((-0.9238795325112866)), f3); f6 = MUL_C(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(COEF_CONST(1.1758756024193588), x[4]); f15 = MUL_C(COEF_CONST((-0.9807852804032304)), f13); f16 = MUL_C(COEF_CONST((-0.7856949583871021)), x[28]); f17 = f14 + f15; f18 = f16 - f15; f19 = x[12] + x[20]; f20 = MUL_C(COEF_CONST(1.3870398453221473), x[12]); f21 = MUL_C(COEF_CONST((-0.8314696123025455)), f19); f22 = MUL_C(COEF_CONST((-0.2758993792829436)), x[20]); f23 = f20 + f21; f24 = f22 - f21; f25 = f18 - f24; f26 = f18 + f24; f27 = MUL_C(COEF_CONST(0.7071067811865476), f25); f28 = f17 - f23; f29 = f17 + f23; f30 = MUL_C(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(COEF_CONST(1.0932018670017569), x[2]); f43 = MUL_C(COEF_CONST((-0.9951847266721969)), f41); f44 = MUL_C(COEF_CONST((-0.8971675863426368)), x[30]); f45 = f42 + f43; f46 = f44 - f43; f47 = x[6] + x[26]; f48 = MUL_C(COEF_CONST(1.2472250129866711), x[6]); f49 = MUL_C(COEF_CONST((-0.9569403357322089)), f47); f50 = MUL_C(COEF_CONST((-0.6666556584777469)), x[26]); f51 = f48 + f49; f52 = f50 - f49; f53 = x[10] + x[22]; f54 = MUL_C(COEF_CONST(1.3533180011743526), x[10]); f55 = MUL_C(COEF_CONST((-0.8819212643483551)), f53); f56 = MUL_C(COEF_CONST((-0.4105245275223575)), x[22]); f57 = f54 + f55; f58 = f56 - f55; f59 = x[14] + x[18]; f60 = MUL_C(COEF_CONST(1.4074037375263826), x[14]); f61 = MUL_C(COEF_CONST((-0.7730104533627369)), f59); f62 = MUL_C(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(COEF_CONST(0.7071067811865476), f69); f72 = f65 + f67; f73 = MUL_C(COEF_CONST(1.3065629648763766), f65); f74 = MUL_C(COEF_CONST((-0.9238795325112866)), f72); f75 = MUL_C(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(COEF_CONST(1.3065629648763770), f79); f84 = MUL_C(COEF_CONST((-0.3826834323650904)), f82); f85 = MUL_C(COEF_CONST(0.5411961001461961), f81); f86 = f83 + f84; f87 = f85 - f84; f88 = f78 - f80; f89 = f78 + f80; f90 = MUL_C(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(COEF_CONST(1.0478631305325901), x[1]); f115 = MUL_C(COEF_CONST((-0.9987954562051724)), f113); f116 = MUL_C(COEF_CONST((-0.9497277818777548)), x[31]); f117 = f114 + f115; f118 = f116 - f115; f119 = x[5] + x[27]; f120 = MUL_C(COEF_CONST(1.2130114330978077), x[5]); f121 = MUL_C(COEF_CONST((-0.9700312531945440)), f119); f122 = MUL_C(COEF_CONST((-0.7270510732912803)), x[27]); f123 = f120 + f121; f124 = f122 - f121; f125 = x[9] + x[23]; f126 = MUL_C(COEF_CONST(1.3315443865537255), x[9]); f127 = MUL_C(COEF_CONST((-0.9039892931234433)), f125); f128 = MUL_C(COEF_CONST((-0.4764341996931612)), x[23]); f129 = f126 + f127; f130 = f128 - f127; f131 = x[13] + x[19]; f132 = MUL_C(COEF_CONST(1.3989068359730781), x[13]); f133 = MUL_C(COEF_CONST((-0.8032075314806453)), f131); f134 = MUL_C(COEF_CONST((-0.2075082269882124)), x[19]); f135 = f132 + f133; f136 = f134 - f133; f137 = x[17] + x[15]; f138 = MUL_C(COEF_CONST(1.4125100802019777), x[17]); f139 = MUL_C(COEF_CONST((-0.6715589548470187)), f137); f140 = MUL_C(COEF_CONST(0.0693921705079402), x[15]); f141 = f138 + f139; f142 = f140 - f139; f143 = x[21] + x[11]; f144 = MUL_C(COEF_CONST(1.3718313541934939), x[21]); f145 = MUL_C(COEF_CONST((-0.5141027441932219)), f143); f146 = MUL_C(COEF_CONST(0.3436258658070501), x[11]); f147 = f144 + f145; f148 = f146 - f145; f149 = x[25] + x[7]; f150 = MUL_C(COEF_CONST(1.2784339185752409), x[25]); f151 = MUL_C(COEF_CONST((-0.3368898533922200)), f149); f152 = MUL_C(COEF_CONST(0.6046542117908008), x[7]); f153 = f150 + f151; f154 = f152 - f151; f155 = x[29] + x[3]; f156 = MUL_C(COEF_CONST(1.1359069844201433), x[29]); f157 = MUL_C(COEF_CONST((-0.1467304744553624)), f155); f158 = MUL_C(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(COEF_CONST(1.1758756024193588), f161); f179 = MUL_C(COEF_CONST((-0.9807852804032304)), f177); f180 = MUL_C(COEF_CONST((-0.7856949583871021)), f163); f181 = f178 + f179; f182 = f180 - f179; f183 = f165 + f167; f184 = MUL_C(COEF_CONST(1.3870398453221475), f165); f185 = MUL_C(COEF_CONST((-0.5555702330196022)), f183); f186 = MUL_C(COEF_CONST(0.2758993792829431), f167); f187 = f184 + f185; f188 = f186 - f185; f189 = f169 + f171; f190 = MUL_C(COEF_CONST(0.7856949583871022), f169); f191 = MUL_C(COEF_CONST(0.1950903220161283), f189); f192 = MUL_C(COEF_CONST(1.1758756024193586), f171); f193 = f190 + f191; f194 = f192 - f191; f195 = f173 + f175; f196 = MUL_C(COEF_CONST((-0.2758993792829430)), f173); f197 = MUL_C(COEF_CONST(0.8314696123025452), f195); f198 = MUL_C(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(COEF_CONST(1.3065629648763766), f201); f219 = MUL_C(COEF_CONST((-0.9238795325112866)), f217); f220 = MUL_C(COEF_CONST((-0.5411961001461967)), f203); f221 = f218 + f219; f222 = f220 - f219; f223 = f205 + f207; f224 = MUL_C(COEF_CONST(0.5411961001461969), f205); f225 = MUL_C(COEF_CONST(0.3826834323650898), f223); f226 = MUL_C(COEF_CONST(1.3065629648763766), f207); f227 = f224 + f225; f228 = f226 - f225; f229 = f209 + f211; f230 = MUL_C(COEF_CONST(1.3065629648763766), f209); f231 = MUL_C(COEF_CONST((-0.9238795325112866)), f229); f232 = MUL_C(COEF_CONST((-0.5411961001461967)), f211); f233 = f230 + f231; f234 = f232 - f231; f235 = f213 + f215; f236 = MUL_C(COEF_CONST(0.5411961001461969), f213); f237 = MUL_C(COEF_CONST(0.3826834323650898), f235); f238 = MUL_C(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(COEF_CONST(0.7071067811865474), f257); f260 = MUL_C(COEF_CONST(0.7071067811865474), f258); f261 = f245 - f247; f262 = f245 + f247; f263 = MUL_C(COEF_CONST(0.7071067811865474), f261); f264 = MUL_C(COEF_CONST(0.7071067811865474), f262); f265 = f249 - f251; f266 = f249 + f251; f267 = MUL_C(COEF_CONST(0.7071067811865474), f265); f268 = MUL_C(COEF_CONST(0.7071067811865474), f266); f269 = f253 - f255; f270 = f253 + f255; f271 = MUL_C(COEF_CONST(0.7071067811865474), f269); f272 = MUL_C(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(COEF_CONST(0.7071067811865476), f62); f65 = f58 + f60; f66 = MUL_C(COEF_CONST(1.3065629648763766), f58); f67 = MUL_C(COEF_CONST((-0.9238795325112866)), f65); f68 = MUL_C(COEF_CONST((-0.5411961001461967)), f60); y[48] = f66 + f67; y[16] = f68 - f67; f71 = f52 - f54; f72 = f52 + f54; f73 = MUL_C(COEF_CONST(0.7071067811865476), f72); f74 = MUL_C(COEF_CONST(0.7071067811865476), f71); f75 = f50 - f73; f76 = f50 + f73; f77 = f56 - f74; f78 = f56 + f74; f79 = f78 + f76; f80 = MUL_C(COEF_CONST((-0.7856949583871021)), f78); f81 = MUL_C(COEF_CONST(0.9807852804032304), f79); f82 = MUL_C(COEF_CONST(1.1758756024193588), f76); y[8] = f80 + f81; y[56] = f82 - f81; f85 = f77 + f75; f86 = MUL_C(COEF_CONST(0.2758993792829431), f77); f87 = MUL_C(COEF_CONST(0.5555702330196022), f85); f88 = MUL_C(COEF_CONST(1.3870398453221475), f75); y[40] = f86 + f87; y[24] = f88 - f87; f91 = f40 - f42; f92 = f40 + f42; f93 = MUL_C(COEF_CONST(0.7071067811865476), f92); f94 = MUL_C(COEF_CONST(0.7071067811865476), f91); f95 = f38 - f44; f96 = f38 + f44; f97 = MUL_C(COEF_CONST(0.7071067811865476), f96); f98 = MUL_C(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(COEF_CONST((-0.5411961001461969)), f106); f109 = MUL_C(COEF_CONST(0.9238795325112867), f107); f110 = MUL_C(COEF_CONST(1.3065629648763766), f104); f111 = f108 + f109; f112 = f110 - f109; f113 = f105 + f103; f114 = MUL_C(COEF_CONST(1.3065629648763770), f105); f115 = MUL_C(COEF_CONST((-0.3826834323650904)), f113); f116 = MUL_C(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(COEF_CONST((-0.8971675863426361)), f122); f129 = MUL_C(COEF_CONST(0.9951847266721968), f127); f130 = MUL_C(COEF_CONST(1.0932018670017576), f120); y[4] = f128 + f129; y[60] = f130 - f129; f133 = f126 + f124; f134 = MUL_C(COEF_CONST((-0.4105245275223571)), f126); f135 = MUL_C(COEF_CONST(0.8819212643483549), f133); f136 = MUL_C(COEF_CONST(1.3533180011743529), f124); y[20] = f134 + f135; y[44] = f136 - f135; f139 = f121 + f119; f140 = MUL_C(COEF_CONST(0.1386171691990915), f121); f141 = MUL_C(COEF_CONST(0.6343932841636455), f139); f142 = MUL_C(COEF_CONST(1.4074037375263826), f119); y[36] = f140 + f141; y[28] = f142 - f141; f145 = f125 + f123; f146 = MUL_C(COEF_CONST(0.6666556584777466), f125); f147 = MUL_C(COEF_CONST(0.2902846772544623), f145); f148 = MUL_C(COEF_CONST(1.2472250129866711), f123); y[52] = f146 + f147; y[12] = f148 - f147; f151 = f2 + f32; f152 = MUL_C(COEF_CONST(1.0478631305325901), f2); f153 = MUL_C(COEF_CONST((-0.9987954562051724)), f151); f154 = MUL_C(COEF_CONST((-0.9497277818777548)), f32); f155 = f152 + f153; f156 = f154 - f153; f157 = f4 + f30; f158 = MUL_C(COEF_CONST(1.1359069844201428), f4); f159 = MUL_C(COEF_CONST((-0.9891765099647809)), f157); f160 = MUL_C(COEF_CONST((-0.8424460355094190)), f30); f161 = f158 + f159; f162 = f160 - f159; f163 = f6 + f28; f164 = MUL_C(COEF_CONST(1.2130114330978077), f6); f165 = MUL_C(COEF_CONST((-0.9700312531945440)), f163); f166 = MUL_C(COEF_CONST((-0.7270510732912803)), f28); f167 = f164 + f165; f168 = f166 - f165; f169 = f8 + f26; f170 = MUL_C(COEF_CONST(1.2784339185752405), f8); f171 = MUL_C(COEF_CONST((-0.9415440651830209)), f169); f172 = MUL_C(COEF_CONST((-0.6046542117908014)), f26); f173 = f170 + f171; f174 = f172 - f171; f175 = f10 + f24; f176 = MUL_C(COEF_CONST(1.3315443865537255), f10); f177 = MUL_C(COEF_CONST((-0.9039892931234433)), f175); f178 = MUL_C(COEF_CONST((-0.4764341996931612)), f24); f179 = f176 + f177; f180 = f178 - f177; f181 = f12 + f22; f182 = MUL_C(COEF_CONST(1.3718313541934939), f12); f183 = MUL_C(COEF_CONST((-0.8577286100002722)), f181); f184 = MUL_C(COEF_CONST((-0.3436258658070507)), f22); f185 = f182 + f183; f186 = f184 - f183; f187 = f14 + f20; f188 = MUL_C(COEF_CONST(1.3989068359730781), f14); f189 = MUL_C(COEF_CONST((-0.8032075314806453)), f187); f190 = MUL_C(COEF_CONST((-0.2075082269882124)), f20); f191 = f188 + f189; f192 = f190 - f189; f193 = f16 + f18; f194 = MUL_C(COEF_CONST(1.4125100802019774), f16); f195 = MUL_C(COEF_CONST((-0.7409511253549591)), f193); f196 = MUL_C(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(COEF_CONST(0.7071067811865476), f211); f214 = f207 + f209; f215 = MUL_C(COEF_CONST(1.3065629648763766), f207); f216 = MUL_C(COEF_CONST((-0.9238795325112866)), f214); f217 = MUL_C(COEF_CONST((-0.5411961001461967)), f209); f218 = f215 + f216; f219 = f217 - f216; f220 = f201 - f203; f221 = f201 + f203; f222 = MUL_C(COEF_CONST(0.7071067811865476), f221); f223 = MUL_C(COEF_CONST(0.7071067811865476), f220); f224 = f199 - f222; f225 = f199 + f222; f226 = f205 - f223; f227 = f205 + f223; f228 = f227 + f225; f229 = MUL_C(COEF_CONST((-0.7856949583871021)), f227); f230 = MUL_C(COEF_CONST(0.9807852804032304), f228); f231 = MUL_C(COEF_CONST(1.1758756024193588), f225); f232 = f229 + f230; f233 = f231 - f230; f234 = f226 + f224; f235 = MUL_C(COEF_CONST(0.2758993792829431), f226); f236 = MUL_C(COEF_CONST(0.5555702330196022), f234); f237 = MUL_C(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(COEF_CONST(0.7071067811865476), f249); f251 = f247 - f250; f252 = f247 + f250; f253 = MUL_C(COEF_CONST(0.7071067811865476), f248); f254 = f253 - f241; f255 = f253 + f241; f256 = f255 + f252; f257 = MUL_C(COEF_CONST((-0.7856949583871021)), f255); f258 = MUL_C(COEF_CONST(0.9807852804032304), f256); f259 = MUL_C(COEF_CONST(1.1758756024193588), f252); f260 = f257 + f258; f261 = f259 - f258; f262 = f254 + f251; f263 = MUL_C(COEF_CONST((-0.2758993792829430)), f254); f264 = MUL_C(COEF_CONST(0.8314696123025452), f262); f265 = MUL_C(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(COEF_CONST(1.3065629648763770), f269); f274 = MUL_C(COEF_CONST((-0.3826834323650904)), f272); f275 = MUL_C(COEF_CONST(0.5411961001461961), f271); f276 = f273 + f274; f277 = f275 - f274; y[62] = f268 - f270; f279 = f268 + f270; f280 = MUL_C(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(COEF_CONST(0.7071067811865476), f310); f326 = t2[1] - f325; f327 = t2[1] + f325; f328 = f302 + f318; f329 = MUL_C(COEF_CONST(1.3065629648763766), f302); f330 = MUL_C(COEF_CONST((-0.9238795325112866)), f328); f331 = MUL_C(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(COEF_CONST(0.7071067811865476), f339); f341 = f298 - f340; f342 = f298 + f340; f343 = MUL_C(COEF_CONST(0.7071067811865476), f338); f344 = f343 - f322; f345 = f343 + f322; f346 = f345 + f342; f347 = MUL_C(COEF_CONST((-0.7856949583871021)), f345); f348 = MUL_C(COEF_CONST(0.9807852804032304), f346); f349 = MUL_C(COEF_CONST(1.1758756024193588), f342); f350 = f347 + f348; f351 = f349 - f348; f352 = f344 + f341; f353 = MUL_C(COEF_CONST((-0.2758993792829430)), f344); f354 = MUL_C(COEF_CONST(0.8314696123025452), f352); f355 = MUL_C(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(COEF_CONST(5.1011486186891641), f296); f367 = MUL_C(COEF_CONST(1.7224470982383342), f300); f368 = MUL_C(COEF_CONST(1.0606776859903475), f304); f369 = MUL_C(COEF_CONST(0.7881546234512502), f308); f370 = MUL_C(COEF_CONST(0.5024192861881557), f324); f371 = MUL_C(COEF_CONST(0.5224986149396889), f320); f372 = MUL_C(COEF_CONST(0.5669440348163577), f316); f373 = MUL_C(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(COEF_CONST(0.5097955791041592), f375); f383 = MUL_C(COEF_CONST(0.6013448869350453), f377); f384 = MUL_C(COEF_CONST(0.8999762231364156), f379); f385 = MUL_C(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(COEF_CONST(0.7071067811865476), f390); f393 = f386 - f388; f394 = MUL_C(COEF_CONST(1.3065629648763766), f386); f395 = MUL_C(COEF_CONST((-0.9238795325112866)), f393); f396 = MUL_C(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(COEF_CONST(1.3065629648763770), f403); f408 = MUL_C(COEF_CONST((-0.3826834323650904)), f406); f409 = MUL_C(COEF_CONST(0.5411961001461961), f405); f410 = f407 + f408; f411 = f408 - f409; f412 = f402 - f404; f413 = f402 + f404; f414 = MUL_C(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(COEF_CONST(5.1011486186891641), f295); f439 = MUL_C(COEF_CONST(1.7224470982383342), f299); f440 = MUL_C(COEF_CONST(1.0606776859903475), f303); f441 = MUL_C(COEF_CONST(0.7881546234512502), f307); f442 = MUL_C(COEF_CONST(0.5024192861881557), f323); f443 = MUL_C(COEF_CONST(0.5224986149396889), f319); f444 = MUL_C(COEF_CONST(0.5669440348163577), f315); f445 = MUL_C(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(COEF_CONST(0.5097955791041592), f447); f455 = MUL_C(COEF_CONST(0.6013448869350453), f449); f456 = MUL_C(COEF_CONST(0.8999762231364156), f451); f457 = MUL_C(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(COEF_CONST(0.7071067811865476), f462); f465 = f458 - f460; f466 = MUL_C(COEF_CONST(1.3065629648763766), f458); f467 = MUL_C(COEF_CONST((-0.9238795325112866)), f465); f468 = MUL_C(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(COEF_CONST(1.3065629648763770), f475); f480 = MUL_C(COEF_CONST((-0.3826834323650904)), f478); f481 = MUL_C(COEF_CONST(0.5411961001461961), f477); f482 = f479 + f480; f483 = f481 - f480; f484 = f474 + f476; f485 = f476 - f474; f486 = MUL_C(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(COEF_CONST(0.7071067811865476), f309); f495 = t2[63] - f494; f496 = t2[63] + f494; f497 = f317 + f301; f498 = MUL_C(COEF_CONST(1.3065629648763766), f317); f499 = MUL_C(COEF_CONST((-0.9238795325112866)), f497); f500 = MUL_C(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(COEF_CONST(0.5097955791041592), f321); f508 = MUL_C(COEF_CONST(0.6013448869350453), f313); f509 = MUL_C(COEF_CONST(0.8999762231364156), f305); f510 = MUL_C(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(COEF_CONST(0.7071067811865476), f515); f518 = f511 + f513; f519 = MUL_C(COEF_CONST(1.3065629648763766), f511); f520 = MUL_C(COEF_CONST((-0.9238795325112866)), f518); f521 = MUL_C(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(COEF_CONST((-0.9751575901732920)), f536); f553 = MUL_C(COEF_CONST(0.9996988186962043), f551); f554 = MUL_C(COEF_CONST(1.0242400472191164), f423); y[1] = f552 + f553; y[63] = f554 - f553; f557 = f538 + f425; f558 = MUL_C(COEF_CONST((-0.9237258930790228)), f538); f559 = MUL_C(COEF_CONST(0.9972904566786902), f557); f560 = MUL_C(COEF_CONST(1.0708550202783576), f425); y[3] = f558 + f559; y[61] = f560 - f559; f563 = f540 + f427; f564 = MUL_C(COEF_CONST((-0.8700688593994936)), f540); f565 = MUL_C(COEF_CONST(0.9924795345987100), f563); f566 = MUL_C(COEF_CONST(1.1148902097979263), f427); y[5] = f564 + f565; y[59] = f566 - f565; f569 = f542 + f429; f570 = MUL_C(COEF_CONST((-0.8143157536286398)), f542); f571 = MUL_C(COEF_CONST(0.9852776423889412), f569); f572 = MUL_C(COEF_CONST(1.1562395311492426), f429); y[7] = f570 + f571; y[57] = f572 - f571; f575 = f544 + f431; f576 = MUL_C(COEF_CONST((-0.7566008898816587)), f544); f577 = MUL_C(COEF_CONST(0.9757021300385286), f575); f578 = MUL_C(COEF_CONST(1.1948033701953984), f431); y[9] = f576 + f577; y[55] = f578 - f577; f581 = f546 + f433; f582 = MUL_C(COEF_CONST((-0.6970633083205414)), f546); f583 = MUL_C(COEF_CONST(0.9637760657954398), f581); f584 = MUL_C(COEF_CONST(1.2304888232703384), f433); y[11] = f582 + f583; y[53] = f584 - f583; f587 = f548 + f435; f588 = MUL_C(COEF_CONST((-0.6358464401941451)), f548); f589 = MUL_C(COEF_CONST(0.9495281805930367), f587); f590 = MUL_C(COEF_CONST(1.2632099209919283), f435); y[13] = f588 + f589; y[51] = f590 - f589; f593 = f550 + f437; f594 = MUL_C(COEF_CONST((-0.5730977622997506)), f550); f595 = MUL_C(COEF_CONST(0.9329927988347389), f593); f596 = MUL_C(COEF_CONST(1.2928878353697271), f437); y[15] = f594 + f595; y[49] = f596 - f595; f599 = f549 + f436; f600 = MUL_C(COEF_CONST((-0.5089684416985408)), f549); f601 = MUL_C(COEF_CONST(0.9142097557035307), f599); f602 = MUL_C(COEF_CONST(1.3194510697085207), f436); y[17] = f600 + f601; y[47] = f602 - f601; f605 = f434 - f547; f606 = MUL_C(COEF_CONST((-0.4436129715409087)), f547); f607 = MUL_C(COEF_CONST(0.8932243011955153), f605); f608 = MUL_C(COEF_CONST(1.3428356308501219), f434); y[19] = f607 - f606; y[45] = f608 - f607; f611 = f545 + f432; f612 = MUL_C(COEF_CONST((-0.3771887988789273)), f545); f613 = MUL_C(COEF_CONST(0.8700869911087114), f611); f614 = MUL_C(COEF_CONST(1.3629851833384954), f432); y[21] = f612 + f613; y[43] = f614 - f613; f617 = f430 - f543; f618 = MUL_C(COEF_CONST((-0.3098559453626097)), f543); f619 = MUL_C(COEF_CONST(0.8448535652497070), f617); f620 = MUL_C(COEF_CONST(1.3798511851368043), f430); y[23] = f619 - f618; y[41] = f620 - f619; f623 = f541 + f428; f624 = MUL_C(COEF_CONST((-0.2417766217337384)), f541); f625 = MUL_C(COEF_CONST(0.8175848131515837), f623); f626 = MUL_C(COEF_CONST(1.3933930045694289), f428); y[25] = f624 + f625; y[39] = f626 - f625; f629 = f426 - f539; f630 = MUL_C(COEF_CONST((-0.1731148370459794)), f539); f631 = MUL_C(COEF_CONST(0.7883464276266062), f629); f632 = MUL_C(COEF_CONST(1.4035780182072330), f426); y[27] = f631 - f630; y[37] = f632 - f631; f635 = f537 + f424; f636 = MUL_C(COEF_CONST((-0.1040360035527077)), f537); f637 = MUL_C(COEF_CONST(0.7572088465064845), f635); f638 = MUL_C(COEF_CONST(1.4103816894602612), f424); y[29] = f636 + f637; y[35] = f638 - f637; f641 = f422 - f535; f642 = MUL_C(COEF_CONST((-0.0347065382144000)), f535); f643 = MUL_C(COEF_CONST(0.7242470829514669), f641); f644 = MUL_C(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; 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]; DCT4_64_kernel(y, t2); } void DCT4_64_kernel(real_t *y, real_t *t2) { 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; f2 = 0.7071067811865476 * t2[32]; f3 = t2[0] - f2; f4 = t2[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 = t2[63] - f467; f469 = t2[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; } #endif #endif