! File: fft29t.i90 ! Public domain 2004 James Van Buskirk subroutine fft29t(h) ! 598 adds, 282 muls complex(wp), intent(inout) :: h(0:28) real(wp) xr1s, xi1s, xr1_s, xi1_s real(wp) xrgd, xigd, xrg_d, xig_d real(wp) xro5, xio5, xro_5, xio_5 real(wp) xr7m, xi7m, xr7_m, xi7_m real(wp) xrp4, xip4, xrp_4, xip_4 real(wp) xrn6, xin6, xrn_6, xin_6 real(wp) xrk9, xik9, xrk_9, xik_9 real(wp) xrhc, xihc, xrh_c, xih_c real(wp) xrbi, xibi, xrb_i, xib_i real(wp) xr2r, xi2r, xr2_r, xi2_r real(wp) xr3q, xi3q, xr3_q, xi3_q real(wp) xrja, xija, xrj_a, xij_a real(wp) xref, xief, xre_f, xie_f real(wp) xrl8, xil8, xrl_8, xil_8 real(wp) xr1shc, xi1shc, xr1s_hc, xi1s_hc real(wp) xrgdbi, xigdbi, xrgd_bi, xigd_bi real(wp) xro52r, xio52r, xro5_2r, xio5_2r real(wp) xr7m3q, xi7m3q, xr7m_3q, xi7m_3q real(wp) xrp4ja, xip4ja, xrp4_ja, xip4_ja real(wp) xrn6ef, xin6ef, xrn6_ef, xin6_ef real(wp) xrk9l8, xik9l8, xrk9_l8, xik9_l8 real(wp) xr1shcgdbi, xi1shcgdbi, xr1sgd_hcbi, xi1sgd_hcbi real(wp) xro52r7m3q, xio52r7m3q, xro57m_2r3q, xio57m_2r3q real(wp) xrp4jan6ef, xip4jan6ef, xrp4n6_jaef, xip4n6_jaef real(wp) xr0, xi0, yr0, yi0, yrlej32bhknp7og1, yilej32bhknp7og1 real(wp) yrlken, yilken, yrlk, yilk, yren, yien real(wp) yrjp37, yijp37, yrjp, yijp, yr37, yi37 real(wp) yr2obg, yi2obg, yr2o, yi2o, yrbg, yibg real(wp) yrh1, yih1, yrh_1, yih_1 real(wp) yrle_kn, yile_kn, yrl_k, yil_k, yre_n, yie_n real(wp) yrj3_p7, yij3_p7, yrj_p, yij_p, yr3_7, yi3_7 real(wp) yr2b_og, yi2b_og, yr2_o, yi2_o, yrb_g, yib_g real(wp) yrl, yil, yrk, yik, yre, yie, yrn, yin real(wp) yrj, yij, yrp, yip, yr3, yi3, yr7, yi7 real(wp) yr2, yi2, yro, yio, yrb, yib, yrg, yig real(wp) yrh, yih, yr1, yi1 real(wp) xrgk_d9, xigk_d9, xrg9_dk, xig9_dk real(wp) xron_56, xion_56, xro6_5n, xio6_5n real(wp) xrp7_4m, xip7_4m, xrpm_47, xipm_47 real(wp) xrgkonp7_d9564m, xigkonp7_d9564m, ur0, ui0 real(wp) ur4, ui4, ur2, ui2, ur1, ui1 real(wp) ur3, ui3, ur5, ui5, ur6, ui6 real(wp) xrbl_i8, xibl_i8, xrb8_il, xib8_il real(wp) xr2e_rf, xi2e_rf, xr2f_re, xi2f_re real(wp) xrj3_aq, xij3_aq, xrjq_a3, xijq_a3 real(wp) xrb23jel_irqaf8, xib23jel_irqaf8 real(wp) ur7, ui7, urb, uib, ur9, ui9, ur8, ui8 real(wp) ura, uia, urc, uic, urd, uid real(wp) vr0, vi0, vr7, vi7 real(wp) ur2c, ui2c, ur2_c, ui2_c, ur59, ui59, ur5_9, ui5_9 real(wp) vr2c, vi2c, vr2_c, vi2_c, vr59, vi59, vr5_9, vi5_9 real(wp) vr2, vi2, vrc, vic, vr5, vi5, vr9, vi9 real(wp) ur1d, ui1d, ur1_d, ui1_d, ur68, ui68, ur6_8, ui6_8 real(wp) vr1d, vi1d, vr1_d, vi1_d, vr68, vi68, vr6_8, vi6_8 real(wp) vr1, vi1, vrd, vid, vr6, vi6, vr8, vi8 real(wp) ur4a, ui4a, ur4_a, ui4_a, ur3b, ui3b, ur3_b, ui3_b real(wp) vr4a, vi4a, vr4_a, vi4_a, vr3b, vi3b, vr3_b, vi3_b real(wp) vr4, vi4, vra, via, vr3, vi3, vrb, vib real(wp) vr421, vi421, vrb98, vib98 real(wp) zrl, zil, zrk, zik real(wp) zrej32bh, ziej32bh, zrnp7og1, zinp7og1 real(wp) zreh, zieh, zre_h, zie_h real(wp) zrn1, zin1, zrn_1, zin_1 real(wp) zrjb, zijb, zrj_b, zij_b real(wp) zrpg, zipg, zrp_g, zip_g real(wp) zr32, zi32, zr2_3, zi2_3 real(wp) zr7o, zi7o, zro_7, zio_7 real(wp) zre, zie, zrh, zih, zrn, zin real(wp) zr1, zi1, zrj, zij, zrb, zib real(wp) zrp, zip, zrg, zig, zr2, zi2 real(wp) zr3, zi3, zro, zio, zr7, zi7 real(wp) xrsigma0, xisigma0 real(wp) xrsigma1, xisigma1, xr00, xi00 real(wp), parameter :: c70 = -2.30476487096248650524115022354685580_wp real(wp), parameter :: c74 = 2.07652139657233656716353886148584110_wp real(wp), parameter :: c71_4 = -3.51351878929970683145315241933597940_wp real(wp), parameter :: c72_4 = -1.56366296493605961741688905334811620_wp real(wp), parameter :: s71_4 = -1.80193773580483825247220463901489060_wp real(wp), parameter :: s72_4 = -2.24697960371746706105000976800848000_wp real(wp), parameter :: clk = -.26596007594633954170412036597579272_wp real(wp), parameter :: cl_k = .10417807939357481515986030163937160_wp real(wp), parameter :: cbk_gl = .00665076023626097790797425488195246_wp real(wp), parameter :: c3k_7l = .26679899916653829476422365862826316_wp real(wp), parameter :: cjk_pl = -.70846475446567981938566083291924915_wp real(wp), parameter :: c2k_ol = .11540541009200864204210050630015878_wp real(wp), parameter :: ch1_lk = .32584176571758826104669607146203719_wp real(wp), parameter :: chk_1l = -1.02091694533241277902551255903099050_wp real(wp), parameter :: cbg_lk = -.57086425560662710950204908947404342_wp real(wp), parameter :: c2o_lk = .95395200613171313812232084806477997_wp real(wp), parameter :: c37_lk = .69107606309187017777811265221802619_wp real(wp), parameter :: cjp_lk = .30905968565606217665997996888206121_wp real(wp), parameter :: cen_lk = -.09734473336622985217621788932231223_wp real(wp), parameter :: cek_nl = -.73501122723536503023482476222081819_wp real(wp), parameter :: ch1_bg = .89670602132421537054874516093608051_wp real(wp), parameter :: chg_1b = -1.02756770556867375693348681391294300_wp real(wp), parameter :: c2o_bg = 1.52481626173834024762436993753882340_wp real(wp), parameter :: c2g_ob = .10875464985574766413412625141820630_wp real(wp), parameter :: c2o_37 = .26287594303984296034420819584675383_wp real(wp), parameter :: c27_o3 = -.15139358907452965272212315232810438_wp real(wp), parameter :: cjp_37 = -.38201637743580800111813268333596502_wp real(wp), parameter :: cj7_p3 = -.97526375363221811414988449154751232_wp real(wp), parameter :: c37_jp = .38201637743580800111813268333596507_wp real(wp), parameter :: cen_jp = -.40640441902229202883619785820437345_wp real(wp), parameter :: cep_nj = -.02654647276968521084916392930156904_wp real(wp), parameter :: csigma0 = -.24999999999999999999999999999999981_wp real(wp), parameter :: csigma1 = -1.34629120178362600781267762288508220_wp real(wp), parameter :: d11 = -.07274108340629194980022803754968447_wp real(wp), parameter :: d21 = -.37771406971192940419421466346130275_wp real(wp), parameter :: d33 = -.07005457966705009833149413049865331_wp real(wp), parameter :: d36 = .01833103166883883322096548080339060_wp real(wp), parameter :: d44 = .01975709253014276825984497650229275_wp real(wp), parameter :: d45 = .06966583200627419559504555755579550_wp real(wp), parameter :: d77 = -.06882568437207026183044006766268658_wp real(wp), parameter :: d7a = -.02250990948642851858644829224010518_wp real(wp), parameter :: d88 = .06178381409880914272571837237579364_wp real(wp), parameter :: d89 = -.03776812372589925049856620807647118_wp real(wp), parameter :: dbb = -.07180130336386978857738492678709916_wp real(wp), parameter :: dbe = -.00939381124041686650475303796078708_wp real(wp), parameter :: dcc = -.04294058412938856271855820087993235_wp real(wp), parameter :: dcd = .05830760747104913046902306525867554_wp xr1s = real(h(1))+real(h(28)) xr1_s = real(h(1))-real(h(28)) xi1s = aimag(h(1))+aimag(h(28)) xi1_s = aimag(h(1))-aimag(h(28)) xrgd = real(h(16))+real(h(13)) xrg_d = real(h(16))-real(h(13)) xigd = aimag(h(16))+aimag(h(13)) xig_d = aimag(h(16))-aimag(h(13)) xro5 = real(h(24))+real(h(5)) xro_5 = real(h(24))-real(h(5)) xio5 = aimag(h(24))+aimag(h(5)) xio_5 = aimag(h(24))-aimag(h(5)) xr7m = real(h(7))+real(h(22)) xr7_m = real(h(7))-real(h(22)) xi7m = aimag(h(7))+aimag(h(22)) xi7_m = aimag(h(7))-aimag(h(22)) xrp4 = real(h(25))+real(h(4)) xrp_4 = real(h(25))-real(h(4)) xip4 = aimag(h(25))+aimag(h(4)) xip_4 = aimag(h(25))-aimag(h(4)) xrn6 = real(h(23))+real(h(6)) xrn_6 = real(h(23))-real(h(6)) xin6 = aimag(h(23))+aimag(h(6)) xin_6 = aimag(h(23))-aimag(h(6)) xrk9 = real(h(20))+real(h(9)) xrk_9 = real(h(20))-real(h(9)) xik9 = aimag(h(20))+aimag(h(9)) xik_9 = aimag(h(20))-aimag(h(9)) xrhc = real(h(17))+real(h(12)) xrh_c = real(h(17))-real(h(12)) xihc = aimag(h(17))+aimag(h(12)) xih_c = aimag(h(17))-aimag(h(12)) xrbi = real(h(11))+real(h(18)) xrb_i = real(h(11))-real(h(18)) xibi = aimag(h(11))+aimag(h(18)) xib_i = aimag(h(11))-aimag(h(18)) xr2r = real(h(2))+real(h(27)) xr2_r = real(h(2))-real(h(27)) xi2r = aimag(h(2))+aimag(h(27)) xi2_r = aimag(h(2))-aimag(h(27)) xr3q = real(h(3))+real(h(26)) xr3_q = real(h(3))-real(h(26)) xi3q = aimag(h(3))+aimag(h(26)) xi3_q = aimag(h(3))-aimag(h(26)) xrja = real(h(19))+real(h(10)) xrj_a = real(h(19))-real(h(10)) xija = aimag(h(19))+aimag(h(10)) xij_a = aimag(h(19))-aimag(h(10)) xref = real(h(14))+real(h(15)) xre_f = real(h(14))-real(h(15)) xief = aimag(h(14))+aimag(h(15)) xie_f = aimag(h(14))-aimag(h(15)) xrl8 = real(h(21))+real(h(8)) xrl_8 = real(h(21))-real(h(8)) xil8 = aimag(h(21))+aimag(h(8)) xil_8 = aimag(h(21))-aimag(h(8)) xr1shc = xr1s+xrhc xi1shc = xi1s+xihc xr1s_hc = xr1s-xrhc xi1s_hc = xi1s-xihc xrgdbi = xrgd+xrbi xigdbi = xigd+xibi xrgd_bi = xrgd-xrbi xigd_bi = xigd-xibi xro52r = xro5+xr2r xio52r = xio5+xi2r xro5_2r = xro5-xr2r xio5_2r = xio5-xi2r xr7m3q = xr7m+xr3q xi7m3q = xi7m+xi3q xr7m_3q = xr7m-xr3q xi7m_3q = xi7m-xi3q xrp4ja = xrp4+xrja xip4ja = xip4+xija xrp4_ja = xrp4-xrja xip4_ja = xip4-xija xrn6ef = xrn6+xref xin6ef = xin6+xief xrn6_ef = xrn6-xref xin6_ef = xin6-xief xrk9l8 = xrk9+xrl8 xik9l8 = xik9+xil8 xrk9_l8 = xrk9-xrl8 xik9_l8 = xik9-xil8 xr1shc = xr1shc-xrk9l8 xi1shc = xi1shc-xik9l8 xr1s_hc = xr1s_hc-xrk9_l8 xi1s_hc = xi1s_hc-xik9_l8 xrgdbi = xrgdbi-xrk9l8 xigdbi = xigdbi-xik9l8 xrgd_bi = xrgd_bi-xrk9_l8 xigd_bi = xigd_bi-xik9_l8 xro52r = xro52r-xrk9l8 xio52r = xio52r-xik9l8 xro5_2r = xro5_2r-xrk9_l8 xio5_2r = xio5_2r-xik9_l8 xr7m3q = xr7m3q-xrk9l8 xi7m3q = xi7m3q-xik9l8 xr7m_3q = xr7m_3q-xrk9_l8 xi7m_3q = xi7m_3q-xik9_l8 xrp4ja = xrp4ja-xrk9l8 xip4ja = xip4ja-xik9l8 xrp4_ja = xrp4_ja-xrk9_l8 xip4_ja = xip4_ja-xik9_l8 xrn6ef = xrn6ef-xrk9l8 xin6ef = xin6ef-xik9l8 xrn6_ef = xrn6_ef-xrk9_l8 xin6_ef = xin6_ef-xik9_l8 xr1shcgdbi = xr1shc+xrgdbi xi1shcgdbi = xi1shc+xigdbi xr1sgd_hcbi = xr1s_hc+xrgd_bi xi1sgd_hcbi = xi1s_hc+xigd_bi xro52r7m3q = xro52r+xr7m3q xio52r7m3q = xio52r+xi7m3q xro57m_2r3q = xro5_2r+xr7m_3q xio57m_2r3q = xio5_2r+xi7m_3q xrp4jan6ef = xrp4ja+xrn6ef xip4jan6ef = xip4ja+xin6ef xrp4n6_jaef = xrp4_ja+xrn6_ef xip4n6_jaef = xip4_ja+xin6_ef xr0 = xr1shcgdbi+xro52r7m3q+xrp4jan6ef xi0 = xi1shcgdbi+xio52r7m3q+xip4jan6ef xrsigma0 = xr0+7*xrk9l8 xisigma0 = xi0+7*xik9l8 yr0 = real(h(0))+xrsigma0 yi0 = aimag(h(0))+xisigma0 yrlej32bhknp7og1 = real(h(0))+clk*xr0+csigma0*xrk9l8 yilej32bhknp7og1 = aimag(h(0))+clk*xi0+csigma0*xik9l8 yrlken = yrlej32bhknp7og1+cbg_lk*xro52r7m3q+c37_lk*xrp4jan6ef yilken = yilej32bhknp7og1+cbg_lk*xio52r7m3q+c37_lk*xip4jan6ef yrlk = yrlken+ch1_lk*xrgdbi+c2o_bg*xr7m3q+cjp_37*xrn6ef yilk = yilken+ch1_lk*xigdbi+c2o_bg*xi7m3q+cjp_37*xin6ef yren = yrlken+cen_lk*xr1shc+ch1_bg*xro52r+c2o_37*xrp4ja yien = yilken+cen_lk*xi1shc+ch1_bg*xio52r+c2o_37*xip4ja yrjp37 = yrlej32bhknp7og1+cjp_lk*xr1shcgdbi+cbg_lk*xrp4jan6ef yijp37 = yilej32bhknp7og1+cjp_lk*xi1shcgdbi+cbg_lk*xip4jan6ef yrjp = yrjp37+cen_jp*xrgdbi+ch1_lk*xr7m3q+c2o_bg*xrn6ef yijp = yijp37+cen_jp*xigdbi+ch1_lk*xi7m3q+c2o_bg*xin6ef yr37 = yrjp37+c37_jp*xr1shc+cen_lk*xro52r+ch1_bg*xrp4ja yi37 = yijp37+c37_jp*xi1shc+cen_lk*xio52r+ch1_bg*xip4ja yr2obg = yrlej32bhknp7og1+c2o_lk*xr1shcgdbi+cjp_lk*xro52r7m3q yi2obg = yilej32bhknp7og1+c2o_lk*xi1shcgdbi+cjp_lk*xio52r7m3q yr2o = yr2obg-c2o_37*xrgdbi+cen_jp*xr7m3q+ch1_lk*xrn6ef yi2o = yi2obg-c2o_37*xigdbi+cen_jp*xi7m3q+ch1_lk*xin6ef yrbg = yr2obg-c2o_bg*xr1shc-cjp_37*xro52r+cen_lk*xrp4ja yibg = yi2obg-c2o_bg*xi1shc-cjp_37*xio52r+cen_lk*xip4ja yrh1 = csigma0*xrsigma0-(yrlk+yren+yrjp+yr37+yr2o+yrbg)+7*real(h(0)) yih1 = csigma0*xisigma0-(yilk+yien+yijp+yi37+yi2o+yibg)+7*aimag(h(0)) xr00 = xr1sgd_hcbi+xro57m_2r3q+xrp4n6_jaef xi00 = xi1sgd_hcbi+xio57m_2r3q+xip4n6_jaef xrsigma1 = xr00+7*xrk9_l8 xisigma1 = xi00+7*xik9_l8 xr00 = csigma1*xrk9_l8+cl_k*xr00 xi00 = csigma1*xik9_l8+cl_k*xi00 yrle_kn = xr00+cbk_gl*xro57m_2r3q+c3k_7l*xrp4n6_jaef yile_kn = xi00+cbk_gl*xio57m_2r3q+c3k_7l*xip4n6_jaef yrl_k = yrle_kn+chk_1l*xrgd_bi+c2g_ob*xr7m_3q+cj7_p3*xrn6_ef yil_k = yile_kn+chk_1l*xigd_bi+c2g_ob*xi7m_3q+cj7_p3*xin6_ef yre_n = yrle_kn+cek_nl*xr1s_hc+chg_1b*xro5_2r+c27_o3*xrp4_ja yie_n = yile_kn+cek_nl*xi1s_hc+chg_1b*xio5_2r+c27_o3*xip4_ja yrj3_p7 = cjk_pl*xr1sgd_hcbi+xr00+cbk_gl*xrp4n6_jaef yij3_p7 = cjk_pl*xi1sgd_hcbi+xi00+cbk_gl*xip4n6_jaef yrj_p = yrj3_p7+cep_nj*xrgd_bi+chk_1l*xr7m_3q+c2g_ob*xrn6_ef yij_p = yij3_p7+cep_nj*xigd_bi+chk_1l*xi7m_3q+c2g_ob*xin6_ef yr3_7 = yrj3_p7-cj7_p3*xr1s_hc+cek_nl*xro5_2r+chg_1b*xrp4_ja yi3_7 = yij3_p7-cj7_p3*xi1s_hc+cek_nl*xio5_2r+chg_1b*xip4_ja yr2b_og = c2k_ol*xr1sgd_hcbi+cjk_pl*xro57m_2r3q+xr00 yi2b_og = c2k_ol*xi1sgd_hcbi+cjk_pl*xio57m_2r3q+xi00 yr2_o = yr2b_og-c27_o3*xrgd_bi+cep_nj*xr7m_3q+chk_1l*xrn6_ef yi2_o = yi2b_og-c27_o3*xigd_bi+cep_nj*xi7m_3q+chk_1l*xin6_ef yrb_g = yr2b_og-c2g_ob*xr1s_hc-cj7_p3*xro5_2r+cek_nl*xrp4_ja yib_g = yi2b_og-c2g_ob*xi1s_hc-cj7_p3*xio5_2r+cek_nl*xip4_ja yrh_1 = csigma1*xrsigma1-(yrl_k+yre_n+yrj_p+yr3_7+yr2_o+yrb_g) yih_1 = csigma1*xisigma1-(yil_k+yie_n+yij_p+yi3_7+yi2_o+yib_g) yrl = yrlk+yrl_k yil = yilk+yil_k yrk = yrlk-yrl_k yik = yilk-yil_k yre = yren+yre_n yie = yien+yie_n yrn = yren-yre_n yin = yien-yie_n yrj = yrjp+yrj_p yij = yijp+yij_p yrp = yrjp-yrj_p yip = yijp-yij_p yr3 = yr37+yr3_7 yi3 = yi37+yi3_7 yr7 = yr37-yr3_7 yi7 = yi37-yi3_7 yr2 = yr2o+yr2_o yi2 = yi2o+yi2_o yro = yr2o-yr2_o yio = yi2o-yi2_o yrb = yrbg+yrb_g yib = yibg+yib_g yrg = yrbg-yrb_g yig = yibg-yib_g yrh = yrh1+yrh_1 yih = yih1+yih_1 yr1 = yrh1-yrh_1 yi1 = yih1-yih_1 xrgk_d9 = xrg_d+xrk_9 xigk_d9 = xig_d+xik_9 xrg9_dk = xrg_d-xrk_9 xig9_dk = xig_d-xik_9 xron_56 = xro_5+xrn_6 xion_56 = xio_5+xin_6 xro6_5n = xro_5-xrn_6 xio6_5n = xio_5-xin_6 xrp7_4m = xrp_4+xr7_m xip7_4m = xip_4+xi7_m xrpm_47 = xrp_4-xr7_m xipm_47 = xip_4-xi7_m xrgkonp7_d9564m = xrgk_d9+xron_56+xrp7_4m xigkonp7_d9564m = xigk_d9+xion_56+xip7_4m ur0 = xr1_s+xrgkonp7_d9564m ui0 = xi1_s+xigkonp7_d9564m xrgkonp7_d9564m = c70*xr1_s+c74*xrgkonp7_d9564m xigkonp7_d9564m = c70*xi1_s+c74*xigkonp7_d9564m ur4 = xrgkonp7_d9564m+c71_4*xron_56+c72_4*xrp7_4m ui4 = xigkonp7_d9564m+c71_4*xion_56+c72_4*xip7_4m ur2 = xrgkonp7_d9564m+c72_4*xrgk_d9+c71_4*xrp7_4m ui2 = xigkonp7_d9564m+c72_4*xigk_d9+c71_4*xip7_4m ur1 = xrgkonp7_d9564m+c71_4*xrgk_d9+c72_4*xron_56 ui1 = xigkonp7_d9564m+c71_4*xigk_d9+c72_4*xion_56 ur3 = xrg9_dk+s71_4*xro6_5n+s72_4*xrpm_47 ui3 = xig9_dk+s71_4*xio6_5n+s72_4*xipm_47 ur5 = s72_4*xrg9_dk+xro6_5n+s71_4*xrpm_47 ui5 = s72_4*xig9_dk+xio6_5n+s71_4*xipm_47 ur6 = s71_4*xrg9_dk+s72_4*xro6_5n+xrpm_47 ui6 = s71_4*xig9_dk+s72_4*xio6_5n+xipm_47 xrbl_i8 = xrb_i+xrl_8 xibl_i8 = xib_i+xil_8 xrb8_il = xrb_i-xrl_8 xib8_il = xib_i-xil_8 xr2e_rf = xr2_r+xre_f xi2e_rf = xi2_r+xie_f xr2f_re = xr2_r-xre_f xi2f_re = xi2_r-xie_f xrj3_aq = xrj_a+xr3_q xij3_aq = xij_a+xi3_q xrjq_a3 = xrj_a-xr3_q xijq_a3 = xij_a-xi3_q xrb23jel_irqaf8 = xrbl_i8+xr2e_rf+xrj3_aq xib23jel_irqaf8 = xibl_i8+xi2e_rf+xij3_aq ur7 = xrh_c+xrb23jel_irqaf8 ui7 = xih_c+xib23jel_irqaf8 xrb23jel_irqaf8 = c70*xrh_c+c74*xrb23jel_irqaf8 xib23jel_irqaf8 = c70*xih_c+c74*xib23jel_irqaf8 urb = xrb23jel_irqaf8+c71_4*xr2e_rf+c72_4*xrj3_aq uib = xib23jel_irqaf8+c71_4*xi2e_rf+c72_4*xij3_aq ur9 = xrb23jel_irqaf8+c72_4*xrbl_i8+c71_4*xrj3_aq ui9 = xib23jel_irqaf8+c72_4*xibl_i8+c71_4*xij3_aq ur8 = xrb23jel_irqaf8+c71_4*xrbl_i8+c72_4*xr2e_rf ui8 = xib23jel_irqaf8+c71_4*xibl_i8+c72_4*xi2e_rf ura = xrb8_il+s71_4*xr2f_re+s72_4*xrjq_a3 uia = xib8_il+s71_4*xi2f_re+s72_4*xijq_a3 urc = s72_4*xrb8_il+xr2f_re+s71_4*xrjq_a3 uic = s72_4*xib8_il+xi2f_re+s71_4*xijq_a3 urd = s71_4*xrb8_il+s72_4*xr2f_re+xrjq_a3 uid = s71_4*xib8_il+s72_4*xi2f_re+xijq_a3 vr0 = d11*ur0-d21*ur7 vi0 = d11*ui0-d21*ui7 vr7 = d21*ur0+d11*ur7 vi7 = d21*ui0+d11*ui7 ur4a = ur4+ura ui4a = ui4+uia ur4_a = ur4-ura ui4_a = ui4-uia ur3b = ur3+urb ui3b = ui3+uib ur3_b = ur3-urb ui3_b = ui3-uib vr4a = d33*ur4a+d36*ur3_b vi4a = d33*ui4a+d36*ui3_b vr4_a = d44*ur4_a+d45*ur3b vi4_a = d44*ui4_a+d45*ui3b vr3b = d44*ur3b-d45*ur4_a vi3b = d44*ui3b-d45*ui4_a vr3_b = d33*ur3_b-d36*ur4a vi3_b = d33*ui3_b-d36*ui4a vr4 = vr4a+vr4_a vi4 = vi4a+vi4_a vra = vr4a-vr4_a via = vi4a-vi4_a vr3 = vr3b+vr3_b vi3 = vi3b+vi3_b vrb = vr3b-vr3_b vib = vi3b-vi3_b ur2c = ur2+urc ui2c = ui2+uic ur2_c = ur2-urc ui2_c = ui2-uic ur59 = ur5+ur9 ui59 = ui5+ui9 ur5_9 = ur5-ur9 ui5_9 = ui5-ui9 vr2c = d77*ur2c+d7a*ur5_9 vi2c = d77*ui2c+d7a*ui5_9 vr2_c = d88*ur2_c+d89*ur59 vi2_c = d88*ui2_c+d89*ui59 vr59 = d88*ur59-d89*ur2_c vi59 = d88*ui59-d89*ui2_c vr5_9 = d77*ur5_9-d7a*ur2c vi5_9 = d77*ui5_9-d7a*ui2c vr2 = vr2c+vr2_c vi2 = vi2c+vi2_c vrc = vr2c-vr2_c vic = vi2c-vi2_c vr5 = vr59+vr5_9 vi5 = vi59+vi5_9 vr9 = vr59-vr5_9 vi9 = vi59-vi5_9 ur1d = ur1+urd ui1d = ui1+uid ur1_d = ur1-urd ui1_d = ui1-uid ur68 = ur6+ur8 ui68 = ui6+ui8 ur6_8 = ur6-ur8 ui6_8 = ui6-ui8 vr1d = dbb*ur1d+dbe*ur6_8 vi1d = dbb*ui1d+dbe*ui6_8 vr1_d = dcc*ur1_d+dcd*ur68 vi1_d = dcc*ui1_d+dcd*ui68 vr68 = dcc*ur68-dcd*ur1_d vi68 = dcc*ui68-dcd*ui1_d vr6_8 = dbb*ur6_8-dbe*ur1d vi6_8 = dbb*ui6_8-dbe*ui1d vr1 = vr1d+vr1_d vi1 = vi1d+vi1_d vrd = vr1d-vr1_d vid = vi1d-vi1_d vr6 = vr68+vr6_8 vi6 = vi68+vi6_8 vr8 = vr68-vr6_8 vi8 = vi68-vi6_8 vr421 = vr4+vr2+vr1 vi421 = vi4+vi2+vi1 vrb98 = vrb+vr9+vr8 vib98 = vib+vi9+vi8 zrl = vr0+c70*vr421 zil = vi0+c70*vi421 zrk = vr7+c70*vrb98 zik = vi7+c70*vib98 zrej32bh = vr0+c74*vr421 ziej32bh = vi0+c74*vi421 zrnp7og1 = vr7+c74*vrb98 zinp7og1 = vi7+c74*vib98 zreh = zrej32bh+c72_4*vr2+c71_4*vr1 zieh = ziej32bh+c72_4*vi2+c71_4*vi1 zrn1 = zrnp7og1+c72_4*vr9+c71_4*vr8 zin1 = zinp7og1+c72_4*vi9+c71_4*vi8 zrjb = zrej32bh+c71_4*vr4+c72_4*vr1 zijb = ziej32bh+c71_4*vi4+c72_4*vi1 zrpg = zrnp7og1+c71_4*vrb+c72_4*vr8 zipg = zinp7og1+c71_4*vib+c72_4*vi8 zr32 = zrej32bh+c72_4*vr4+c71_4*vr2 zi32 = ziej32bh+c72_4*vi4+c71_4*vi2 zr7o = zrnp7og1+c72_4*vrb+c71_4*vr9 zi7o = zinp7og1+c72_4*vib+c71_4*vi9 zre_h = vr3+s72_4*vr5+s71_4*vr6 zie_h = vi3+s72_4*vi5+s71_4*vi6 zrn_1 = vra+s72_4*vrc+s71_4*vrd zin_1 = via+s72_4*vic+s71_4*vid zrj_b = s71_4*vr3+vr5+s72_4*vr6 zij_b = s71_4*vi3+vi5+s72_4*vi6 zrp_g = s71_4*vra+vrc+s72_4*vrd zip_g = s71_4*via+vic+s72_4*vid zr2_3 = s72_4*vr3+s71_4*vr5+vr6 zi2_3 = s72_4*vi3+s71_4*vi5+vi6 zro_7 = s72_4*vra+s71_4*vrc+vrd zio_7 = s72_4*via+s71_4*vic+vid zre = zreh+zre_h zie = zieh+zie_h zrh = zreh-zre_h zih = zieh-zie_h zrn = zrn1+zrn_1 zin = zin1+zin_1 zr1 = zrn1-zrn_1 zi1 = zin1-zin_1 zrj = zrjb+zrj_b zij = zijb+zij_b zrb = zrjb-zrj_b zib = zijb-zij_b zrp = zrpg+zrp_g zip = zipg+zip_g zrg = zrpg-zrp_g zig = zipg-zip_g zr2 = zr32+zr2_3 zi2 = zi32+zi2_3 zr3 = zr32-zr2_3 zi3 = zi32-zi2_3 zro = zr7o+zro_7 zio = zi7o+zio_7 zr7 = zr7o-zro_7 zi7 = zi7o-zio_7 h(0) = cmplx(yr0, yi0, wp) h(1) = cmplx(yr1+zi1, yi1-zr1, wp) h(2) = cmplx(yr2+zi2, yi2-zr2, wp) h(3) = cmplx(yr3+zi3, yi3-zr3, wp) h(4) = cmplx(yrp-zip, yip+zrp, wp) h(5) = cmplx(yro-zio, yio+zro, wp) h(6) = cmplx(yrn-zin, yin+zrn, wp) h(7) = cmplx(yr7+zi7, yi7-zr7, wp) h(8) = cmplx(yrl-zil, yil+zrl, wp) h(9) = cmplx(yrk-zik, yik+zrk, wp) h(10) = cmplx(yrj-zij, yij+zrj, wp) h(11) = cmplx(yrb+zib, yib-zrb, wp) h(12) = cmplx(yrh-zih, yih+zrh, wp) h(13) = cmplx(yrg-zig, yig+zrg, wp) h(14) = cmplx(yre+zie, yie-zre, wp) h(15) = cmplx(yre-zie, yie+zre, wp) h(16) = cmplx(yrg+zig, yig-zrg, wp) h(17) = cmplx(yrh+zih, yih-zrh, wp) h(18) = cmplx(yrb-zib, yib+zrb, wp) h(19) = cmplx(yrj+zij, yij-zrj, wp) h(20) = cmplx(yrk+zik, yik-zrk, wp) h(21) = cmplx(yrl+zil, yil-zrl, wp) h(22) = cmplx(yr7-zi7, yi7+zr7, wp) h(23) = cmplx(yrn+zin, yin-zrn, wp) h(24) = cmplx(yro+zio, yio-zro, wp) h(25) = cmplx(yrp+zip, yip-zrp, wp) h(26) = cmplx(yr3-zi3, yi3+zr3, wp) h(27) = cmplx(yr2-zi2, yi2+zr2, wp) h(28) = cmplx(yr1-zi1, yi1+zr1, wp) end subroutine fft29t