📄 ftw_64.c
字号:
/* * Copyright (c) 1997-1999, 2003 Massachusetts Institute of Technology * * 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 * *//* This file was automatically generated --- DO NOT EDIT *//* Generated on Mon Mar 24 02:07:48 EST 2003 */#include "fftw-int.h"#include "fftw.h"/* Generated by: /homee/stevenj/cvs/fftw/gensrc/genfft -magic-alignment-check -magic-twiddle-load-all -magic-variables 4 -magic-loopi -twiddle 64 *//* * This function contains 1038 FP additions, 500 FP multiplications, * (or, 808 additions, 270 multiplications, 230 fused multiply/add), * 162 stack variables, and 256 memory accesses */static const fftw_real K290284677 =FFTW_KONST(+0.290284677254462367636192375817395274691476278);static const fftw_real K956940335 =FFTW_KONST(+0.956940335732208864935797886980269969482849206);static const fftw_real K881921264 =FFTW_KONST(+0.881921264348355029712756863660388349508442621);static const fftw_real K471396736 =FFTW_KONST(+0.471396736825997648556387625905254377657460319);static const fftw_real K555570233 =FFTW_KONST(+0.555570233019602224742830813948532874374937191);static const fftw_real K831469612 =FFTW_KONST(+0.831469612302545237078788377617905756738560812);static const fftw_real K773010453 =FFTW_KONST(+0.773010453362736960810906609758469800971041293);static const fftw_real K634393284 =FFTW_KONST(+0.634393284163645498215171613225493370675687095);static const fftw_real K098017140 =FFTW_KONST(+0.098017140329560601994195563888641845861136673);static const fftw_real K995184726 =FFTW_KONST(+0.995184726672196886244836953109479921575474869);static const fftw_real K980785280 =FFTW_KONST(+0.980785280403230449126182236134239036973933731);static const fftw_real K195090322 =FFTW_KONST(+0.195090322016128267848284868477022240927691618);static const fftw_real K707106781 =FFTW_KONST(+0.707106781186547524400844362104849039284835938);static const fftw_real K923879532 =FFTW_KONST(+0.923879532511286756128183189396788286822416626);static const fftw_real K382683432 =FFTW_KONST(+0.382683432365089771728459984030398866761344562);/* * Generator Id's : * $Id: exprdag.ml,v 1.43 2003/03/16 23:43:46 stevenj Exp $ * $Id: fft.ml,v 1.44 2003/03/16 23:43:46 stevenj Exp $ * $Id: to_c.ml,v 1.26 2003/03/16 23:43:46 stevenj Exp $ */void fftw_twiddle_64(fftw_complex *A, const fftw_complex *W, int iostride, int m, int dist){ int i; fftw_complex *inout; inout = A; for (i = m; i > 0; i = i - 1, inout = inout + dist, W = W + 63) { fftw_real tmp19; fftw_real tmp791; fftw_real tmp1109; fftw_real tmp1139; fftw_real tmp1047; fftw_real tmp1077; fftw_real tmp383; fftw_real tmp655; fftw_real tmp66; fftw_real tmp800; fftw_real tmp908; fftw_real tmp956; fftw_real tmp406; fftw_real tmp608; fftw_real tmp662; fftw_real tmp744; fftw_real tmp42; fftw_real tmp1076; fftw_real tmp794; fftw_real tmp1042; fftw_real tmp394; fftw_real tmp1106; fftw_real tmp658; fftw_real tmp1138; fftw_real tmp329; fftw_real tmp983; fftw_real tmp863; fftw_real tmp927; fftw_real tmp990; fftw_real tmp1026; fftw_real tmp880; fftw_real tmp930; fftw_real tmp535; fftw_real tmp703; fftw_real tmp576; fftw_real tmp714; fftw_real tmp579; fftw_real tmp704; fftw_real tmp546; fftw_real tmp715; fftw_real tmp376; fftw_real tmp991; fftw_real tmp868; fftw_real tmp882; fftw_real tmp986; fftw_real tmp1027; fftw_real tmp873; fftw_real tmp881; fftw_real tmp558; fftw_real tmp582; fftw_real tmp708; fftw_real tmp718; fftw_real tmp569; fftw_real tmp581; fftw_real tmp711; fftw_real tmp717; fftw_real tmp89; fftw_real tmp805; fftw_real tmp909; fftw_real tmp957; fftw_real tmp417; fftw_real tmp609; fftw_real tmp665; fftw_real tmp745; fftw_real tmp161; fftw_real tmp184; fftw_real tmp965; fftw_real tmp823; fftw_real tmp915; fftw_real tmp966; fftw_real tmp967; fftw_real tmp968; fftw_real tmp828; fftw_real tmp916; fftw_real tmp451; fftw_real tmp678; fftw_real tmp468; fftw_real tmp675; fftw_real tmp471; fftw_real tmp679; fftw_real tmp462; fftw_real tmp676; fftw_real tmp114; fftw_real tmp137; fftw_real tmp963; fftw_real tmp812; fftw_real tmp912; fftw_real tmp960; fftw_real tmp961; fftw_real tmp962; fftw_real tmp817; fftw_real tmp913; fftw_real tmp424; fftw_real tmp668; fftw_real tmp441; fftw_real tmp671; fftw_real tmp444; fftw_real tmp669; fftw_real tmp435; fftw_real tmp672; fftw_real tmp234; fftw_real tmp977; fftw_real tmp836; fftw_real tmp923; fftw_real tmp974; fftw_real tmp1021; fftw_real tmp853; fftw_real tmp920; fftw_real tmp480; fftw_real tmp684; fftw_real tmp521; fftw_real tmp695; fftw_real tmp524; fftw_real tmp685; fftw_real tmp491; fftw_real tmp696; fftw_real tmp281; fftw_real tmp975; fftw_real tmp841; fftw_real tmp855; fftw_real tmp980; fftw_real tmp1022; fftw_real tmp846; fftw_real tmp854; fftw_real tmp503; fftw_real tmp527; fftw_real tmp689; fftw_real tmp699; fftw_real tmp514; fftw_real tmp526; fftw_real tmp692; fftw_real tmp698; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp1; fftw_real tmp1045; fftw_real tmp6; fftw_real tmp1044; fftw_real tmp12; fftw_real tmp380; fftw_real tmp17; fftw_real tmp381; ASSERT_ALIGNED_DOUBLE; tmp1 = c_re(inout[0]); tmp1045 = c_im(inout[0]); { fftw_real tmp3; fftw_real tmp5; fftw_real tmp2; fftw_real tmp4; ASSERT_ALIGNED_DOUBLE; tmp3 = c_re(inout[32 * iostride]); tmp5 = c_im(inout[32 * iostride]); tmp2 = c_re(W[31]); tmp4 = c_im(W[31]); tmp6 = (tmp2 * tmp3) - (tmp4 * tmp5); tmp1044 = (tmp4 * tmp3) + (tmp2 * tmp5); } { fftw_real tmp9; fftw_real tmp11; fftw_real tmp8; fftw_real tmp10; ASSERT_ALIGNED_DOUBLE; tmp9 = c_re(inout[16 * iostride]); tmp11 = c_im(inout[16 * iostride]); tmp8 = c_re(W[15]); tmp10 = c_im(W[15]); tmp12 = (tmp8 * tmp9) - (tmp10 * tmp11); tmp380 = (tmp10 * tmp9) + (tmp8 * tmp11); } { fftw_real tmp14; fftw_real tmp16; fftw_real tmp13; fftw_real tmp15; ASSERT_ALIGNED_DOUBLE; tmp14 = c_re(inout[48 * iostride]); tmp16 = c_im(inout[48 * iostride]); tmp13 = c_re(W[47]); tmp15 = c_im(W[47]); tmp17 = (tmp13 * tmp14) - (tmp15 * tmp16); tmp381 = (tmp15 * tmp14) + (tmp13 * tmp16); } { fftw_real tmp7; fftw_real tmp18; fftw_real tmp1107; fftw_real tmp1108; ASSERT_ALIGNED_DOUBLE; tmp7 = tmp1 + tmp6; tmp18 = tmp12 + tmp17; tmp19 = tmp7 + tmp18; tmp791 = tmp7 - tmp18; tmp1107 = tmp1045 - tmp1044; tmp1108 = tmp12 - tmp17; tmp1109 = tmp1107 - tmp1108; tmp1139 = tmp1108 + tmp1107; } { fftw_real tmp1043; fftw_real tmp1046; fftw_real tmp379; fftw_real tmp382; ASSERT_ALIGNED_DOUBLE; tmp1043 = tmp380 + tmp381; tmp1046 = tmp1044 + tmp1045; tmp1047 = tmp1043 + tmp1046; tmp1077 = tmp1046 - tmp1043; tmp379 = tmp1 - tmp6; tmp382 = tmp380 - tmp381; tmp383 = tmp379 - tmp382; tmp655 = tmp379 + tmp382; } } { fftw_real tmp54; fftw_real tmp401; fftw_real tmp398; fftw_real tmp796; fftw_real tmp65; fftw_real tmp399; fftw_real tmp404; fftw_real tmp797; fftw_real tmp798; fftw_real tmp799; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp48; fftw_real tmp396; fftw_real tmp53; fftw_real tmp397; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp45; fftw_real tmp47; fftw_real tmp44; fftw_real tmp46; ASSERT_ALIGNED_DOUBLE; tmp45 = c_re(inout[4 * iostride]); tmp47 = c_im(inout[4 * iostride]); tmp44 = c_re(W[3]); tmp46 = c_im(W[3]); tmp48 = (tmp44 * tmp45) - (tmp46 * tmp47); tmp396 = (tmp46 * tmp45) + (tmp44 * tmp47); } { fftw_real tmp50; fftw_real tmp52; fftw_real tmp49; fftw_real tmp51; ASSERT_ALIGNED_DOUBLE; tmp50 = c_re(inout[36 * iostride]); tmp52 = c_im(inout[36 * iostride]); tmp49 = c_re(W[35]); tmp51 = c_im(W[35]); tmp53 = (tmp49 * tmp50) - (tmp51 * tmp52); tmp397 = (tmp51 * tmp50) + (tmp49 * tmp52); } tmp54 = tmp48 + tmp53; tmp401 = tmp48 - tmp53; tmp398 = tmp396 - tmp397; tmp796 = tmp396 + tmp397; } { fftw_real tmp59; fftw_real tmp402; fftw_real tmp64; fftw_real tmp403; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp56; fftw_real tmp58; fftw_real tmp55; fftw_real tmp57; ASSERT_ALIGNED_DOUBLE; tmp56 = c_re(inout[20 * iostride]); tmp58 = c_im(inout[20 * iostride]); tmp55 = c_re(W[19]); tmp57 = c_im(W[19]); tmp59 = (tmp55 * tmp56) - (tmp57 * tmp58); tmp402 = (tmp57 * tmp56) + (tmp55 * tmp58); } { fftw_real tmp61; fftw_real tmp63; fftw_real tmp60; fftw_real tmp62; ASSERT_ALIGNED_DOUBLE; tmp61 = c_re(inout[52 * iostride]); tmp63 = c_im(inout[52 * iostride]); tmp60 = c_re(W[51]); tmp62 = c_im(W[51]); tmp64 = (tmp60 * tmp61) - (tmp62 * tmp63); tmp403 = (tmp62 * tmp61) + (tmp60 * tmp63); } tmp65 = tmp59 + tmp64; tmp399 = tmp59 - tmp64; tmp404 = tmp402 - tmp403; tmp797 = tmp402 + tmp403; } tmp66 = tmp54 + tmp65; tmp798 = tmp796 - tmp797; tmp799 = tmp54 - tmp65; tmp800 = tmp798 - tmp799; tmp908 = tmp799 + tmp798; tmp956 = tmp796 + tmp797; { fftw_real tmp400; fftw_real tmp405; fftw_real tmp660; fftw_real tmp661; ASSERT_ALIGNED_DOUBLE; tmp400 = tmp398 + tmp399; tmp405 = tmp401 - tmp404; tmp406 = (K382683432 * tmp400) - (K923879532 * tmp405); tmp608 = (K923879532 * tmp400) + (K382683432 * tmp405); tmp660 = tmp398 - tmp399; tmp661 = tmp401 + tmp404; tmp662 = (K923879532 * tmp660) - (K382683432 * tmp661); tmp744 = (K382683432 * tmp660) + (K923879532 * tmp661); } } { fftw_real tmp24; fftw_real tmp384; fftw_real tmp29; fftw_real tmp385; fftw_real tmp386; fftw_real tmp387; fftw_real tmp35; fftw_real tmp390; fftw_real tmp40; fftw_real tmp391; fftw_real tmp389; fftw_real tmp392; ASSERT_ALIGNED_DOUBLE; { fftw_real tmp21; fftw_real tmp23; fftw_real tmp20; fftw_real tmp22; ASSERT_ALIGNED_DOUBLE; tmp21 = c_re(inout[8 * iostride]); tmp23 = c_im(inout[8 * iostride]); tmp20 = c_re(W[7]); tmp22 = c_im(W[7]); tmp24 = (tmp20 * tmp21) - (tmp22 * tmp23); tmp384 = (tmp22 * tmp21) + (tmp20 * tmp23); } { fftw_real tmp26; fftw_real tmp28; fftw_real tmp25; fftw_real tmp27; ASSERT_ALIGNED_DOUBLE; tmp26 = c_re(inout[40 * iostride]); tmp28 = c_im(inout[40 * iostride]); tmp25 = c_re(W[39]); tmp27 = c_im(W[39]); tmp29 = (tmp25 * tmp26) - (tmp27 * tmp28); tmp385 = (tmp27 * tmp26) + (tmp25 * tmp28); } tmp386 = tmp384 - tmp385; tmp387 = tmp24 - tmp29; { fftw_real tmp32; fftw_real tmp34; fftw_real tmp31; fftw_real tmp33; ASSERT_ALIGNED_DOUBLE; tmp32 = c_re(inout[56 * iostride]); tmp34 = c_im(inout[56 * iostride]); tmp31 = c_re(W[55]); tmp33 = c_im(W[55]); tmp35 = (tmp31 * tmp32) - (tmp33 * tmp34); tmp390 = (tmp33 * tmp32) + (tmp31 * tmp34); } { fftw_real tmp37; fftw_real tmp39; fftw_real tmp36; fftw_real tmp38; ASSERT_ALIGNED_DOUBLE; tmp37 = c_re(inout[24 * iostride]); tmp39 = c_im(inout[24 * iostride]); tmp36 = c_re(W[23]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -