ref: f039a4fbb81a76f531df2a7b3bf405a89072bf5e
dir: /libfaad/sbr_dct.c/
/* ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding ** Copyright (C) 2003-2004 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.12 2004/03/10 19:45:41 menno Exp $ **/ #include "common.h" #ifdef SBR_DEC #ifdef _MSC_VER #pragma warning(disable:4305) #pragma warning(disable:4244) #endif #include "sbr_dct.h" void DCT4_32(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, f273, f274, f275, f276, f277, f278, f279, f280; real_t f281, f282, f283, f284, f285, f286, f287, f288, f289, f290; real_t f291, f292, f293, f294, f295, f296, f297, f298, f299, f300; real_t f301, f302, f303, f304, f305, f306, f307, f310, f311, f312; real_t f313, f316, f317, f318, f319, f322, f323, f324, f325, f328; real_t f329, f330, f331, f334, f335, f336, f337, f340, f341, f342; real_t f343, f346, f347, f348, f349, f352, f353, f354, f355, f358; real_t f359, f360, f361, f364, f365, f366, f367, f370, f371, f372; real_t f373, f376, f377, f378, f379, f382, f383, f384, f385, f388; real_t f389, f390, f391, f394, f395, f396, f397; f0 = x[15] - x[16]; f1 = x[15] + x[16]; f2 = MUL_F(FRAC_CONST(0.7071067811865476), f1); f3 = MUL_F(FRAC_CONST(0.7071067811865476), f0); f4 = x[8] - x[23]; f5 = x[8] + x[23]; f6 = MUL_F(FRAC_CONST(0.7071067811865476), f5); f7 = MUL_F(FRAC_CONST(0.7071067811865476), f4); f8 = x[12] - x[19]; f9 = x[12] + x[19]; f10 = MUL_F(FRAC_CONST(0.7071067811865476), f9); f11 = MUL_F(FRAC_CONST(0.7071067811865476), f8); f12 = x[11] - x[20]; f13 = x[11] + x[20]; f14 = MUL_F(FRAC_CONST(0.7071067811865476), f13); f15 = MUL_F(FRAC_CONST(0.7071067811865476), f12); f16 = x[14] - x[17]; f17 = x[14] + x[17]; f18 = MUL_F(FRAC_CONST(0.7071067811865476), f17); f19 = MUL_F(FRAC_CONST(0.7071067811865476), f16); f20 = x[9] - x[22]; f21 = x[9] + x[22]; f22 = MUL_F(FRAC_CONST(0.7071067811865476), f21); f23 = MUL_F(FRAC_CONST(0.7071067811865476), f20); f24 = x[13] - x[18]; f25 = x[13] + x[18]; f26 = MUL_F(FRAC_CONST(0.7071067811865476), f25); f27 = MUL_F(FRAC_CONST(0.7071067811865476), f24); f28 = x[10] - x[21]; f29 = x[10] + x[21]; f30 = MUL_F(FRAC_CONST(0.7071067811865476), f29); f31 = MUL_F(FRAC_CONST(0.7071067811865476), f28); f32 = x[0] - f2; f33 = x[0] + f2; f34 = x[31] - f3; f35 = x[31] + f3; f36 = x[7] - f6; f37 = x[7] + f6; f38 = x[24] - f7; f39 = x[24] + f7; f40 = x[3] - f10; f41 = x[3] + f10; f42 = x[28] - f11; f43 = x[28] + f11; f44 = x[4] - f14; f45 = x[4] + f14; f46 = x[27] - f15; f47 = x[27] + f15; f48 = x[1] - f18; f49 = x[1] + f18; f50 = x[30] - f19; f51 = x[30] + f19; f52 = x[6] - f22; f53 = x[6] + f22; f54 = x[25] - f23; f55 = x[25] + f23; f56 = x[2] - f26; f57 = x[2] + f26; f58 = x[29] - f27; f59 = x[29] + f27; f60 = x[5] - f30; f61 = x[5] + f30; f62 = x[26] - f31; f63 = x[26] + f31; f64 = f39 + f37; f65 = MUL_F(FRAC_CONST(-0.5411961001461969), f39); f66 = MUL_F(FRAC_CONST(0.9238795325112867), f64); f67 = MUL_C(COEF_CONST(1.3065629648763766), f37); f68 = f65 + f66; f69 = f67 - f66; f70 = f38 + f36; f71 = MUL_C(COEF_CONST(1.3065629648763770), f38); f72 = MUL_F(FRAC_CONST(-0.3826834323650904), f70); f73 = MUL_F(FRAC_CONST(0.5411961001461961), f36); f74 = f71 + f72; f75 = f73 - f72; f76 = f47 + f45; f77 = MUL_F(FRAC_CONST(-0.5411961001461969), f47); f78 = MUL_F(FRAC_CONST(0.9238795325112867), f76); f79 = MUL_C(COEF_CONST(1.3065629648763766), f45); f80 = f77 + f78; f81 = f79 - f78; f82 = f46 + f44; f83 = MUL_C(COEF_CONST(1.3065629648763770), f46); f84 = MUL_F(FRAC_CONST(-0.3826834323650904), f82); f85 = MUL_F(FRAC_CONST(0.5411961001461961), f44); f86 = f83 + f84; f87 = f85 - f84; f88 = f55 + f53; f89 = MUL_F(FRAC_CONST(-0.5411961001461969), f55); f90 = MUL_F(FRAC_CONST(0.9238795325112867), f88); f91 = MUL_C(COEF_CONST(1.3065629648763766), f53); f92 = f89 + f90; f93 = f91 - f90; f94 = f54 + f52; f95 = MUL_C(COEF_CONST(1.3065629648763770), f54); f96 = MUL_F(FRAC_CONST(-0.3826834323650904), f94); f97 = MUL_F(FRAC_CONST(0.5411961001461961), f52); f98 = f95 + f96; f99 = f97 - f96; f100 = f63 + f61; f101 = MUL_F(FRAC_CONST(-0.5411961001461969), f63); f102 = MUL_F(FRAC_CONST(0.9238795325112867), f100); f103 = MUL_C(COEF_CONST(1.3065629648763766), f61); f104 = f101 + f102; f105 = f103 - f102; f106 = f62 + f60; f107 = MUL_C(COEF_CONST(1.3065629648763770), f62); f108 = MUL_F(FRAC_CONST(-0.3826834323650904), f106); f109 = MUL_F(FRAC_CONST(0.5411961001461961), f60); f110 = f107 + f108; f111 = f109 - f108; f112 = f33 - f68; f113 = f33 + f68; f114 = f35 - f69; f115 = f35 + f69; f116 = f32 - f74; f117 = f32 + f74; f118 = f34 - f75; f119 = f34 + f75; f120 = f41 - f80; f121 = f41 + f80; f122 = f43 - f81; f123 = f43 + f81; f124 = f40 - f86; f125 = f40 + f86; f126 = f42 - f87; f127 = f42 + f87; f128 = f49 - f92; f129 = f49 + f92; f130 = f51 - f93; f131 = f51 + f93; f132 = f48 - f98; f133 = f48 + f98; f134 = f50 - f99; f135 = f50 + f99; f136 = f57 - f104; f137 = f57 + f104; f138 = f59 - f105; f139 = f59 + f105; f140 = f56 - f110; f141 = f56 + f110; f142 = f58 - f111; f143 = f58 + f111; f144 = f123 + f121; f145 = MUL_F(FRAC_CONST(-0.7856949583871021), f123); f146 = MUL_F(FRAC_CONST(0.9807852804032304), f144); f147 = MUL_C(COEF_CONST(1.1758756024193588), f121); f148 = f145 + f146; f149 = f147 - f146; f150 = f127 + f125; f151 = MUL_F(FRAC_CONST(0.2758993792829431), f127); f152 = MUL_F(FRAC_CONST(0.5555702330196022), f150); f153 = MUL_C(COEF_CONST(1.3870398453221475), f125); f154 = f151 + f152; f155 = f153 - f152; f156 = f122 + f120; f157 = MUL_C(COEF_CONST(1.1758756024193591), f122); f158 = MUL_F(FRAC_CONST(-0.1950903220161287), f156); f159 = MUL_F(FRAC_CONST(0.7856949583871016), f120); f160 = f157 + f158; f161 = f159 - f158; f162 = f126 + f124; f163 = MUL_C(COEF_CONST(1.3870398453221473), f126); f164 = MUL_F(FRAC_CONST(-0.8314696123025455), f162); f165 = MUL_F(FRAC_CONST(-0.2758993792829436), f124); f166 = f163 + f164; f167 = f165 - f164; f168 = f139 + f137; f169 = MUL_F(FRAC_CONST(-0.7856949583871021), f139); f170 = MUL_F(FRAC_CONST(0.9807852804032304), f168); f171 = MUL_C(COEF_CONST(1.1758756024193588), f137); f172 = f169 + f170; f173 = f171 - f170; f174 = f143 + f141; f175 = MUL_F(FRAC_CONST(0.2758993792829431), f143); f176 = MUL_F(FRAC_CONST(0.5555702330196022), f174); f177 = MUL_C(COEF_CONST(1.3870398453221475), f141); f178 = f175 + f176; f179 = f177 - f176; f180 = f138 + f136; f181 = MUL_C(COEF_CONST(1.1758756024193591), f138); f182 = MUL_F(FRAC_CONST(-0.1950903220161287), f180); f183 = MUL_F(FRAC_CONST(0.7856949583871016), f136); f184 = f181 + f182; f185 = f183 - f182; f186 = f142 + f140; f187 = MUL_C(COEF_CONST(1.3870398453221473), f142); f188 = MUL_F(FRAC_CONST(-0.8314696123025455), f186); f189 = MUL_F(FRAC_CONST(-0.2758993792829436), f140); f190 = f187 + f188; f191 = f189 - f188; f192 = f113 - f148; f193 = f113 + f148; f194 = f115 - f149; f195 = f115 + f149; f196 = f117 - f154; f197 = f117 + f154; f198 = f119 - f155; f199 = f119 + f155; f200 = f112 - f160; f201 = f112 + f160; f202 = f114 - f161; f203 = f114 + f161; f204 = f116 - f166; f205 = f116 + f166; f206 = f118 - f167; f207 = f118 + f167; f208 = f129 - f172; f209 = f129 + f172; f210 = f131 - f173; f211 = f131 + f173; f212 = f133 - f178; f213 = f133 + f178; f214 = f135 - f179; f215 = f135 + f179; f216 = f128 - f184; f217 = f128 + f184; f218 = f130 - f185; f219 = f130 + f185; f220 = f132 - f190; f221 = f132 + f190; f222 = f134 - f191; f223 = f134 + f191; f224 = f211 + f209; f225 = MUL_F(FRAC_CONST(-0.8971675863426361), f211); f226 = MUL_F(FRAC_CONST(0.9951847266721968), f224); f227 = MUL_C(COEF_CONST(1.0932018670017576), f209); f228 = f225 + f226; f229 = f227 - f226; f230 = f215 + f213; f231 = MUL_F(FRAC_CONST(-0.4105245275223571), f215); f232 = MUL_F(FRAC_CONST(0.8819212643483549), f230); f233 = MUL_C(COEF_CONST(1.3533180011743529), f213); f234 = f231 + f232; f235 = f233 - f232; f236 = f219 + f217; f237 = MUL_F(FRAC_CONST(0.1386171691990915), f219); f238 = MUL_F(FRAC_CONST(0.6343932841636455), f236); f239 = MUL_C(COEF_CONST(1.4074037375263826), f217); f240 = f237 + f238; f241 = f239 - f238; f242 = f223 + f221; f243 = MUL_F(FRAC_CONST(0.6666556584777466), f223); f244 = MUL_F(FRAC_CONST(0.2902846772544623), f242); f245 = MUL_C(COEF_CONST(1.2472250129866711), f221); f246 = f243 + f244; f247 = f245 - f244; f248 = f210 + f208; f249 = MUL_C(COEF_CONST(1.0932018670017574), f210); f250 = MUL_F(FRAC_CONST(-0.0980171403295605), f248); f251 = MUL_F(FRAC_CONST(0.8971675863426364), f208); f252 = f249 + f250; f253 = f251 - f250; f254 = f214 + f212; f255 = MUL_C(COEF_CONST(1.3533180011743529), f214); f256 = MUL_F(FRAC_CONST(-0.4713967368259979), f254); f257 = MUL_F(FRAC_CONST(0.4105245275223569), f212); f258 = f255 + f256; f259 = f257 - f256; f260 = f218 + f216; f261 = MUL_C(COEF_CONST(1.4074037375263826), f218); f262 = MUL_F(FRAC_CONST(-0.7730104533627369), f260); f263 = MUL_F(FRAC_CONST(-0.1386171691990913), f216); f264 = f261 + f262; f265 = f263 - f262; f266 = f222 + f220; f267 = MUL_C(COEF_CONST(1.2472250129866711), f222); f268 = MUL_F(FRAC_CONST(-0.9569403357322089), f266); f269 = MUL_F(FRAC_CONST(-0.6666556584777469), f220); f270 = f267 + f268; f271 = f269 - f268; f272 = f193 - f228; f273 = f193 + f228; f274 = f195 - f229; f275 = f195 + f229; f276 = f197 - f234; f277 = f197 + f234; f278 = f199 - f235; f279 = f199 + f235; f280 = f201 - f240; f281 = f201 + f240; f282 = f203 - f241; f283 = f203 + f241; f284 = f205 - f246; f285 = f205 + f246; f286 = f207 - f247; f287 = f207 + f247; f288 = f192 - f252; f289 = f192 + f252; f290 = f194 - f253; f291 = f194 + f253; f292 = f196 - f258; f293 = f196 + f258; f294 = f198 - f259; f295 = f198 + f259; f296 = f200 - f264; f297 = f200 + f264; f298 = f202 - f265; f299 = f202 + f265; f300 = f204 - f270; f301 = f204 + f270; f302 = f206 - f271; f303 = f206 + f271; f304 = f275 + f273; f305 = MUL_F(FRAC_CONST(-0.9751575901732920), f275); f306 = MUL_F(FRAC_CONST(0.9996988186962043), f304); f307 = MUL_C(COEF_CONST(1.0242400472191164), f273); y[0] = f305 + f306; y[31] = f307 - f306; f310 = f279 + f277; f311 = MUL_F(FRAC_CONST(-0.8700688593994936), f279); f312 = MUL_F(FRAC_CONST(0.9924795345987100), f310); f313 = MUL_C(COEF_CONST(1.1148902097979263), f277); y[2] = f311 + f312; y[29] = f313 - f312; f316 = f283 + f281; f317 = MUL_F(FRAC_CONST(-0.7566008898816587), f283); f318 = MUL_F(FRAC_CONST(0.9757021300385286), f316); f319 = MUL_C(COEF_CONST(1.1948033701953984), f281); y[4] = f317 + f318; y[27] = f319 - f318; f322 = f287 + f285; f323 = MUL_F(FRAC_CONST(-0.6358464401941451), f287); f324 = MUL_F(FRAC_CONST(0.9495281805930367), f322); f325 = MUL_C(COEF_CONST(1.2632099209919283), f285); y[6] = f323 + f324; y[25] = f325 - f324; f328 = f291 + f289; f329 = MUL_F(FRAC_CONST(-0.5089684416985408), f291); f330 = MUL_F(FRAC_CONST(0.9142097557035307), f328); f331 = MUL_C(COEF_CONST(1.3194510697085207), f289); y[8] = f329 + f330; y[23] = f331 - f330; f334 = f295 + f293; f335 = MUL_F(FRAC_CONST(-0.3771887988789273), f295); f336 = MUL_F(FRAC_CONST(0.8700869911087114), f334); f337 = MUL_C(COEF_CONST(1.3629851833384954), f293); y[10] = f335 + f336; y[21] = f337 - f336; f340 = f299 + f297; f341 = MUL_F(FRAC_CONST(-0.2417766217337384), f299); f342 = MUL_F(FRAC_CONST(0.8175848131515837), f340); f343 = MUL_C(COEF_CONST(1.3933930045694289), f297); y[12] = f341 + f342; y[19] = f343 - f342; f346 = f303 + f301; f347 = MUL_F(FRAC_CONST(-0.1040360035527077), f303); f348 = MUL_F(FRAC_CONST(0.7572088465064845), f346); f349 = MUL_C(COEF_CONST(1.4103816894602612), f301); y[14] = f347 + f348; y[17] = f349 - f348; f352 = f274 + f272; f353 = MUL_F(FRAC_CONST(0.0347065382144002), f274); f354 = MUL_F(FRAC_CONST(0.6895405447370668), f352); f355 = MUL_C(COEF_CONST(1.4137876276885337), f272); y[16] = f353 + f354; y[15] = f355 - f354; f358 = f278 + f276; f359 = MUL_F(FRAC_CONST(0.1731148370459795), f278); f360 = MUL_F(FRAC_CONST(0.6152315905806268), f358); f361 = MUL_C(COEF_CONST(1.4035780182072330), f276); y[18] = f359 + f360; y[13] = f361 - f360; f364 = f282 + f280; f365 = MUL_F(FRAC_CONST(0.3098559453626100), f282); f366 = MUL_F(FRAC_CONST(0.5349976198870972), f364); f367 = MUL_C(COEF_CONST(1.3798511851368043), f280); y[20] = f365 + f366; y[11] = f367 - f366; f370 = f286 + f284; f371 = MUL_F(FRAC_CONST(0.4436129715409088), f286); f372 = MUL_F(FRAC_CONST(0.4496113296546065), f370); f373 = MUL_C(COEF_CONST(1.3428356308501219), f284); y[22] = f371 + f372; y[9] = f373 - f372; f376 = f290 + f288; f377 = MUL_F(FRAC_CONST(0.5730977622997509), f290); f378 = MUL_F(FRAC_CONST(0.3598950365349881), f376); f379 = MUL_C(COEF_CONST(1.2928878353697271), f288); y[24] = f377 + f378; y[7] = f379 - f378; f382 = f294 + f292; f383 = MUL_F(FRAC_CONST(0.6970633083205415), f294); f384 = MUL_F(FRAC_CONST(0.2667127574748984), f382); f385 = MUL_C(COEF_CONST(1.2304888232703382), f292); y[26] = f383 + f384; y[5] = f385 - f384; f388 = f298 + f296; f389 = MUL_F(FRAC_CONST(0.8143157536286401), f298); f390 = MUL_F(FRAC_CONST(0.1709618887603012), f388); f391 = MUL_C(COEF_CONST(1.1562395311492424), f296); y[28] = f389 + f390; y[3] = f391 - f390; f394 = f302 + f300; f395 = MUL_F(FRAC_CONST(0.9237258930790228), f302); f396 = MUL_F(FRAC_CONST(0.0735645635996674), f394); f397 = MUL_C(COEF_CONST(1.0708550202783576), f300); y[30] = f395 + f396; y[1] = f397 - f396; } #ifdef SBR_LOW_POWER void DCT2_16_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, f31, f32; real_t f33, f34, f37, f38, f39, f40, f41, f42, f43, f44; real_t f45, f46, f47, f48, f49, f51, f53, f54, f57, f58; real_t f59, f60, f61, f62, f63, f64, f65, f66, f67, f68; real_t f69, f70, f71, f72, f73, f74, f75, f76, f77, f78; real_t f79, f80, f81, f82, f83, f84, f85, f86, f87, f88; real_t f89, f90, f91, f92, f95, f96, f97, f98, f101, f102; real_t f103, f104, f107, f108, f109, f110; f0 = x[0] - x[15]; f1 = x[0] + x[15]; f2 = x[1] - x[14]; f3 = x[1] + x[14]; f4 = x[2] - x[13]; f5 = x[2] + x[13]; f6 = x[3] - x[12]; f7 = x[3] + x[12]; f8 = x[4] - x[11]; f9 = x[4] + x[11]; f10 = x[5] - x[10]; f11 = x[5] + x[10]; f12 = x[6] - x[9]; f13 = x[6] + x[9]; f14 = x[7] - x[8]; f15 = x[7] + x[8]; f16 = f1 - f15; f17 = f1 + f15; f18 = f3 - f13; f19 = f3 + f13; f20 = f5 - f11; f21 = f5 + f11; f22 = f7 - f9; f23 = f7 + f9; f24 = f17 - f23; f25 = f17 + f23; f26 = f19 - f21; f27 = f19 + f21; f28 = f25 - f27; y[0] = f25 + f27; y[8] = MUL_F(f28, FRAC_CONST(0.7071067811865476)); f31 = f24 + f26; f32 = MUL_C(f24, COEF_CONST(1.3065629648763766)); f33 = MUL_F(f31, FRAC_CONST(-0.9238795325112866)); f34 = MUL_F(f26, FRAC_CONST(-0.5411961001461967)); y[12] = f32 + f33; y[4] = f34 - f33; f37 = f16 + f22; f38 = MUL_C(f16, COEF_CONST(1.1758756024193588)); f39 = MUL_F(f37, FRAC_CONST(-0.9807852804032304)); f40 = MUL_F(f22, FRAC_CONST(-0.7856949583871021)); f41 = f38 + f39; f42 = f40 - f39; f43 = f18 + f20; f44 = MUL_C(f18, COEF_CONST(1.3870398453221473)); f45 = MUL_F(f43, FRAC_CONST(-0.8314696123025455)); f46 = MUL_F(f20, FRAC_CONST(-0.2758993792829436)); f47 = f44 + f45; f48 = f46 - f45; f49 = f42 - f48; y[2] = f42 + f48; f51 = MUL_F(f49, FRAC_CONST(0.7071067811865476)); y[14] = f41 - f47; f53 = f41 + f47; f54 = MUL_F(f53, FRAC_CONST(0.7071067811865476)); y[10] = f51 - f54; y[6] = f51 + f54; f57 = f2 - f4; f58 = f2 + f4; f59 = f6 - f8; f60 = f6 + f8; f61 = f10 - f12; f62 = f10 + f12; f63 = MUL_F(f60, FRAC_CONST(0.7071067811865476)); f64 = f0 - f63; f65 = f0 + f63; f66 = f58 + f62; f67 = MUL_C(f58, COEF_CONST(1.3065629648763766)); f68 = MUL_F(f66, FRAC_CONST(-0.9238795325112866)); f69 = MUL_F(f62, FRAC_CONST(-0.5411961001461967)); f70 = f67 + f68; f71 = f69 - f68; f72 = f65 - f71; f73 = f65 + f71; f74 = f64 - f70; f75 = f64 + f70; f76 = MUL_F(f59, FRAC_CONST(0.7071067811865476)); f77 = f14 - f76; f78 = f14 + f76; f79 = f61 + f57; f80 = MUL_C(f61, COEF_CONST(1.3065629648763766)); f81 = MUL_F(f79, FRAC_CONST(-0.9238795325112866)); f82 = MUL_F(f57, FRAC_CONST(-0.5411961001461967)); f83 = f80 + f81; f84 = f82 - f81; f85 = f78 - f84; f86 = f78 + f84; f87 = f77 - f83; f88 = f77 + f83; f89 = f86 + f73; f90 = MUL_F(f86, FRAC_CONST(-0.8971675863426361)); f91 = MUL_F(f89, FRAC_CONST(0.9951847266721968)); f92 = MUL_C(f73, COEF_CONST(1.0932018670017576)); y[1] = f90 + f91; y[15] = f92 - f91; f95 = f75 - f88; f96 = MUL_F(f88, FRAC_CONST(-0.6666556584777466)); f97 = MUL_F(f95, FRAC_CONST(0.9569403357322089)); f98 = MUL_C(f75, COEF_CONST(1.2472250129866713)); y[3] = f97 - f96; y[13] = f98 - f97; f101 = f87 + f74; f102 = MUL_F(f87, FRAC_CONST(-0.4105245275223571)); f103 = MUL_F(f101, FRAC_CONST(0.8819212643483549)); f104 = MUL_C(f74, COEF_CONST(1.3533180011743529)); y[5] = f102 + f103; y[11] = f104 - f103; f107 = f72 - f85; f108 = MUL_F(f85, FRAC_CONST(-0.1386171691990915)); f109 = MUL_F(f107, FRAC_CONST(0.7730104533627370)); f110 = MUL_C(f72, COEF_CONST(1.4074037375263826)); y[7] = f109 - f108; y[9] = f110 - f109; } void DCT4_16(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, f130, f132; real_t f134, f136, f138, f140, f142, f144, f145, f148, f149, f152; real_t f153, f156, f157; f0 = x[0] + x[15]; f1 = MUL_C(COEF_CONST(1.0478631305325901), x[0]); f2 = MUL_F(FRAC_CONST(-0.9987954562051724), f0); f3 = MUL_F(FRAC_CONST(-0.9497277818777548), x[15]); f4 = f1 + f2; f5 = f3 - f2; f6 = x[2] + x[13]; f7 = MUL_C(COEF_CONST(1.2130114330978077), x[2]); f8 = MUL_F(FRAC_CONST(-0.9700312531945440), f6); f9 = MUL_F(FRAC_CONST(-0.7270510732912803), x[13]); f10 = f7 + f8; f11 = f9 - f8; f12 = x[4] + x[11]; f13 = MUL_C(COEF_CONST(1.3315443865537255), x[4]); f14 = MUL_F(FRAC_CONST(-0.9039892931234433), f12); f15 = MUL_F(FRAC_CONST(-0.4764341996931612), x[11]); f16 = f13 + f14; f17 = f15 - f14; f18 = x[6] + x[9]; f19 = MUL_C(COEF_CONST(1.3989068359730781), x[6]); f20 = MUL_F(FRAC_CONST(-0.8032075314806453), f18); f21 = MUL_F(FRAC_CONST(-0.2075082269882124), x[9]); f22 = f19 + f20; f23 = f21 - f20; f24 = x[8] + x[7]; f25 = MUL_C(COEF_CONST(1.4125100802019777), x[8]); f26 = MUL_F(FRAC_CONST(-0.6715589548470187), f24); f27 = MUL_F(FRAC_CONST(0.0693921705079402), x[7]); f28 = f25 + f26; f29 = f27 - f26; f30 = x[10] + x[5]; f31 = MUL_C(COEF_CONST(1.3718313541934939), x[10]); f32 = MUL_F(FRAC_CONST(-0.5141027441932219), f30); f33 = MUL_F(FRAC_CONST(0.3436258658070501), x[5]); f34 = f31 + f32; f35 = f33 - f32; f36 = x[12] + x[3]; f37 = MUL_C(COEF_CONST(1.2784339185752409), x[12]); f38 = MUL_F(FRAC_CONST(-0.3368898533922200), f36); f39 = MUL_F(FRAC_CONST(0.6046542117908008), x[3]); f40 = f37 + f38; f41 = f39 - f38; f42 = x[14] + x[1]; f43 = MUL_C(COEF_CONST(1.1359069844201433), x[14]); f44 = MUL_F(FRAC_CONST(-0.1467304744553624), f42); f45 = MUL_F(FRAC_CONST(0.8424460355094185), x[1]); f46 = f43 + f44; f47 = f45 - f44; f48 = f5 - f29; f49 = f5 + f29; f50 = f4 - f28; f51 = f4 + f28; f52 = f11 - f35; f53 = f11 + f35; f54 = f10 - f34; f55 = f10 + f34; f56 = f17 - f41; f57 = f17 + f41; f58 = f16 - f40; f59 = f16 + f40; f60 = f23 - f47; f61 = f23 + f47; f62 = f22 - f46; f63 = f22 + f46; f64 = f48 + f50; f65 = MUL_C(COEF_CONST(1.1758756024193588), f48); f66 = MUL_F(FRAC_CONST(-0.9807852804032304), f64); f67 = MUL_F(FRAC_CONST(-0.7856949583871021), f50); f68 = f65 + f66; f69 = f67 - f66; f70 = f52 + f54; f71 = MUL_C(COEF_CONST(1.3870398453221475), f52); f72 = MUL_F(FRAC_CONST(-0.5555702330196022), f70); f73 = MUL_F(FRAC_CONST(0.2758993792829431), f54); f74 = f71 + f72; f75 = f73 - f72; f76 = f56 + f58; f77 = MUL_F(FRAC_CONST(0.7856949583871022), f56); f78 = MUL_F(FRAC_CONST(0.1950903220161283), f76); f79 = MUL_C(COEF_CONST(1.1758756024193586), f58); f80 = f77 + f78; f81 = f79 - f78; f82 = f60 + f62; f83 = MUL_F(FRAC_CONST(-0.2758993792829430), f60); f84 = MUL_F(FRAC_CONST(0.8314696123025452), f82); f85 = MUL_C(COEF_CONST(1.3870398453221475), f62); f86 = f83 + f84; f87 = f85 - f84; f88 = f49 - f57; f89 = f49 + f57; f90 = f51 - f59; f91 = f51 + f59; f92 = f53 - f61; f93 = f53 + f61; f94 = f55 - f63; f95 = f55 + f63; f96 = f69 - f81; f97 = f69 + f81; f98 = f68 - f80; f99 = f68 + f80; f100 = f75 - f87; f101 = f75 + f87; f102 = f74 - f86; f103 = f74 + f86; f104 = f88 + f90; f105 = MUL_C(COEF_CONST(1.3065629648763766), f88); f106 = MUL_F(FRAC_CONST(-0.9238795325112866), f104); f107 = MUL_F(FRAC_CONST(-0.5411961001461967), f90); f108 = f105 + f106; f109 = f107 - f106; f110 = f92 + f94; f111 = MUL_F(FRAC_CONST(0.5411961001461969), f92); f112 = MUL_F(FRAC_CONST(0.3826834323650898), f110); f113 = MUL_C(COEF_CONST(1.3065629648763766), f94); f114 = f111 + f112; f115 = f113 - f112; f116 = f96 + f98; f117 = MUL_C(COEF_CONST(1.3065629648763766), f96); f118 = MUL_F(FRAC_CONST(-0.9238795325112866), f116); f119 = MUL_F(FRAC_CONST(-0.5411961001461967), f98); f120 = f117 + f118; f121 = f119 - f118; f122 = f100 + f102; f123 = MUL_F(FRAC_CONST(0.5411961001461969), f100); f124 = MUL_F(FRAC_CONST(0.3826834323650898), f122); f125 = MUL_C(COEF_CONST(1.3065629648763766), f102); f126 = f123 + f124; f127 = f125 - f124; f128 = f89 - f93; y[0] = f89 + f93; f130 = f91 - f95; y[15] = f91 + f95; f132 = f109 - f115; y[3] = f109 + f115; f134 = f108 - f114; y[12] = f108 + f114; f136 = f97 - f101; y[1] = f97 + f101; f138 = f99 - f103; y[14] = f99 + f103; f140 = f121 - f127; y[2] = f121 + f127; f142 = f120 - f126; y[13] = f120 + f126; f144 = f128 - f130; f145 = f128 + f130; y[8] = MUL_F(FRAC_CONST(0.7071067811865474), f144); y[7] = MUL_F(FRAC_CONST(0.7071067811865474), f145); f148 = f132 - f134; f149 = f132 + f134; y[11] = MUL_F(FRAC_CONST(0.7071067811865474), f148); y[4] = MUL_F(FRAC_CONST(0.7071067811865474), f149); f152 = f136 - f138; f153 = f136 + f138; y[9] = MUL_F(FRAC_CONST(0.7071067811865474), f152); y[6] = MUL_F(FRAC_CONST(0.7071067811865474), f153); f156 = f140 - f142; f157 = f140 + f142; y[10] = MUL_F(FRAC_CONST(0.7071067811865474), f156); y[5] = MUL_F(FRAC_CONST(0.7071067811865474), f157); } 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_F(x[16], FRAC_CONST(0.7071067811865476)); f1 = x[0] - f0; f2 = x[0] + f0; f3 = x[8] + x[24]; f4 = MUL_C(x[8], COEF_CONST(1.3065629648763766)); f5 = MUL_F(f3, FRAC_CONST((-0.9238795325112866))); f6 = MUL_F(x[24], FRAC_CONST((-0.5411961001461967))); 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(x[4], COEF_CONST(1.1758756024193588)); f15 = MUL_F(f13, FRAC_CONST((-0.9807852804032304))); f16 = MUL_F(x[28], FRAC_CONST((-0.7856949583871021))); f17 = f14 + f15; f18 = f16 - f15; f19 = x[12] + x[20]; f20 = MUL_C(x[12], COEF_CONST(1.3870398453221473)); f21 = MUL_F(f19, FRAC_CONST((-0.8314696123025455))); f22 = MUL_F(x[20], FRAC_CONST((-0.2758993792829436))); f23 = f20 + f21; f24 = f22 - f21; f25 = f18 - f24; f26 = f18 + f24; f27 = MUL_F(f25, FRAC_CONST(0.7071067811865476)); f28 = f17 - f23; f29 = f17 + f23; f30 = MUL_F(f29, FRAC_CONST(0.7071067811865476)); 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(x[2], COEF_CONST(1.0932018670017569)); f43 = MUL_F(f41, FRAC_CONST((-0.9951847266721969))); f44 = MUL_F(x[30], FRAC_CONST((-0.8971675863426368))); f45 = f42 + f43; f46 = f44 - f43; f47 = x[6] + x[26]; f48 = MUL_C(x[6], COEF_CONST(1.2472250129866711)); f49 = MUL_F(f47, FRAC_CONST((-0.9569403357322089))); f50 = MUL_F(x[26], FRAC_CONST((-0.6666556584777469))); f51 = f48 + f49; f52 = f50 - f49; f53 = x[10] + x[22]; f54 = MUL_C(x[10], COEF_CONST(1.3533180011743526)); f55 = MUL_F(f53, FRAC_CONST((-0.8819212643483551))); f56 = MUL_F(x[22], FRAC_CONST((-0.4105245275223575))); f57 = f54 + f55; f58 = f56 - f55; f59 = x[14] + x[18]; f60 = MUL_C(x[14], COEF_CONST(1.4074037375263826)); f61 = MUL_F(f59, FRAC_CONST((-0.7730104533627369))); f62 = MUL_F(x[18], FRAC_CONST((-0.1386171691990913))); 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_F(f69, FRAC_CONST(0.7071067811865476)); f72 = f65 + f67; f73 = MUL_C(f65, COEF_CONST(1.3065629648763766)); f74 = MUL_F(f72, FRAC_CONST((-0.9238795325112866))); f75 = MUL_F(f67, FRAC_CONST((-0.5411961001461967))); f76 = f73 + f74; f77 = f75 - f74; f78 = f45 - f63; f79 = f45 + f63; f80 = f51 - f57; f81 = f51 + f57; f82 = f79 + f81; f83 = MUL_C(f79, COEF_CONST(1.3065629648763770)); f84 = MUL_F(f82, FRAC_CONST((-0.3826834323650904))); f85 = MUL_F(f81, FRAC_CONST(0.5411961001461961)); f86 = f83 + f84; f87 = f85 - f84; f88 = f78 - f80; f89 = f78 + f80; f90 = MUL_F(f89, FRAC_CONST(0.7071067811865476)); 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(x[1], COEF_CONST(1.0478631305325901)); f115 = MUL_F(f113, FRAC_CONST((-0.9987954562051724))); f116 = MUL_F(x[31], FRAC_CONST((-0.9497277818777548))); f117 = f114 + f115; f118 = f116 - f115; f119 = x[5] + x[27]; f120 = MUL_C(x[5], COEF_CONST(1.2130114330978077)); f121 = MUL_F(f119, FRAC_CONST((-0.9700312531945440))); f122 = MUL_F(x[27], FRAC_CONST((-0.7270510732912803))); f123 = f120 + f121; f124 = f122 - f121; f125 = x[9] + x[23]; f126 = MUL_C(x[9], COEF_CONST(1.3315443865537255)); f127 = MUL_F(f125, FRAC_CONST((-0.9039892931234433))); f128 = MUL_F(x[23], FRAC_CONST((-0.4764341996931612))); f129 = f126 + f127; f130 = f128 - f127; f131 = x[13] + x[19]; f132 = MUL_C(x[13], COEF_CONST(1.3989068359730781)); f133 = MUL_F(f131, FRAC_CONST((-0.8032075314806453))); f134 = MUL_F(x[19], FRAC_CONST((-0.2075082269882124))); f135 = f132 + f133; f136 = f134 - f133; f137 = x[17] + x[15]; f138 = MUL_C(x[17], COEF_CONST(1.4125100802019777)); f139 = MUL_F(f137, FRAC_CONST((-0.6715589548470187))); f140 = MUL_F(x[15], FRAC_CONST(0.0693921705079402)); f141 = f138 + f139; f142 = f140 - f139; f143 = x[21] + x[11]; f144 = MUL_C(x[21], COEF_CONST(1.3718313541934939)); f145 = MUL_F(f143, FRAC_CONST((-0.5141027441932219))); f146 = MUL_F(x[11], FRAC_CONST(0.3436258658070501)); f147 = f144 + f145; f148 = f146 - f145; f149 = x[25] + x[7]; f150 = MUL_C(x[25], COEF_CONST(1.2784339185752409)); f151 = MUL_F(f149, FRAC_CONST((-0.3368898533922200))); f152 = MUL_F(x[7], FRAC_CONST(0.6046542117908008)); f153 = f150 + f151; f154 = f152 - f151; f155 = x[29] + x[3]; f156 = MUL_C(x[29], COEF_CONST(1.1359069844201433)); f157 = MUL_F(f155, FRAC_CONST((-0.1467304744553624))); f158 = MUL_F(x[3], FRAC_CONST(0.8424460355094185)); 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(f161, COEF_CONST(1.1758756024193588)); f179 = MUL_F(f177, FRAC_CONST((-0.9807852804032304))); f180 = MUL_F(f163, FRAC_CONST((-0.7856949583871021))); f181 = f178 + f179; f182 = f180 - f179; f183 = f165 + f167; f184 = MUL_C(f165, COEF_CONST(1.3870398453221475)); f185 = MUL_F(f183, FRAC_CONST((-0.5555702330196022))); f186 = MUL_F(f167, FRAC_CONST(0.2758993792829431)); f187 = f184 + f185; f188 = f186 - f185; f189 = f169 + f171; f190 = MUL_F(f169, FRAC_CONST(0.7856949583871022)); f191 = MUL_F(f189, FRAC_CONST(0.1950903220161283)); f192 = MUL_C(f171, COEF_CONST(1.1758756024193586)); f193 = f190 + f191; f194 = f192 - f191; f195 = f173 + f175; f196 = MUL_F(f173, FRAC_CONST((-0.2758993792829430))); f197 = MUL_F(f195, FRAC_CONST(0.8314696123025452)); f198 = MUL_C(f175, COEF_CONST(1.3870398453221475)); 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(f201, COEF_CONST(1.3065629648763766)); f219 = MUL_F(f217, FRAC_CONST((-0.9238795325112866))); f220 = MUL_F(f203, FRAC_CONST((-0.5411961001461967))); f221 = f218 + f219; f222 = f220 - f219; f223 = f205 + f207; f224 = MUL_F(f205, FRAC_CONST(0.5411961001461969)); f225 = MUL_F(f223, FRAC_CONST(0.3826834323650898)); f226 = MUL_C(f207, COEF_CONST(1.3065629648763766)); f227 = f224 + f225; f228 = f226 - f225; f229 = f209 + f211; f230 = MUL_C(f209, COEF_CONST(1.3065629648763766)); f231 = MUL_F(f229, FRAC_CONST((-0.9238795325112866))); f232 = MUL_F(f211, FRAC_CONST((-0.5411961001461967))); f233 = f230 + f231; f234 = f232 - f231; f235 = f213 + f215; f236 = MUL_F(f213, FRAC_CONST(0.5411961001461969)); f237 = MUL_F(f235, FRAC_CONST(0.3826834323650898)); f238 = MUL_C(f215, COEF_CONST(1.3065629648763766)); 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_F(f257, FRAC_CONST(0.7071067811865474)); f260 = MUL_F(f258, FRAC_CONST(0.7071067811865474)); f261 = f245 - f247; f262 = f245 + f247; f263 = MUL_F(f261, FRAC_CONST(0.7071067811865474)); f264 = MUL_F(f262, FRAC_CONST(0.7071067811865474)); f265 = f249 - f251; f266 = f249 + f251; f267 = MUL_F(f265, FRAC_CONST(0.7071067811865474)); f268 = MUL_F(f266, FRAC_CONST(0.7071067811865474)); f269 = f253 - f255; f270 = f253 + f255; f271 = MUL_F(f269, FRAC_CONST(0.7071067811865474)); f272 = MUL_F(f270, FRAC_CONST(0.7071067811865474)); 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_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 f63, f64, f65, f66, f69, f70, f71, f72, f73, f74; real_t f75, f76, f77, f78, f79, f80, f81, f83, f85, f86; real_t f89, f90, 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, f127, f128, f129, f130; real_t f133, f134, f135, f136, f139, f140, f141, f142, f145, f146; real_t f147, f148, f149, f150, 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, f212, f213, f214, f215, f216; real_t f217, f218, f219, f220, f221, f222, f223, f224, f225, f226; real_t f227, f228, f229, f230, f231, f232, f233, f234, f235, f236; real_t f237, f238, f239, f240, f241, f242, f243, f244, f247, f248; real_t f249, f250, f253, f254, f255, f256, f259, f260, f261, f262; real_t f265, f266, f267, f268, f271, f272, f273, f274, f277, f278; real_t f279, f280, f283, f284, f285, f286; f0 = x[0] - x[31]; f1 = x[0] + x[31]; f2 = x[1] - x[30]; f3 = x[1] + x[30]; f4 = x[2] - x[29]; f5 = x[2] + x[29]; f6 = x[3] - x[28]; f7 = x[3] + x[28]; f8 = x[4] - x[27]; f9 = x[4] + x[27]; f10 = x[5] - x[26]; f11 = x[5] + x[26]; f12 = x[6] - x[25]; f13 = x[6] + x[25]; f14 = x[7] - x[24]; f15 = x[7] + x[24]; f16 = x[8] - x[23]; f17 = x[8] + x[23]; f18 = x[9] - x[22]; f19 = x[9] + x[22]; f20 = x[10] - x[21]; f21 = x[10] + x[21]; f22 = x[11] - x[20]; f23 = x[11] + x[20]; f24 = x[12] - x[19]; f25 = x[12] + x[19]; f26 = x[13] - x[18]; f27 = x[13] + x[18]; f28 = x[14] - x[17]; f29 = x[14] + x[17]; f30 = x[15] - x[16]; f31 = x[15] + x[16]; f32 = f1 - f31; f33 = f1 + f31; f34 = f3 - f29; f35 = f3 + f29; f36 = f5 - f27; f37 = f5 + f27; f38 = f7 - f25; f39 = f7 + f25; f40 = f9 - f23; f41 = f9 + f23; f42 = f11 - f21; f43 = f11 + f21; f44 = f13 - f19; f45 = f13 + f19; f46 = f15 - f17; f47 = f15 + f17; f48 = f33 - f47; f49 = f33 + f47; f50 = f35 - f45; f51 = f35 + f45; f52 = f37 - f43; f53 = f37 + f43; f54 = f39 - f41; f55 = f39 + f41; f56 = f49 - f55; f57 = f49 + f55; f58 = f51 - f53; f59 = f51 + f53; f60 = f57 - f59; y[0] = f57 + f59; y[16] = MUL_F(FRAC_CONST(0.7071067811865476), f60); f63 = f56 + f58; f64 = MUL_C(COEF_CONST(1.3065629648763766), f56); f65 = MUL_F(FRAC_CONST(-0.9238795325112866), f63); f66 = MUL_F(FRAC_CONST(-0.5411961001461967), f58); y[24] = f64 + f65; y[8] = f66 - f65; f69 = f48 + f54; f70 = MUL_C(COEF_CONST(1.1758756024193588), f48); f71 = MUL_F(FRAC_CONST(-0.9807852804032304), f69); f72 = MUL_F(FRAC_CONST(-0.7856949583871021), f54); f73 = f70 + f71; f74 = f72 - f71; f75 = f50 + f52; f76 = MUL_C(COEF_CONST(1.3870398453221473), f50); f77 = MUL_F(FRAC_CONST(-0.8314696123025455), f75); f78 = MUL_F(FRAC_CONST(-0.2758993792829436), f52); f79 = f76 + f77; f80 = f78 - f77; f81 = f74 - f80; y[4] = f74 + f80; f83 = MUL_F(FRAC_CONST(0.7071067811865476), f81); y[28] = f73 - f79; f85 = f73 + f79; f86 = MUL_F(FRAC_CONST(0.7071067811865476), f85); y[20] = f83 - f86; y[12] = f83 + f86; f89 = f34 - f36; f90 = f34 + f36; f91 = f38 - f40; f92 = f38 + f40; f93 = f42 - f44; f94 = f42 + f44; f95 = MUL_F(FRAC_CONST(0.7071067811865476), f92); f96 = f32 - f95; f97 = f32 + f95; f98 = f90 + f94; f99 = MUL_C(COEF_CONST(1.3065629648763766), f90); f100 = MUL_F(FRAC_CONST(-0.9238795325112866), f98); f101 = MUL_F(FRAC_CONST(-0.5411961001461967), f94); f102 = f99 + f100; f103 = f101 - f100; f104 = f97 - f103; f105 = f97 + f103; f106 = f96 - f102; f107 = f96 + f102; f108 = MUL_F(FRAC_CONST(0.7071067811865476), f91); f109 = f46 - f108; f110 = f46 + f108; f111 = f93 + f89; f112 = MUL_C(COEF_CONST(1.3065629648763766), f93); f113 = MUL_F(FRAC_CONST(-0.9238795325112866), f111); f114 = MUL_F(FRAC_CONST(-0.5411961001461967), f89); f115 = f112 + f113; f116 = f114 - f113; f117 = f110 - f116; f118 = f110 + f116; f119 = f109 - f115; f120 = f109 + f115; f121 = f118 + f105; f122 = MUL_F(FRAC_CONST(-0.8971675863426361), f118); f123 = MUL_F(FRAC_CONST(0.9951847266721968), f121); f124 = MUL_C(COEF_CONST(1.0932018670017576), f105); y[2] = f122 + f123; y[30] = f124 - f123; f127 = f107 - f120; f128 = MUL_F(FRAC_CONST(-0.6666556584777466), f120); f129 = MUL_F(FRAC_CONST(0.9569403357322089), f127); f130 = MUL_C(COEF_CONST(1.2472250129866713), f107); y[6] = f129 - f128; y[26] = f130 - f129; f133 = f119 + f106; f134 = MUL_F(FRAC_CONST(-0.4105245275223571), f119); f135 = MUL_F(FRAC_CONST(0.8819212643483549), f133); f136 = MUL_C(COEF_CONST(1.3533180011743529), f106); y[10] = f134 + f135; y[22] = f136 - f135; f139 = f104 - f117; f140 = MUL_F(FRAC_CONST(-0.1386171691990915), f117); f141 = MUL_F(FRAC_CONST(0.7730104533627370), f139); f142 = MUL_C(COEF_CONST(1.4074037375263826), f104); y[14] = f141 - f140; y[18] = f142 - f141; f145 = f2 - f4; f146 = f2 + f4; f147 = f6 - f8; f148 = f6 + f8; f149 = f10 - f12; f150 = f10 + f12; f151 = f14 - f16; f152 = f14 + f16; f153 = f18 - f20; f154 = f18 + f20; f155 = f22 - f24; f156 = f22 + f24; f157 = f26 - f28; f158 = f26 + f28; f159 = MUL_F(FRAC_CONST(0.7071067811865476), f152); f160 = f0 - f159; f161 = f0 + f159; f162 = f148 + f156; f163 = MUL_C(COEF_CONST(1.3065629648763766), f148); f164 = MUL_F(FRAC_CONST(-0.9238795325112866), f162); f165 = MUL_F(FRAC_CONST(-0.5411961001461967), f156); f166 = f163 + f164; f167 = f165 - f164; f168 = f161 - f167; f169 = f161 + f167; f170 = f160 - f166; f171 = f160 + f166; f172 = f146 + f158; f173 = MUL_C(COEF_CONST(1.1758756024193588), f146); f174 = MUL_F(FRAC_CONST(-0.9807852804032304), f172); f175 = MUL_F(FRAC_CONST(-0.7856949583871021), f158); f176 = f173 + f174; f177 = f175 - f174; f178 = f150 + f154; f179 = MUL_C(COEF_CONST(1.3870398453221473), f150); f180 = MUL_F(FRAC_CONST(-0.8314696123025455), f178); f181 = MUL_F(FRAC_CONST(-0.2758993792829436), f154); f182 = f179 + f180; f183 = f181 - f180; f184 = f177 - f183; f185 = f177 + f183; f186 = MUL_F(FRAC_CONST(0.7071067811865476), f184); f187 = f176 - f182; f188 = f176 + f182; f189 = MUL_F(FRAC_CONST(0.7071067811865476), f188); f190 = f186 - f189; f191 = f186 + f189; f192 = f169 - f185; f193 = f169 + f185; f194 = f171 - f191; f195 = f171 + f191; f196 = f170 - f190; f197 = f170 + f190; f198 = f168 - f187; f199 = f168 + f187; f200 = MUL_F(FRAC_CONST(0.7071067811865476), f151); f201 = f30 - f200; f202 = f30 + f200; f203 = f155 + f147; f204 = MUL_C(COEF_CONST(1.3065629648763766), f155); f205 = MUL_F(FRAC_CONST(-0.9238795325112866), f203); f206 = MUL_F(FRAC_CONST(-0.5411961001461967), f147); f207 = f204 + f205; f208 = f206 - f205; f209 = f202 - f208; f210 = f202 + f208; f211 = f201 - f207; f212 = f201 + f207; f213 = f157 + f145; f214 = MUL_C(COEF_CONST(1.1758756024193588), f157); f215 = MUL_F(FRAC_CONST(-0.9807852804032304), f213); f216 = MUL_F(FRAC_CONST(-0.7856949583871021), f145); f217 = f214 + f215; f218 = f216 - f215; f219 = f153 + f149; f220 = MUL_C(COEF_CONST(1.3870398453221473), f153); f221 = MUL_F(FRAC_CONST(-0.8314696123025455), f219); f222 = MUL_F(FRAC_CONST(-0.2758993792829436), f149); f223 = f220 + f221; f224 = f222 - f221; f225 = f218 - f224; f226 = f218 + f224; f227 = MUL_F(FRAC_CONST(0.7071067811865476), f225); f228 = f217 - f223; f229 = f217 + f223; f230 = MUL_F(FRAC_CONST(0.7071067811865476), f229); f231 = f227 - f230; f232 = f227 + f230; f233 = f210 - f226; f234 = f210 + f226; f235 = f212 - f232; f236 = f212 + f232; f237 = f211 - f231; f238 = f211 + f231; f239 = f209 - f228; f240 = f209 + f228; f241 = f234 + f193; f242 = MUL_F(FRAC_CONST(-0.9497277818777543), f234); f243 = MUL_F(FRAC_CONST(0.9987954562051724), f241); f244 = MUL_C(COEF_CONST(1.0478631305325905), f193); y[1] = f242 + f243; y[31] = f244 - f243; f247 = f195 - f236; f248 = MUL_F(FRAC_CONST(-0.8424460355094192), f236); f249 = MUL_F(FRAC_CONST(0.9891765099647810), f247); f250 = MUL_C(COEF_CONST(1.1359069844201428), f195); y[3] = f249 - f248; y[29] = f250 - f249; f253 = f238 + f197; f254 = MUL_F(FRAC_CONST(-0.7270510732912801), f238); f255 = MUL_F(FRAC_CONST(0.9700312531945440), f253); f256 = MUL_C(COEF_CONST(1.2130114330978079), f197); y[5] = f254 + f255; y[27] = f256 - f255; f259 = f199 - f240; f260 = MUL_F(FRAC_CONST(-0.6046542117908007), f240); f261 = MUL_F(FRAC_CONST(0.9415440651830208), f259); f262 = MUL_C(COEF_CONST(1.2784339185752409), f199); y[7] = f261 - f260; y[25] = f262 - f261; f265 = f239 + f198; f266 = MUL_F(FRAC_CONST(-0.4764341996931611), f239); f267 = MUL_F(FRAC_CONST(0.9039892931234433), f265); f268 = MUL_C(COEF_CONST(1.3315443865537255), f198); y[9] = f266 + f267; y[23] = f268 - f267; f271 = f196 - f237; f272 = MUL_F(FRAC_CONST(-0.3436258658070505), f237); f273 = MUL_F(FRAC_CONST(0.8577286100002721), f271); f274 = MUL_C(COEF_CONST(1.3718313541934939), f196); y[11] = f273 - f272; y[21] = f274 - f273; f277 = f235 + f194; f278 = MUL_F(FRAC_CONST(-0.2075082269882114), f235); f279 = MUL_F(FRAC_CONST(0.8032075314806448), f277); f280 = MUL_C(COEF_CONST(1.3989068359730783), f194); y[13] = f278 + f279; y[19] = f280 - f279; f283 = f192 - f233; f284 = MUL_F(FRAC_CONST(-0.0693921705079408), f233); f285 = MUL_F(FRAC_CONST(0.7409511253549591), f283); f286 = MUL_C(COEF_CONST(1.4125100802019774), f192); y[15] = f285 - f284; y[17] = f286 - f285; } #else void DCT4_64(real_t *y, real_t *x) { int16_t i0; ALIGN 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, f3, f4, f5, f6, f7, f8; real_t f9, f10, f11, f12, f13, f14, f15; real_t f16, f17, f18, f19, f20, f21, f22; real_t f23, f24, f25, f26, f27, f28, f29; real_t f30, f31, f32, f33, f34, f35, f36; real_t f37, f38, f39, f40, f41, f42, f43; real_t f44, f45, f46, f47, f48, f49, f50; real_t f51, f52, f53, f54, f55, f56, f57; real_t f58, f59, f60, f61, f62, f63, f64; real_t f65, f66, f67, f68, f69, f70, f71; real_t f72, f73, f74, f75, f76, f77, f78; real_t f79, f80, f81, f82, f83, f84, f85; real_t f86, f87, f88, f89, f90, f91, f92; real_t f93, f94, f95, f96, f97, f98, f99; real_t f100, f101, f102, f103, f104, f105, f106; real_t f107, f108, f109, f110, f111, f112, f113; real_t f114, f115, f116, f117, f118, f119, f120; real_t f121, f122, f123, f124, f125, f126, f127; real_t f128, f129, f130, f131, f132, f133, f134; real_t f135, f136, f137, f138, f139, f140, f141; real_t f142, f143, f144, f145, f146, f147, f148; real_t f149, f150, f151, f152, f153, f154, f155; real_t f156, f157, f158, f159, f160, f161, f162; real_t f163, f164, f165, f166, f167, f168, f169; real_t f170, f171, f172, f173, f174, f175, f176; real_t f177, f178, f179, f180, f181, f182, f183; real_t f184, f185, f186, f187, f188, f189, f190; real_t f191, f192, f193, f194, f195, f196, f197; real_t f198, f199, f200, f201, f202, f203, f204; real_t f205, f206, f207, f208, f209, f210, f211; real_t f212, f213, f214, f215, f216, f217, f218; real_t f219, f220, f221, f222, f223, f224, f225; real_t f226, f227, f228, f229, f230, f231, f232; real_t f233, f234, f235, f236, f237, f238, f239; real_t f240, f241, f242, f243, f244, f245, f246; real_t f247, f248, f249, f250, f251, f252, f253; real_t f254, f255, f256, f257, f258, f259, f260; real_t f261, f262, f263, f264, f265, f266, f267; real_t f268, f269, f270, f271, f272, f273, f274; real_t f275, f276, f277, f278, f279, f280, f281; real_t f282, f283, f284, f285, f286, f287, f288; real_t f289, f290, f291, f292, f293, f294, f295; real_t f296, f297, f298, f299, f300, f301, f302; real_t f303, f304, f305, f306, f307, f308, f309; real_t f310, f311, f312, f313, f314, f315, f316; real_t f317, f318, f319, f320, f321, f322, f323; real_t f324, f325, f326, f327, f328, f329, f330; real_t f331, f332, f333, f334, f335, f336, f337; real_t f338, f339, f340, f341, f342, f343, f344; real_t f345, f346, f347, f348, f349, f350, f351; real_t f352, f353, f354, f355, f356, f357, f358; real_t f359, f360, f361, f362, f363, f364, f365; real_t f366, f367, f368, f369, f370, f371, f372; real_t f373, f374, f375, f376, f377, f378, f379; real_t f380, f381, f382, f383, f384, f385, f386; real_t f387, f388, f389, f390, f391, f392, f393; real_t f394, f395, f396, f397, f398, f399, f400; real_t f401, f402, f403, f404, f405, f406, f407; real_t f408, f409, f410, f411, f412, f413, f414; real_t f415, f416, f417, f418, f419, f420, f421; real_t f422, f423, f424, f425, f426, f427, f428; real_t f429, f430, f431, f432, f433, f434, f435; real_t f436, f437, f438, f439, f440, f441, f442; real_t f443, f444, f445, f446, f447, f448, f449; real_t f450, f451, f452, f453, f454, f455, f456; real_t f457, f458, f459, f460, f461, f462, f463; real_t f464, f465, f466, f467, f468, f469, f470; real_t f471, f472, f473, f474, f475, f476, f477; real_t f478, f479, f480, f481, f482, f483, f484; real_t f485, f486, f487, f488, f489, f490, f491; real_t f492, f493, f494, f495, f496, f497, f498; real_t f499, f500, f501, f502, f503, f504, f505; real_t f506, f507, f508, f509, f510, f511, f512; real_t f513, f514, f515, f516, f517, f518, f519; real_t f520, f521, f522, f523, f524, f525, f526; real_t f527, f528, f529, f530, f531, f532, f533; real_t f534, f535, f536, f537, f538, f539, f540; real_t f541, f542, f543, f544, f545, f546, f547; real_t f548, f549, f550, f551, f552, f553, f554; real_t f555, f556, f557, f558, f559, f560, f561; real_t f562, f563, f564, f565, f566, f567, f568; real_t f569, f570, f571, f572, f573, f574, f575; real_t f576, f577, f578, f579, f580, f581, f582; real_t f583, f584, f585, f586, f587, f588, f589; real_t f590, f591, f592, f593, f594, f595, f596; real_t f597, f598, f599, f600, f601, f602, f603; real_t f604, f605, f606, f607, f608, f609, f610; real_t f611, f612, f613, f614, f615, f618, f619; real_t f620, f621, f624, f625, f626, f627, f630; real_t f631, f632, f633, f636, f637, f638, f639; real_t f642, f643, f644, f645, f648, f649, f650; real_t f651, f654, f655, f656, f657, f660, f661; real_t f662, f663, f666, f667, f668, f669, f672; real_t f673, f674, f675, f678, f679, f680, f681; real_t f684, f685, f686, f687, f690, f691, f692; real_t f693, f696, f697, f698, f699, f702, f703; real_t f704, f705, f708, f709, f710, f711, f714; real_t f715, f716, f717, f720, f721, f722, f723; real_t f726, f727, f728, f729, f732, f733, f734; real_t f735, f738, f739, f740, f741, f744, f745; real_t f746, f747, f750, f751, f752, f753, f756; real_t f757, f758, f759, f762, f763, f764, f765; real_t f768, f769, f770, f771, f774, f775, f776; real_t f777, f780, f781, f782, f783, f786, f787; real_t f788, f789, f792, f793, f794, f795, f798; real_t f799, f800, f801; f2 = MUL_F(FRAC_CONST(0.7071067811865476), t2[32]); f3 = t2[0] - f2; f4 = t2[0] + f2; f5 = t2[16] + t2[48]; f6 = MUL_C(COEF_CONST(1.3065629648763766), t2[16]); f7 = MUL_F(FRAC_CONST(-0.9238795325112866), f5); f8 = MUL_F(FRAC_CONST(-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 = MUL_C(COEF_CONST(1.1758756024193588), t2[8]); f17 = MUL_F(FRAC_CONST(-0.9807852804032304), f15); f18 = MUL_F(FRAC_CONST(-0.7856949583871021), t2[56]); f19 = f16 + f17; f20 = f18 - f17; f21 = t2[24] + t2[40]; f22 = MUL_C(COEF_CONST(1.3870398453221473), t2[24]); f23 = MUL_F(FRAC_CONST(-0.8314696123025455), f21); f24 = MUL_F(FRAC_CONST(-0.2758993792829436), t2[40]); f25 = f22 + f23; f26 = f24 - f23; f27 = f20 - f26; f28 = f20 + f26; f29 = MUL_F(FRAC_CONST(0.7071067811865476), f27); f30 = f19 - f25; f31 = f19 + f25; f32 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.0932018670017569), t2[4]); f45 = MUL_F(FRAC_CONST(-0.9951847266721969), f43); f46 = MUL_F(FRAC_CONST(-0.8971675863426368), t2[60]); f47 = f44 + f45; f48 = f46 - f45; f49 = t2[12] + t2[52]; f50 = MUL_C(COEF_CONST(1.2472250129866711), t2[12]); f51 = MUL_F(FRAC_CONST(-0.9569403357322089), f49); f52 = MUL_F(FRAC_CONST(-0.6666556584777469), t2[52]); f53 = f50 + f51; f54 = f52 - f51; f55 = t2[20] + t2[44]; f56 = MUL_C(COEF_CONST(1.3533180011743526), t2[20]); f57 = MUL_F(FRAC_CONST(-0.8819212643483551), f55); f58 = MUL_F(FRAC_CONST(-0.4105245275223575), t2[44]); f59 = f56 + f57; f60 = f58 - f57; f61 = t2[28] + t2[36]; f62 = MUL_C(COEF_CONST(1.4074037375263826), t2[28]); f63 = MUL_F(FRAC_CONST(-0.7730104533627369), f61); f64 = MUL_F(FRAC_CONST(-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 = MUL_F(FRAC_CONST(0.7071067811865476), f71); f74 = f67 + f69; f75 = MUL_C(COEF_CONST(1.3065629648763766), f67); f76 = MUL_F(FRAC_CONST(-0.9238795325112866), f74); f77 = MUL_F(FRAC_CONST(-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 = MUL_C(COEF_CONST(1.3065629648763770), f81); f86 = MUL_F(FRAC_CONST(-0.3826834323650904), f84); f87 = MUL_F(FRAC_CONST(0.5411961001461961), f83); f88 = f85 + f86; f89 = f87 - f86; f90 = f80 - f82; f91 = f80 + f82; f92 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.0478631305325901), t2[2]); f117 = MUL_F(FRAC_CONST(-0.9987954562051724), f115); f118 = MUL_F(FRAC_CONST(-0.9497277818777548), t2[62]); f119 = f116 + f117; f120 = f118 - f117; f121 = t2[10] + t2[54]; f122 = MUL_C(COEF_CONST(1.2130114330978077), t2[10]); f123 = MUL_F(FRAC_CONST(-0.9700312531945440), f121); f124 = MUL_F(FRAC_CONST(-0.7270510732912803), t2[54]); f125 = f122 + f123; f126 = f124 - f123; f127 = t2[18] + t2[46]; f128 = MUL_C(COEF_CONST(1.3315443865537255), t2[18]); f129 = MUL_F(FRAC_CONST(-0.9039892931234433), f127); f130 = MUL_F(FRAC_CONST(-0.4764341996931612), t2[46]); f131 = f128 + f129; f132 = f130 - f129; f133 = t2[26] + t2[38]; f134 = MUL_C(COEF_CONST(1.3989068359730781), t2[26]); f135 = MUL_F(FRAC_CONST(-0.8032075314806453), f133); f136 = MUL_F(FRAC_CONST(-0.2075082269882124), t2[38]); f137 = f134 + f135; f138 = f136 - f135; f139 = t2[34] + t2[30]; f140 = MUL_C(COEF_CONST(1.4125100802019777), t2[34]); f141 = MUL_F(FRAC_CONST(-0.6715589548470187), f139); f142 = MUL_F(FRAC_CONST(0.0693921705079402), t2[30]); f143 = f140 + f141; f144 = f142 - f141; f145 = t2[42] + t2[22]; f146 = MUL_C(COEF_CONST(1.3718313541934939), t2[42]); f147 = MUL_F(FRAC_CONST(-0.5141027441932219), f145); f148 = MUL_F(FRAC_CONST(0.3436258658070501), t2[22]); f149 = f146 + f147; f150 = f148 - f147; f151 = t2[50] + t2[14]; f152 = MUL_C(COEF_CONST(1.2784339185752409), t2[50]); f153 = MUL_F(FRAC_CONST(-0.3368898533922200), f151); f154 = MUL_F(FRAC_CONST(0.6046542117908008), t2[14]); f155 = f152 + f153; f156 = f154 - f153; f157 = t2[58] + t2[6]; f158 = MUL_C(COEF_CONST(1.1359069844201433), t2[58]); f159 = MUL_F(FRAC_CONST(-0.1467304744553624), f157); f160 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.1758756024193588), f163); f181 = MUL_F(FRAC_CONST(-0.9807852804032304), f179); f182 = MUL_F(FRAC_CONST(-0.7856949583871021), f165); f183 = f180 + f181; f184 = f182 - f181; f185 = f167 + f169; f186 = MUL_C(COEF_CONST(1.3870398453221475), f167); f187 = MUL_F(FRAC_CONST(-0.5555702330196022), f185); f188 = MUL_F(FRAC_CONST(0.2758993792829431), f169); f189 = f186 + f187; f190 = f188 - f187; f191 = f171 + f173; f192 = MUL_F(FRAC_CONST(0.7856949583871022), f171); f193 = MUL_F(FRAC_CONST(0.1950903220161283), f191); f194 = MUL_C(COEF_CONST(1.1758756024193586), f173); f195 = f192 + f193; f196 = f194 - f193; f197 = f175 + f177; f198 = MUL_F(FRAC_CONST(-0.2758993792829430), f175); f199 = MUL_F(FRAC_CONST(0.8314696123025452), f197); f200 = MUL_C(COEF_CONST(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 = MUL_C(COEF_CONST(1.3065629648763766), f203); f221 = MUL_F(FRAC_CONST(-0.9238795325112866), f219); f222 = MUL_F(FRAC_CONST(-0.5411961001461967), f205); f223 = f220 + f221; f224 = f222 - f221; f225 = f207 + f209; f226 = MUL_F(FRAC_CONST(0.5411961001461969), f207); f227 = MUL_F(FRAC_CONST(0.3826834323650898), f225); f228 = MUL_C(COEF_CONST(1.3065629648763766), f209); f229 = f226 + f227; f230 = f228 - f227; f231 = f211 + f213; f232 = MUL_C(COEF_CONST(1.3065629648763766), f211); f233 = MUL_F(FRAC_CONST(-0.9238795325112866), f231); f234 = MUL_F(FRAC_CONST(-0.5411961001461967), f213); f235 = f232 + f233; f236 = f234 - f233; f237 = f215 + f217; f238 = MUL_F(FRAC_CONST(0.5411961001461969), f215); f239 = MUL_F(FRAC_CONST(0.3826834323650898), f237); f240 = MUL_C(COEF_CONST(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 = MUL_F(FRAC_CONST(0.7071067811865474), f259); f262 = MUL_F(FRAC_CONST(0.7071067811865474), f260); f263 = f247 - f249; f264 = f247 + f249; f265 = MUL_F(FRAC_CONST(0.7071067811865474), f263); f266 = MUL_F(FRAC_CONST(0.7071067811865474), f264); f267 = f251 - f253; f268 = f251 + f253; f269 = MUL_F(FRAC_CONST(0.7071067811865474), f267); f270 = MUL_F(FRAC_CONST(0.7071067811865474), f268); f271 = f255 - f257; f272 = f255 + f257; f273 = MUL_F(FRAC_CONST(0.7071067811865474), f271); f274 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.0478631305325901), t2[1]); f309 = MUL_F(FRAC_CONST(-0.9987954562051724), f307); f310 = MUL_F(FRAC_CONST(-0.9497277818777548), t2[61]); f311 = f308 + f309; f312 = f309 + f310; f313 = t2[9] - t2[53]; f314 = MUL_C(COEF_CONST(1.2130114330978077), t2[9]); f315 = MUL_F(FRAC_CONST(-0.9700312531945440), f313); f316 = MUL_F(FRAC_CONST(-0.7270510732912803), t2[53]); f317 = f314 + f315; f318 = f315 + f316; f319 = t2[17] - t2[45]; f320 = MUL_C(COEF_CONST(1.3315443865537255), t2[17]); f321 = MUL_F(FRAC_CONST(-0.9039892931234433), f319); f322 = MUL_F(FRAC_CONST(-0.4764341996931612), t2[45]); f323 = f320 + f321; f324 = f321 + f322; f325 = t2[25] - t2[37]; f326 = MUL_C(COEF_CONST(1.3989068359730781), t2[25]); f327 = MUL_F(FRAC_CONST(-0.8032075314806453), f325); f328 = MUL_F(FRAC_CONST(-0.2075082269882124), t2[37]); f329 = f326 + f327; f330 = f327 + f328; f331 = t2[33] - t2[29]; f332 = MUL_C(COEF_CONST(1.4125100802019777), t2[33]); f333 = MUL_F(FRAC_CONST(-0.6715589548470187), f331); f334 = MUL_F(FRAC_CONST(0.0693921705079402), t2[29]); f335 = f332 + f333; f336 = f333 + f334; f337 = t2[41] - t2[21]; f338 = MUL_C(COEF_CONST(1.3718313541934939), t2[41]); f339 = MUL_F(FRAC_CONST(-0.5141027441932219), f337); f340 = MUL_F(FRAC_CONST(0.3436258658070501), t2[21]); f341 = f338 + f339; f342 = f339 + f340; f343 = t2[49] - t2[13]; f344 = MUL_C(COEF_CONST(1.2784339185752409), t2[49]); f345 = MUL_F(FRAC_CONST(-0.3368898533922200), f343); f346 = MUL_F(FRAC_CONST(0.6046542117908008), t2[13]); f347 = f344 + f345; f348 = f345 + f346; f349 = t2[57] - t2[5]; f350 = MUL_C(COEF_CONST(1.1359069844201433), t2[57]); f351 = MUL_F(FRAC_CONST(-0.1467304744553624), f349); f352 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.1758756024193588), f355); f373 = MUL_F(FRAC_CONST(-0.9807852804032304), f371); f374 = MUL_F(FRAC_CONST(-0.7856949583871021), f357); f375 = f372 + f373; f376 = f374 - f373; f377 = f359 + f361; f378 = MUL_C(COEF_CONST(1.3870398453221475), f359); f379 = MUL_F(FRAC_CONST(-0.5555702330196022), f377); f380 = MUL_F(FRAC_CONST(0.2758993792829431), f361); f381 = f378 + f379; f382 = f380 - f379; f383 = f363 + f365; f384 = MUL_F(FRAC_CONST(0.7856949583871022), f363); f385 = MUL_F(FRAC_CONST(0.1950903220161283), f383); f386 = MUL_C(COEF_CONST(1.1758756024193586), f365); f387 = f384 + f385; f388 = f386 - f385; f389 = f367 + f369; f390 = MUL_F(FRAC_CONST(-0.2758993792829430), f367); f391 = MUL_F(FRAC_CONST(0.8314696123025452), f389); f392 = MUL_C(COEF_CONST(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 = MUL_C(COEF_CONST(1.3065629648763766), f395); f413 = MUL_F(FRAC_CONST(-0.9238795325112866), f411); f414 = MUL_F(FRAC_CONST(-0.5411961001461967), f397); f415 = f412 + f413; f416 = f414 - f413; f417 = f399 + f401; f418 = MUL_F(FRAC_CONST(0.5411961001461969), f399); f419 = MUL_F(FRAC_CONST(0.3826834323650898), f417); f420 = MUL_C(COEF_CONST(1.3065629648763766), f401); f421 = f418 + f419; f422 = f420 - f419; f423 = f403 + f405; f424 = MUL_C(COEF_CONST(1.3065629648763766), f403); f425 = MUL_F(FRAC_CONST(-0.9238795325112866), f423); f426 = MUL_F(FRAC_CONST(-0.5411961001461967), f405); f427 = f424 + f425; f428 = f426 - f425; f429 = f407 + f409; f430 = MUL_F(FRAC_CONST(0.5411961001461969), f407); f431 = MUL_F(FRAC_CONST(0.3826834323650898), f429); f432 = MUL_C(COEF_CONST(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 = MUL_F(FRAC_CONST(0.7071067811865474), f451); f454 = MUL_F(FRAC_CONST(0.7071067811865474), f452); f455 = f439 - f441; f456 = f439 + f441; f457 = MUL_F(FRAC_CONST(0.7071067811865474), f455); f458 = MUL_F(FRAC_CONST(0.7071067811865474), f456); f459 = f443 - f445; f460 = f443 + f445; f461 = MUL_F(FRAC_CONST(0.7071067811865474), f459); f462 = MUL_F(FRAC_CONST(0.7071067811865474), f460); f463 = f447 - f449; f464 = f447 + f449; f465 = MUL_F(FRAC_CONST(0.7071067811865474), f463); f466 = MUL_F(FRAC_CONST(0.7071067811865474), f464); f467 = MUL_F(FRAC_CONST(0.7071067811865476), t2[31]); f468 = t2[63] - f467; f469 = t2[63] + f467; f470 = t2[47] + t2[15]; f471 = MUL_C(COEF_CONST(1.3065629648763766), t2[47]); f472 = MUL_F(FRAC_CONST(-0.9238795325112866), f470); f473 = MUL_F(FRAC_CONST(-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 = MUL_C(COEF_CONST(1.1758756024193588), t2[55]); f482 = MUL_F(FRAC_CONST(-0.9807852804032304), f480); f483 = MUL_F(FRAC_CONST(-0.7856949583871021), t2[7]); f484 = f481 + f482; f485 = f483 - f482; f486 = t2[39] + t2[23]; f487 = MUL_C(COEF_CONST(1.3870398453221473), t2[39]); f488 = MUL_F(FRAC_CONST(-0.8314696123025455), f486); f489 = MUL_F(FRAC_CONST(-0.2758993792829436), t2[23]); f490 = f487 + f488; f491 = f489 - f488; f492 = f485 - f491; f493 = f485 + f491; f494 = MUL_F(FRAC_CONST(0.7071067811865476), f492); f495 = f484 - f490; f496 = f484 + f490; f497 = MUL_F(FRAC_CONST(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 = MUL_C(COEF_CONST(1.0932018670017569), t2[59]); f510 = MUL_F(FRAC_CONST(-0.9951847266721969), f508); f511 = MUL_F(FRAC_CONST(-0.8971675863426368), t2[3]); f512 = f509 + f510; f513 = f511 - f510; f514 = t2[51] + t2[11]; f515 = MUL_C(COEF_CONST(1.2472250129866711), t2[51]); f516 = MUL_F(FRAC_CONST(-0.9569403357322089), f514); f517 = MUL_F(FRAC_CONST(-0.6666556584777469), t2[11]); f518 = f515 + f516; f519 = f517 - f516; f520 = t2[43] + t2[19]; f521 = MUL_C(COEF_CONST(1.3533180011743526), t2[43]); f522 = MUL_F(FRAC_CONST(-0.8819212643483551), f520); f523 = MUL_F(FRAC_CONST(-0.4105245275223575), t2[19]); f524 = f521 + f522; f525 = f523 - f522; f526 = t2[35] + t2[27]; f527 = MUL_C(COEF_CONST(1.4074037375263826), t2[35]); f528 = MUL_F(FRAC_CONST(-0.7730104533627369), f526); f529 = MUL_F(FRAC_CONST(-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 = MUL_F(FRAC_CONST(0.7071067811865476), f536); f539 = f532 + f534; f540 = MUL_C(COEF_CONST(1.3065629648763766), f532); f541 = MUL_F(FRAC_CONST(-0.9238795325112866), f539); f542 = MUL_F(FRAC_CONST(-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 = MUL_C(COEF_CONST(1.3065629648763770), f546); f551 = MUL_F(FRAC_CONST(-0.3826834323650904), f549); f552 = MUL_F(FRAC_CONST(0.5411961001461961), f548); f553 = f550 + f551; f554 = f552 - f551; f555 = f545 - f547; f556 = f545 + f547; f557 = MUL_F(FRAC_CONST(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 = MUL_F(FRAC_CONST(-0.9876531635534246), f581); f614 = MUL_F(FRAC_CONST(0.9999247018391445), f612); f615 = MUL_C(COEF_CONST(1.0121962401248645), f276); y[0] = f613 + f614; y[63] = f615 - f614; f618 = f583 + f278; f619 = MUL_F(FRAC_CONST(-0.9625151616469906), f583); f620 = MUL_F(FRAC_CONST(0.9993223845883495), f618); f621 = MUL_C(COEF_CONST(1.0361296075297086), f278); y[1] = f619 + f620; y[62] = f621 - f620; f624 = f585 + f280; f625 = MUL_F(FRAC_CONST(-0.9367973765979405), f585); f626 = MUL_F(FRAC_CONST(0.9981181129001492), f624); f627 = MUL_C(COEF_CONST(1.0594388492023579), f280); y[2] = f625 + f626; y[61] = f627 - f626; f630 = f587 + f282; f631 = MUL_F(FRAC_CONST(-0.9105152998383381), f587); f632 = MUL_F(FRAC_CONST(0.9963126121827780), f630); f633 = MUL_C(COEF_CONST(1.0821099245272179), f282); y[3] = f631 + f632; y[60] = f633 - f632; f636 = f589 + f284; f637 = MUL_F(FRAC_CONST(-0.8836847627084729), f589); f638 = MUL_F(FRAC_CONST(0.9939069700023561), f636); f639 = MUL_C(COEF_CONST(1.1041291772962392), f284); y[4] = f637 + f638; y[59] = f639 - f638; f642 = f591 + f286; f643 = MUL_F(FRAC_CONST(-0.8563219269206538), f591); f644 = MUL_F(FRAC_CONST(0.9909026354277800), f642); f645 = MUL_C(COEF_CONST(1.1254833439349063), f286); y[5] = f643 + f644; y[58] = f645 - f644; f648 = f593 + f288; f649 = MUL_F(FRAC_CONST(-0.8284432748239970), f593); f650 = MUL_F(FRAC_CONST(0.9873014181578584), f648); f651 = MUL_C(COEF_CONST(1.1461595614917197), f288); y[6] = f649 + f650; y[57] = f651 - f650; f654 = f595 + f290; f655 = MUL_F(FRAC_CONST(-0.8000655994760753), f595); f656 = MUL_F(FRAC_CONST(0.9831054874312163), f654); f657 = MUL_C(COEF_CONST(1.1661453753863573), f290); y[7] = f655 + f656; y[56] = f657 - f656; f660 = f597 + f292; f661 = MUL_F(FRAC_CONST(-0.7712059945274091), f597); f662 = MUL_F(FRAC_CONST(0.9783173707196277), f660); f663 = MUL_C(COEF_CONST(1.1854287469118463), f292); y[8] = f661 + f662; y[55] = f663 - f662; f666 = f599 + f294; f667 = MUL_F(FRAC_CONST(-0.7418818439248888), f599); f668 = MUL_F(FRAC_CONST(0.9729399522055601), f666); f669 = MUL_C(COEF_CONST(1.2039980604862313), f294); y[9] = f667 + f668; y[54] = f669 - f668; f672 = f601 + f296; f673 = MUL_F(FRAC_CONST(-0.7121108114403374), f601); f674 = MUL_F(FRAC_CONST(0.9669764710448521), f672); f675 = MUL_C(COEF_CONST(1.2218421306493668), f296); y[10] = f673 + f674; y[53] = f675 - f674; f678 = f603 + f298; f679 = MUL_F(FRAC_CONST(-0.6819108300305128), f603); f680 = MUL_F(FRAC_CONST(0.9604305194155658), f678); f681 = MUL_C(COEF_CONST(1.2389502088006188), f298); y[11] = f679 + f680; y[52] = f681 - f680; f684 = f605 + f300; f685 = MUL_F(FRAC_CONST(-0.6513000910349656), f605); f686 = MUL_F(FRAC_CONST(0.9533060403541938), f684); f687 = MUL_C(COEF_CONST(1.2553119896734219), f300); y[12] = f685 + f686; y[51] = f687 - f686; f690 = f607 + f302; f691 = MUL_F(FRAC_CONST(-0.6202970332182582), f607); f692 = MUL_F(FRAC_CONST(0.9456073253805213), f690); f693 = MUL_C(COEF_CONST(1.2709176175427843), f302); y[13] = f691 + f692; y[50] = f693 - f692; f696 = f609 + f304; f697 = MUL_F(FRAC_CONST(-0.5889203316631404), f609); f698 = MUL_F(FRAC_CONST(0.9373390119125750), f696); f699 = MUL_C(COEF_CONST(1.2857576921620095), f304); y[14] = f697 + f698; y[49] = f699 - f698; f702 = f306 - f611; f703 = MUL_F(FRAC_CONST(-0.5571888865213779), f611); f704 = MUL_F(FRAC_CONST(0.9285060804732155), f702); f705 = MUL_C(COEF_CONST(1.2998232744250531), f306); y[15] = f704 - f703; y[48] = f705 - f704; f708 = f610 + f305; f709 = MUL_F(FRAC_CONST(-0.5251218116290097), f610); f710 = MUL_F(FRAC_CONST(0.9191138516900578), f708); f711 = MUL_C(COEF_CONST(1.3131058917511058), f305); y[16] = f709 + f710; y[47] = f711 - f710; f714 = f608 + f303; f715 = MUL_F(FRAC_CONST(-0.4927384229928850), f608); f716 = MUL_F(FRAC_CONST(0.9091679830905223), f714); f717 = MUL_C(COEF_CONST(1.3255975431881595), f303); y[17] = f715 + f716; y[46] = f717 - f716; f720 = f606 + f301; f721 = MUL_F(FRAC_CONST(-0.4600582271554261), f606); f722 = MUL_F(FRAC_CONST(0.8986744656939538), f720); f723 = MUL_C(COEF_CONST(1.3372907042324815), f301); y[18] = f721 + f722; y[45] = f723 - f722; f726 = f604 + f299; f727 = MUL_F(FRAC_CONST(-0.4271009094446139), f604); f728 = MUL_F(FRAC_CONST(0.8876396204028539), f726); f729 = MUL_C(COEF_CONST(1.3481783313610940), f299); y[19] = f727 + f728; y[44] = f729 - f728; f732 = f602 + f297; f733 = MUL_F(FRAC_CONST(-0.3938863221162838), f602); f734 = MUL_F(FRAC_CONST(0.8760700941954066), f732); f735 = MUL_C(COEF_CONST(1.3582538662745294), f297); y[20] = f733 + f734; y[43] = f735 - f734; f738 = f600 + f295; f739 = MUL_F(FRAC_CONST(-0.3604344723958691), f600); f740 = MUL_F(FRAC_CONST(0.8639728561215867), f738); f741 = MUL_C(COEF_CONST(1.3675112398473042), f295); y[21] = f739 + f740; y[42] = f741 - f740; f744 = f598 + f293; f745 = MUL_F(FRAC_CONST(-0.3267655104267964), f598); f746 = MUL_F(FRAC_CONST(0.8513551931052652), f744); f747 = MUL_C(COEF_CONST(1.3759448757837340), f293); y[22] = f745 + f746; y[41] = f747 - f746; f750 = f596 + f291; f751 = MUL_F(FRAC_CONST(-0.2928997171327915), f596); f752 = MUL_F(FRAC_CONST(0.8382247055548380), f750); f753 = MUL_C(COEF_CONST(1.3835496939768843), f291); y[23] = f751 + f752; y[40] = f753 - f752; f756 = f594 + f289; f757 = MUL_F(FRAC_CONST(-0.2588574920014121), f594); f758 = MUL_F(FRAC_CONST(0.8245893027850253), f756); f759 = MUL_C(COEF_CONST(1.3903211135686386), f289); y[24] = f757 + f758; y[39] = f759 - f758; f762 = f592 + f287; f763 = MUL_F(FRAC_CONST(-0.2246593407961559), f592); f764 = MUL_F(FRAC_CONST(0.8104571982525948), f762); f765 = MUL_C(COEF_CONST(1.3962550557090336), f287); y[25] = f763 + f764; y[38] = f765 - f764; f768 = f590 + f285; f769 = MUL_F(FRAC_CONST(-0.1903258632045579), f590); f770 = MUL_F(FRAC_CONST(0.7958369046088835), f768); f771 = MUL_C(COEF_CONST(1.4013479460132090), f285); y[26] = f769 + f770; y[37] = f771 - f770; f774 = f588 + f283; f775 = MUL_F(FRAC_CONST(-0.1558777404297079), f588); f776 = MUL_F(FRAC_CONST(0.7807372285720944), f774); f777 = MUL_C(COEF_CONST(1.4055967167144807), f283); y[27] = f775 + f776; y[36] = f777 - f776; f780 = f586 + f281; f781 = MUL_F(FRAC_CONST(-0.1213357227326675), f586); f782 = MUL_F(FRAC_CONST(0.7651672656224590), f780); f783 = MUL_C(COEF_CONST(1.4089988085122505), f281); y[28] = f781 + f782; y[35] = f783 - f782; f786 = f584 + f279; f787 = MUL_F(FRAC_CONST(-0.0867206169332875), f584); f788 = MUL_F(FRAC_CONST(0.7491363945234593), f786); f789 = MUL_C(COEF_CONST(1.4115521721136310), f279); y[29] = f787 + f788; y[34] = f789 - f788; f792 = f582 + f277; f793 = MUL_F(FRAC_CONST(-0.0520532738769597), f582); f794 = MUL_F(FRAC_CONST(0.7326542716724128), f792); f795 = MUL_C(COEF_CONST(1.4132552694678659), f277); y[30] = f793 + f794; y[33] = f795 - f794; f798 = f580 + f275; f799 = MUL_F(FRAC_CONST(-0.0173545758748457), f580); f800 = MUL_F(FRAC_CONST(0.7157308252838186), f798); f801 = MUL_C(COEF_CONST(1.4141070746927915), f275); y[31] = f799 + f800; y[32] = f801 - f800; } void DST4_32(real_t *y, real_t *x) { real_t f0, f1, f2, f3, f4, f5, f6, f7, f8, f9; real_t f10, f11, f12, f13, f14, f15, f16, f17, f18, f19; real_t f20, f21, f22, f23, f24, f25, f26, f27, f28, f29; real_t f30, f31, f32, f33, f34, f35, f36, f37, f38, f39; real_t f40, f41, f42, f43, f44, f45, f46, f47, f48, f49; real_t f50, f51, f52, f53, f54, f55, f56, f57, f58, f59; real_t f60, f61, f62, f63, f64, f65, f66, f67, f68, f69; real_t f70, f71, f72, f73, f74, f75, f76, f77, f78, f79; real_t f80, f81, f82, f83, f84, f85, f86, f87, f88, f89; real_t f90, f91, f92, f93, f94, f95, f96, f97, f98, f99; real_t f100, f101, f102, f103, f104, f105, f106, f107, f108, f109; real_t f110, f111, f112, f113, f114, f115, f116, f117, f118, f119; real_t f120, f121, f122, f123, f124, f125, f126, f127, f128, f129; real_t f130, f131, f132, f133, f134, f135, f136, f137, f138, f139; real_t f140, f141, f142, f143, f144, f145, f146, f147, f148, f149; real_t f150, f151, f152, f153, f154, f155, f156, f157, f158, f159; real_t f160, f161, f162, f163, f164, f165, f166, f167, f168, f169; real_t f170, f171, f172, f173, f174, f175, f176, f177, f178, f179; real_t f180, f181, f182, f183, f184, f185, f186, f187, f188, f189; real_t f190, f191, f192, f193, f194, f195, f196, f197, f198, f199; real_t f200, f201, f202, f203, f204, f205, f206, f207, f208, f209; real_t f210, f211, f212, f213, f214, f215, f216, f217, f218, f219; real_t f220, f221, f222, f223, f224, f225, f226, f227, f228, f229; real_t f230, f231, f232, f233, f234, f235, f236, f237, f238, f239; real_t f240, f241, f242, f243, f244, f245, f246, f247, f248, f249; real_t f250, f251, f252, f253, f254, f255, f256, f257, f258, f259; real_t f260, f261, f262, f263, f264, f265, f266, f267, f268, f269; real_t f270, f271, f272, f273, f274, f275, f276, f277, f278, f279; real_t f280, f281, f282, f283, f284, f285, f286, f287, f288, f289; real_t f290, f291, f292, f293, f294, f295, f296, f297, f298, f299; real_t f300, f301, f302, f303, f304, f305, f306, f307, f308, f309; real_t f310, f311, f312, f313, f314, f315, f316, f317, f318, f319; real_t f320, f321, f322, f323, f324, f325, f326, f327, f328, f329; real_t f330, f331, f332, f333, f334, f335; f0 = x[0] - x[1]; f1 = x[2] - x[1]; f2 = x[2] - x[3]; f3 = x[4] - x[3]; f4 = x[4] - x[5]; f5 = x[6] - x[5]; f6 = x[6] - x[7]; f7 = x[8] - x[7]; f8 = x[8] - x[9]; f9 = x[10] - x[9]; f10 = x[10] - x[11]; f11 = x[12] - x[11]; f12 = x[12] - x[13]; f13 = x[14] - x[13]; f14 = x[14] - x[15]; f15 = x[16] - x[15]; f16 = x[16] - x[17]; f17 = x[18] - x[17]; f18 = x[18] - x[19]; f19 = x[20] - x[19]; f20 = x[20] - x[21]; f21 = x[22] - x[21]; f22 = x[22] - x[23]; f23 = x[24] - x[23]; f24 = x[24] - x[25]; f25 = x[26] - x[25]; f26 = x[26] - x[27]; f27 = x[28] - x[27]; f28 = x[28] - x[29]; f29 = x[30] - x[29]; f30 = x[30] - x[31]; f31 = MUL_F(FRAC_CONST(0.7071067811865476), f15); f32 = x[0] - f31; f33 = x[0] + f31; f34 = f7 + f23; f35 = MUL_C(COEF_CONST(1.3065629648763766), f7); f36 = MUL_F(FRAC_CONST(-0.9238795325112866), f34); f37 = MUL_F(FRAC_CONST(-0.5411961001461967), f23); f38 = f35 + f36; f39 = f37 - f36; f40 = f33 - f39; f41 = f33 + f39; f42 = f32 - f38; f43 = f32 + f38; f44 = f11 - f19; f45 = f11 + f19; f46 = MUL_F(FRAC_CONST(0.7071067811865476), f45); f47 = f3 - f46; f48 = f3 + f46; f49 = MUL_F(FRAC_CONST(0.7071067811865476), f44); f50 = f49 - f27; f51 = f49 + f27; f52 = f51 + f48; f53 = MUL_F(FRAC_CONST(-0.7856949583871021), f51); f54 = MUL_F(FRAC_CONST(0.9807852804032304), f52); f55 = MUL_C(COEF_CONST(1.1758756024193588), f48); f56 = f53 + f54; f57 = f55 - f54; f58 = f50 + f47; f59 = MUL_F(FRAC_CONST(-0.2758993792829430), f50); f60 = MUL_F(FRAC_CONST(0.8314696123025452), f58); f61 = MUL_C(COEF_CONST(1.3870398453221475), f47); f62 = f59 + f60; f63 = f61 - f60; f64 = f41 - f56; f65 = f41 + f56; f66 = f43 - f62; f67 = f43 + f62; f68 = f42 - f63; f69 = f42 + f63; f70 = f40 - f57; f71 = f40 + f57; f72 = f5 - f9; f73 = f5 + f9; f74 = f13 - f17; f75 = f13 + f17; f76 = f21 - f25; f77 = f21 + f25; f78 = MUL_F(FRAC_CONST(0.7071067811865476), f75); f79 = f1 - f78; f80 = f1 + f78; f81 = f73 + f77; f82 = MUL_C(COEF_CONST(1.3065629648763766), f73); f83 = MUL_F(FRAC_CONST(-0.9238795325112866), f81); f84 = MUL_F(FRAC_CONST(-0.5411961001461967), f77); f85 = f82 + f83; f86 = f84 - f83; f87 = f80 - f86; f88 = f80 + f86; f89 = f79 - f85; f90 = f79 + f85; f91 = MUL_F(FRAC_CONST(0.7071067811865476), f74); f92 = f29 - f91; f93 = f29 + f91; f94 = f76 + f72; f95 = MUL_C(COEF_CONST(1.3065629648763766), f76); f96 = MUL_F(FRAC_CONST(-0.9238795325112866), f94); f97 = MUL_F(FRAC_CONST(-0.5411961001461967), f72); f98 = f95 + f96; f99 = f97 - f96; f100 = f93 - f99; f101 = f93 + f99; f102 = f92 - f98; f103 = f92 + f98; f104 = f101 + f88; f105 = MUL_F(FRAC_CONST(-0.8971675863426361), f101); f106 = MUL_F(FRAC_CONST(0.9951847266721968), f104); f107 = MUL_C(COEF_CONST(1.0932018670017576), f88); f108 = f105 + f106; f109 = f107 - f106; f110 = f90 - f103; f111 = MUL_F(FRAC_CONST(-0.6666556584777466), f103); f112 = MUL_F(FRAC_CONST(0.9569403357322089), f110); f113 = MUL_C(COEF_CONST(1.2472250129866713), f90); f114 = f112 - f111; f115 = f113 - f112; f116 = f102 + f89; f117 = MUL_F(FRAC_CONST(-0.4105245275223571), f102); f118 = MUL_F(FRAC_CONST(0.8819212643483549), f116); f119 = MUL_C(COEF_CONST(1.3533180011743529), f89); f120 = f117 + f118; f121 = f119 - f118; f122 = f87 - f100; f123 = MUL_F(FRAC_CONST(-0.1386171691990915), f100); f124 = MUL_F(FRAC_CONST(0.7730104533627370), f122); f125 = MUL_C(COEF_CONST(1.4074037375263826), f87); f126 = f124 - f123; f127 = f125 - f124; f128 = f65 - f108; f129 = f65 + f108; f130 = f67 - f114; f131 = f67 + f114; f132 = f69 - f120; f133 = f69 + f120; f134 = f71 - f126; f135 = f71 + f126; f136 = f70 - f127; f137 = f70 + f127; f138 = f68 - f121; f139 = f68 + f121; f140 = f66 - f115; f141 = f66 + f115; f142 = f64 - f109; f143 = f64 + f109; f144 = f0 + f30; f145 = MUL_C(COEF_CONST(1.0478631305325901), f0); f146 = MUL_F(FRAC_CONST(-0.9987954562051724), f144); f147 = MUL_F(FRAC_CONST(-0.9497277818777548), f30); f148 = f145 + f146; f149 = f147 - f146; f150 = f4 + f26; f151 = MUL_F(FRAC_CONST(1.2130114330978077), f4); f152 = MUL_F(FRAC_CONST(-0.9700312531945440), f150); f153 = MUL_F(FRAC_CONST(-0.7270510732912803), f26); f154 = f151 + f152; f155 = f153 - f152; f156 = f8 + f22; f157 = MUL_C(COEF_CONST(1.3315443865537255), f8); f158 = MUL_F(FRAC_CONST(-0.9039892931234433), f156); f159 = MUL_F(FRAC_CONST(-0.4764341996931612), f22); f160 = f157 + f158; f161 = f159 - f158; f162 = f12 + f18; f163 = MUL_C(COEF_CONST(1.3989068359730781), f12); f164 = MUL_F(FRAC_CONST(-0.8032075314806453), f162); f165 = MUL_F(FRAC_CONST(-0.2075082269882124), f18); f166 = f163 + f164; f167 = f165 - f164; f168 = f16 + f14; f169 = MUL_C(COEF_CONST(1.4125100802019777), f16); f170 = MUL_F(FRAC_CONST(-0.6715589548470187), f168); f171 = MUL_F(FRAC_CONST(0.0693921705079402), f14); f172 = f169 + f170; f173 = f171 - f170; f174 = f20 + f10; f175 = MUL_C(COEF_CONST(1.3718313541934939), f20); f176 = MUL_F(FRAC_CONST(-0.5141027441932219), f174); f177 = MUL_F(FRAC_CONST(0.3436258658070501), f10); f178 = f175 + f176; f179 = f177 - f176; f180 = f24 + f6; f181 = MUL_C(COEF_CONST(1.2784339185752409), f24); f182 = MUL_F(FRAC_CONST(-0.3368898533922200), f180); f183 = MUL_F(FRAC_CONST(0.6046542117908008), f6); f184 = f181 + f182; f185 = f183 - f182; f186 = f28 + f2; f187 = MUL_C(COEF_CONST(1.1359069844201433), f28); f188 = MUL_F(FRAC_CONST(-0.1467304744553624), f186); f189 = MUL_F(FRAC_CONST(0.8424460355094185), f2); f190 = f187 + f188; f191 = f189 - f188; f192 = f149 - f173; f193 = f149 + f173; f194 = f148 - f172; f195 = f148 + f172; f196 = f155 - f179; f197 = f155 + f179; f198 = f154 - f178; f199 = f154 + f178; f200 = f161 - f185; f201 = f161 + f185; f202 = f160 - f184; f203 = f160 + f184; f204 = f167 - f191; f205 = f167 + f191; f206 = f166 - f190; f207 = f166 + f190; f208 = f192 + f194; f209 = MUL_C(COEF_CONST(1.1758756024193588), f192); f210 = MUL_F(FRAC_CONST(-0.9807852804032304), f208); f211 = MUL_F(FRAC_CONST(-0.7856949583871021), f194); f212 = f209 + f210; f213 = f211 - f210; f214 = f196 + f198; f215 = MUL_C(COEF_CONST(1.3870398453221475), f196); f216 = MUL_F(FRAC_CONST(-0.5555702330196022), f214); f217 = MUL_F(FRAC_CONST(0.2758993792829431), f198); f218 = f215 + f216; f219 = f217 - f216; f220 = f200 + f202; f221 = MUL_F(FRAC_CONST(0.7856949583871022), f200); f222 = MUL_F(FRAC_CONST(0.1950903220161283), f220); f223 = MUL_C(COEF_CONST(1.1758756024193586), f202); f224 = f221 + f222; f225 = f223 - f222; f226 = f204 + f206; f227 = MUL_F(FRAC_CONST(-0.2758993792829430), f204); f228 = MUL_F(FRAC_CONST(0.8314696123025452), f226); f229 = MUL_C(COEF_CONST(1.3870398453221475), f206); f230 = f227 + f228; f231 = f229 - f228; f232 = f193 - f201; f233 = f193 + f201; f234 = f195 - f203; f235 = f195 + f203; f236 = f197 - f205; f237 = f197 + f205; f238 = f199 - f207; f239 = f199 + f207; f240 = f213 - f225; f241 = f213 + f225; f242 = f212 - f224; f243 = f212 + f224; f244 = f219 - f231; f245 = f219 + f231; f246 = f218 - f230; f247 = f218 + f230; f248 = f232 + f234; f249 = MUL_C(COEF_CONST(1.3065629648763766), f232); f250 = MUL_F(FRAC_CONST(-0.9238795325112866), f248); f251 = MUL_F(FRAC_CONST(-0.5411961001461967), f234); f252 = f249 + f250; f253 = f251 - f250; f254 = f236 + f238; f255 = MUL_F(FRAC_CONST(0.5411961001461969), f236); f256 = MUL_F(FRAC_CONST(0.3826834323650898), f254); f257 = MUL_C(COEF_CONST(1.3065629648763766), f238); f258 = f255 + f256; f259 = f257 - f256; f260 = f240 + f242; f261 = MUL_C(COEF_CONST(1.3065629648763766), f240); f262 = MUL_F(FRAC_CONST(-0.9238795325112866), f260); f263 = MUL_F(FRAC_CONST(-0.5411961001461967), f242); f264 = f261 + f262; f265 = f263 - f262; f266 = f244 + f246; f267 = MUL_F(FRAC_CONST(0.5411961001461969), f244); f268 = MUL_F(FRAC_CONST(0.3826834323650898), f266); f269 = MUL_C(COEF_CONST(1.3065629648763766), f246); f270 = f267 + f268; f271 = f269 - f268; f272 = f233 - f237; f273 = f233 + f237; f274 = f235 - f239; f275 = f235 + f239; f276 = f253 - f259; f277 = f253 + f259; f278 = f252 - f258; f279 = f252 + f258; f280 = f241 - f245; f281 = f241 + f245; f282 = f243 - f247; f283 = f243 + f247; f284 = f265 - f271; f285 = f265 + f271; f286 = f264 - f270; f287 = f264 + f270; f288 = f272 - f274; f289 = f272 + f274; f290 = MUL_F(FRAC_CONST(0.7071067811865474), f288); f291 = MUL_F(FRAC_CONST(0.7071067811865474), f289); f292 = f276 - f278; f293 = f276 + f278; f294 = MUL_F(FRAC_CONST(0.7071067811865474), f292); f295 = MUL_F(FRAC_CONST(0.7071067811865474), f293); f296 = f280 - f282; f297 = f280 + f282; f298 = MUL_F(FRAC_CONST(0.7071067811865474), f296); f299 = MUL_F(FRAC_CONST(0.7071067811865474), f297); f300 = f284 - f286; f301 = f284 + f286; f302 = MUL_F(FRAC_CONST(0.7071067811865474), f300); f303 = MUL_F(FRAC_CONST(0.7071067811865474), f301); f304 = f129 - f273; f305 = f129 + f273; f306 = f131 - f281; f307 = f131 + f281; f308 = f133 - f285; f309 = f133 + f285; f310 = f135 - f277; f311 = f135 + f277; f312 = f137 - f295; f313 = f137 + f295; f314 = f139 - f303; f315 = f139 + f303; f316 = f141 - f299; f317 = f141 + f299; f318 = f143 - f291; f319 = f143 + f291; f320 = f142 - f290; f321 = f142 + f290; f322 = f140 - f298; f323 = f140 + f298; f324 = f138 - f302; f325 = f138 + f302; f326 = f136 - f294; f327 = f136 + f294; f328 = f134 - f279; f329 = f134 + f279; f330 = f132 - f287; f331 = f132 + f287; f332 = f130 - f283; f333 = f130 + f283; f334 = f128 - f275; f335 = f128 + f275; y[31] = MUL_F(FRAC_CONST(0.5001506360206510), f305); y[30] = MUL_F(FRAC_CONST(0.5013584524464084), f307); y[29] = MUL_F(FRAC_CONST(0.5037887256810443), f309); y[28] = MUL_F(FRAC_CONST(0.5074711720725553), f311); y[27] = MUL_F(FRAC_CONST(0.5124514794082247), f313); y[26] = MUL_F(FRAC_CONST(0.5187927131053328), f315); y[25] = MUL_F(FRAC_CONST(0.5265773151542700), f317); y[24] = MUL_F(FRAC_CONST(0.5359098169079920), f319); y[23] = MUL_F(FRAC_CONST(0.5469204379855088), f321); y[22] = MUL_F(FRAC_CONST(0.5597698129470802), f323); y[21] = MUL_F(FRAC_CONST(0.5746551840326600), f325); y[20] = MUL_F(FRAC_CONST(0.5918185358574165), f327); y[19] = MUL_F(FRAC_CONST(0.6115573478825099), f329); y[18] = MUL_F(FRAC_CONST(0.6342389366884031), f331); y[17] = MUL_F(FRAC_CONST(0.6603198078137061), f333); y[16] = MUL_F(FRAC_CONST(0.6903721282002123), f335); y[15] = MUL_F(FRAC_CONST(0.7251205223771985), f334); y[14] = MUL_F(FRAC_CONST(0.7654941649730891), f332); y[13] = MUL_F(FRAC_CONST(0.8127020908144905), f330); y[12] = MUL_F(FRAC_CONST(0.8683447152233481), f328); y[11] = MUL_F(FRAC_CONST(0.9345835970364075), f326); y[10] = MUL_C(COEF_CONST(1.0144082649970547), f324); y[9] = MUL_C(COEF_CONST(1.1120716205797176), f322); y[8] = MUL_C(COEF_CONST(1.2338327379765710), f320); y[7] = MUL_C(COEF_CONST(1.3892939586328277), f318); y[6] = MUL_C(COEF_CONST(1.5939722833856311), f316); y[5] = MUL_C(COEF_CONST(1.8746759800084078), f314); y[4] = MUL_C(COEF_CONST(2.2820500680051619), f312); y[3] = MUL_C(COEF_CONST(2.9246284281582162), f310); y[2] = MUL_C(COEF_CONST(4.0846110781292477), f308); y[1] = MUL_C(COEF_CONST(6.7967507116736332), f306); y[0] = MUL_R(REAL_CONST(20.3738781672314530), f304); } #endif #endif