! File: fft64t.i90 ! Public domain 2004 James Van Buskirk subroutine fft64t(h) ! 912 adds, 240 muls complex(wp), intent(inout) :: h(0:63) real(wp) xr1, xi1, wr1, wi1, xr2, xi2, wr2, wi2 real(wp) xr3, xi3, wr3, wi3, xr4, xi4, wr4, wi4 real(wp) xr5, xi5, wr5, wi5, xr6, xi6, wr6, wi6 real(wp) xr7, xi7, wr7, wi7, xr8, xi8, wr8, wi8 real(wp) xr9, xi9, wr9, wi9, xra, xia, wra, wia real(wp) xrb, xib, wrb, wib, xrc, xic, wrc, wic real(wp) xrd, xid, wrd, wid, xre, xie, wre, wie real(wp) xrf, xif, wrf, wif, xrg, xig, wrg, wig real(wp) xrh, xih, wrh, wih, xri, xii, wri, wii real(wp) xrj, xij, wrj, wij, xrk, xik, wrk, wik real(wp) xrl, xil, wrl, wil, xrm, xim, wrm, wim real(wp) xrn, xin, wrn, win, xro, xio, wro, wio real(wp) xrp, xip, wrp, wip, xrq, xiq, wrq, wiq real(wp) xrr, xir, wrr, wir, xrs, xis, wrs, wis real(wp) xrt, xit, wrt, wit, xru, xiu, wru, wiu real(wp) xrv, xiv, wrv, wiv, xr0, xi0, xrw, xiw real(wp) xr19, xi19, xr1_9, xi1_9 real(wp) xr2a, xi2a, xr2_a, xi2_a real(wp) xr3b, xi3b, xr3_b, xi3_b real(wp) xr4c, xi4c, xr4_c, xi4_c real(wp) xr5d, xi5d, xr5_d, xi5_d real(wp) xr6e, xi6e, xr6_e, xi6_e real(wp) xr7f, xi7f, xr7_f, xi7_f real(wp) xr8g, xi8g, xr8_g, xi8_g real(wp) xrhl, xihl, xrh_l, xih_l real(wp) xrim, xiim, xri_m, xii_m real(wp) xrjn, xijn, xrj_n, xij_n real(wp) xrko, xiko, xrk_o, xik_o real(wp) xrpr, xipr, xrp_r, xip_r real(wp) xrqs, xiqs, xrq_s, xiq_s real(wp) xrtu, xitu, xrt_u, xit_u real(wp) pr1, pi1, pr5, pi5, pr2, pi2, pr6, pi6 real(wp) pr3, pi3, pr7, pi7, pr4, pi4, pr8, pi8 real(wp) prh, pih, prj, pij, pri, pii, prk, pik real(wp) prl_n, pil_n, pro_m, pio_m real(wp) prl, pil, prn, pin, pro, pio, prm, pim real(wp) prp, pip, prq, piq real(wp) qrvt_wu, qivt_wu, qrvt, qivt, qrwu, qiwu real(wp) qru_w, qiu_w, qru, qiu, qrw, qiw real(wp) qrt_v, qit_v, qrt, qit, qrv, qiv real(wp) qrs, qis, qrr, qir, qrq, qiq, qrp, qip real(wp) qro, qio, qrn, qin, qrm, qim, qrl, qil real(wp) qrk, qik, qrj, qij, qri, qii, qrh, qih real(wp) qrgf, qigf, qrf_g, qif_g real(wp) qrf, qif, qrg, qig real(wp) qre, qie, qr_d, qi_d real(wp) qrc, qic, qrb, qib real(wp) qra, qia,qr9, qi9 real(wp) qr84210, qi84210, qr8, qi8, qr7, qi7 real(wp) pr13, pi13, pr1_3, pi1_3 real(wp) pr24, pi24, pr2_4, pi2_4 real(wp) qr6, qi6, qr_5, qi_5 real(wp) qr4210, qi4210, qr4, qi4, qr3, qi3 real(wp) qr210, qi210, prhi, pihi, yr2, yi2 real(wp) qr10, qi10, qr0_1, qi0_1 real(wp) yr0, yi0, yr1, yi1 real(wp) yrwo, yiwo, yrsk, yisk real(wp) yrvn, yivn, yrrj, yirj real(wp) yrum, yium, yrqi, yiqi real(wp) yrtl, yitl, yrph, yiph real(wp) yrgc, yigc, yrea, yiea real(wp) yrfb, yifb, yrd9, yid9 real(wp) yrg_c, yig_c, qrc_a, qic_a real(wp) yre_a, yie_a, qrb_9, qib_9 real(wp) yrd_9, yid_9, yrf_b, yif_b real(wp) yr86, yi86, yr75, yi75 real(wp) yrw, yiw, yro, yio, yrv, yiv, yrn, yin real(wp) yru, yiu, yrm, yim, yrt, yit, yrl, yil real(wp) yrs, yis, yrk, yik, yrr, yir, yrj, yij real(wp) yrq, yiq, yri, yii, yrp, yip, yrh, yih real(wp) yrg, yig, yrc, yic, yrf, yif, yrb, yib real(wp) yre, yie, yra, yia, yrd, yid, yr9, yi9 real(wp) yr8, yi8, yr6, yi6, yr7, yi7, yr5, yi5 real(wp) yr4, yi4, yr3, yi3 real(wp) wr19, wi19, wr1_9, wi1_9 real(wp) wr2a, wi2a, wr2_a, wi2_a real(wp) wr3b, wi3b, wr3_b, wi3_b real(wp) wr4c, wi4c, wr4_c, wi4_c real(wp) wr5d, wi5d, wr5_d, wi5_d real(wp) wr6e, wi6e, wr6_e, wi6_e real(wp) wr7f, wi7f, wr7_f, wi7_f real(wp) wr8g, wi8g, wr8_g, wi8_g real(wp) wrhl, wihl, wrh_l, wih_l real(wp) wrim, wiim, wri_m, wii_m real(wp) wrjn, wijn, wrj_n, wij_n real(wp) wrko, wiko, wrk_o, wik_o real(wp) wrpr, wipr, wrp_r, wip_r real(wp) wrqs, wiqs, wrq_s, wiq_s real(wp) wrtu, witu, wrt_u, wit_u real(wp) ur1, ui1, ur5, ui5, ur2, ui2, ur6, ui6 real(wp) ur3, ui3, ur7, ui7, ur4, ui4, ur8, ui8 real(wp) urh, uih, urj, uij, uri, uii, urk, uik real(wp) url_n, uil_n, uro_m, uio_m real(wp) url, uil, urn, uin, uro, uio, urm, uim real(wp) urp, uip, urq, uiq real(wp) vrvtwu, vivtwu, vrvt, vivt, vrwu, viwu real(wp) vru_w, viu_w, vru, viu, vrw, viw real(wp) vrt_v, vit_v, vrt, vit, vrv, viv real(wp) vrs, vis, vrr, vir, vrq, viq, vr_p, vi_p real(wp) vr_o, vi_o, vr_n, vi_n, vrm, vim, vrl, vil real(wp) vrk, vik, vrj, vij, vri, vii, vrh, vih real(wp) vrgf, vigf real(wp) vrf, vif, vrg, vig real(wp) vre, vie, vr_d, vi_d real(wp) vrc, vic, vrb, vib real(wp) vra, via,vr9, vi9 real(wp) vr8, vi8 real(wp) ur13, ui13, ur1_3, ui1_3 real(wp) ur24, ui24, ur2_4, ui2_4 real(wp) vr6, vi6, vr_5, vi_5 real(wp) vr4, vi4, vr3, vi3 real(wp) zr2, zi2 real(wp) zrwo, ziwo, zrsk, zisk real(wp) zrvn, zivn, zrrj, zirj real(wp) zrum, zium, zrqi, ziqi real(wp) zrtl, zitl, zrph, ziph real(wp) zrgc, zigc, zrea, ziea real(wp) zrfb, zifb, zrd9, zid9 real(wp) zrg_c, zig_c, vrc_a, vic_a real(wp) zre_a, zie_a, vrb_9, vib_9 real(wp) zrd_9, zid_9, zrf_b, zif_b real(wp) zr86, zi86, zr75, zi75 real(wp) zrw, ziw, zro, zio, zrv, ziv, zrn, zin real(wp) zru, ziu, zrm, zim, zrt, zit, zrl, zil real(wp) zrs, zis, zrk, zik, zrr, zir, zrj, zij real(wp) zrq, ziq, zri, zii, zrp, zip, zrh, zih real(wp) zrg, zig, zrc, zic, zrf, zif, zrb, zib real(wp) zre, zie, zra, zia, zrd, zid, zr9, zi9 real(wp) zr8, zi8, zr6, zi6, zr7, zi7, zr5, zi5 real(wp) zr4, zi4, zr3, zi3 real(wp) xr24_ac, xi24_ac, xr2c_4a, xi2c_4a real(wp) xr68_eg, xi68_eg, xr6g_8e, xi6g_8e real(wp) prac_eg, piac_eg, pr9f_bd, pi9f_bd real(wp) prf_9, pif_9, prd_b, pid_b real(wp) prf9, pif9, prf, pif, pr9, pi9 real(wp) prdb, pidb, prd, pid, prb, pib real(wp) prag, piag, prce, pice real(wp) pra_g, pia_g, pra, pia, prg, pig real(wp) prc_e, pic_e, prc, pic, pre, pie real(wp) wr24_ac, wi24_ac, wr2c_4a, wi2c_4a real(wp) wr68_eg, wi68_eg, wr6g_8e, wi6g_8e real(wp) urac_eg, uiac_eg, ur9f_bd, ui9f_bd real(wp) urf_9, uif_9, urd_b, uid_b real(wp) urf9, uif9, urf, uif, ur9, ui9 real(wp) urdb, uidb, urd, uid, urb, uib real(wp) urag, uiag, urce, uice real(wp) ura_g, uia_g, ura, uia, urg, uig real(wp) urc_e, uic_e, urc, uic, ure, uie real(wp) uraceg, uiaceg, ur9fbd, ui9fbd real(wp) pr9fbd, pi9fbd, praceg, piaceg real(wp), parameter :: r2 = 0.70710678118654752440084436210484908_wp real(wp), parameter :: c1 = 0.92387953251128675612818318939678830_wp real(wp), parameter :: c3 = 0.38268343236508977172845998403039888_wp real(wp), parameter :: dc1 = -0.55557023301960222474283081394853281_wp real(wp), parameter :: dc2 = 0.83146961230254523707878837761790590_wp real(wp), parameter :: dc3 = 0.19509032201612826784828486847702239_wp real(wp), parameter :: dc4 = 0.98078528040323044912618223613423895_wp real(wp), parameter :: c_1 = 1.08239220029239396879944641073277880_wp real(wp), parameter :: c2_1 = 0.76536686473017954345691996806079776_wp real(wp), parameter :: c3_1 = 0.41421356237309504880168872420969808_wp real(wp), parameter :: dc5 = -0.43551379684614878140255108682355581_wp real(wp), parameter :: dc6 = 0.81478900541792119223000428316748674_wp real(wp), parameter :: dc7 = 0.71416853627910325674609275644276211_wp real(wp), parameter :: dc8 = 0.58610297080140869867447461973889188_wp real(wp), parameter :: dc9 = -0.26818807191704244811048802466842579_wp real(wp), parameter :: dc10 = 0.88409759001746692352787178143397485_wp real(wp), parameter :: dc11 = 0.09055602978576764046009762504392957_wp real(wp), parameter :: dc12 = -0.91943080004028194732427737532032921_wp xr0 = real(h(0))+real(h(32)) xrw = real(h(0))-real(h(32)) xi0 = aimag(h(0))+aimag(h(32)) xiw = aimag(h(0))-aimag(h(32)) xr1 = real(h(1))+real(h(63)) wr1 = real(h(1))-real(h(63)) xi1 = aimag(h(1))+aimag(h(63)) wi1 = aimag(h(1))-aimag(h(63)) xrh = real(h(2))+real(h(62)) wrh = real(h(2))-real(h(62)) xih = aimag(h(2))+aimag(h(62)) wih = aimag(h(2))-aimag(h(62)) xr2 = real(h(3))+real(h(61)) wr2 = real(h(3))-real(h(61)) xi2 = aimag(h(3))+aimag(h(61)) wi2 = aimag(h(3))-aimag(h(61)) xrp = real(h(4))+real(h(60)) wrp = real(h(4))-real(h(60)) xip = aimag(h(4))+aimag(h(60)) wip = aimag(h(4))-aimag(h(60)) xrc = real(h(59))+real(h(5)) wrc = real(h(59))-real(h(5)) xic = aimag(h(59))+aimag(h(5)) wic = aimag(h(59))-aimag(h(5)) xri = real(h(6))+real(h(58)) wri = real(h(6))-real(h(58)) xii = aimag(h(6))+aimag(h(58)) wii = aimag(h(6))-aimag(h(58)) xrf = real(h(57))+real(h(7)) wrf = real(h(57))-real(h(7)) xif = aimag(h(57))+aimag(h(7)) wif = aimag(h(57))-aimag(h(7)) xrt = real(h(8))+real(h(56)) wrt = real(h(8))-real(h(56)) xit = aimag(h(8))+aimag(h(56)) wit = aimag(h(8))-aimag(h(56)) xr3 = real(h(9))+real(h(55)) wr3 = real(h(9))-real(h(55)) xi3 = aimag(h(9))+aimag(h(55)) wi3 = aimag(h(9))-aimag(h(55)) xrk = real(h(54))+real(h(10)) wrk = real(h(54))-real(h(10)) xik = aimag(h(54))+aimag(h(10)) wik = aimag(h(54))-aimag(h(10)) xr8 = real(h(11))+real(h(53)) wr8 = real(h(11))-real(h(53)) xi8 = aimag(h(11))+aimag(h(53)) wi8 = aimag(h(11))-aimag(h(53)) xrq = real(h(12))+real(h(52)) wrq = real(h(12))-real(h(52)) xiq = aimag(h(12))+aimag(h(52)) wiq = aimag(h(12))-aimag(h(52)) xr6 = real(h(51))+real(h(13)) wr6 = real(h(51))-real(h(13)) xi6 = aimag(h(51))+aimag(h(13)) wi6 = aimag(h(51))-aimag(h(13)) xrn = real(h(50))+real(h(14)) wrn = real(h(50))-real(h(14)) xin = aimag(h(50))+aimag(h(14)) win = aimag(h(50))-aimag(h(14)) xrd = real(h(49))+real(h(15)) wrd = real(h(49))-real(h(15)) xid = aimag(h(49))+aimag(h(15)) wid = aimag(h(49))-aimag(h(15)) xrv = real(h(16))+real(h(48)) wrv = real(h(16))-real(h(48)) xiv = aimag(h(16))+aimag(h(48)) wiv = aimag(h(16))-aimag(h(48)) xr5 = real(h(17))+real(h(47)) wr5 = real(h(17))-real(h(47)) xi5 = aimag(h(17))+aimag(h(47)) wi5 = aimag(h(17))-aimag(h(47)) xrj = real(h(18))+real(h(46)) wrj = real(h(18))-real(h(46)) xij = aimag(h(18))+aimag(h(46)) wij = aimag(h(18))-aimag(h(46)) xre = real(h(19))+real(h(45)) wre = real(h(19))-real(h(45)) xie = aimag(h(19))+aimag(h(45)) wie = aimag(h(19))-aimag(h(45)) xrs = real(h(44))+real(h(20)) wrs = real(h(44))-real(h(20)) xis = aimag(h(44))+aimag(h(20)) wis = aimag(h(44))-aimag(h(20)) xrg = real(h(43))+real(h(21)) wrg = real(h(43))-real(h(21)) xig = aimag(h(43))+aimag(h(21)) wig = aimag(h(43))-aimag(h(21)) xro = real(h(22))+real(h(42)) wro = real(h(22))-real(h(42)) xio = aimag(h(22))+aimag(h(42)) wio = aimag(h(22))-aimag(h(42)) xrb = real(h(41))+real(h(23)) wrb = real(h(41))-real(h(23)) xib = aimag(h(41))+aimag(h(23)) wib = aimag(h(41))-aimag(h(23)) xru = real(h(24))+real(h(40)) wru = real(h(24))-real(h(40)) xiu = aimag(h(24))+aimag(h(40)) wiu = aimag(h(24))-aimag(h(40)) xr7 = real(h(25))+real(h(39)) wr7 = real(h(25))-real(h(39)) xi7 = aimag(h(25))+aimag(h(39)) wi7 = aimag(h(25))-aimag(h(39)) xrm = real(h(38))+real(h(26)) wrm = real(h(38))-real(h(26)) xim = aimag(h(38))+aimag(h(26)) wim = aimag(h(38))-aimag(h(26)) xr4 = real(h(27))+real(h(37)) wr4 = real(h(27))-real(h(37)) xi4 = aimag(h(27))+aimag(h(37)) wi4 = aimag(h(27))-aimag(h(37)) xrr = real(h(36))+real(h(28)) wrr = real(h(36))-real(h(28)) xir = aimag(h(36))+aimag(h(28)) wir = aimag(h(36))-aimag(h(28)) xra = real(h(35))+real(h(29)) wra = real(h(35))-real(h(29)) xia = aimag(h(35))+aimag(h(29)) wia = aimag(h(35))-aimag(h(29)) xrl = real(h(34))+real(h(30)) wrl = real(h(34))-real(h(30)) xil = aimag(h(34))+aimag(h(30)) wil = aimag(h(34))-aimag(h(30)) xr9 = real(h(33))+real(h(31)) wr9 = real(h(33))-real(h(31)) xi9 = aimag(h(33))+aimag(h(31)) wi9 = aimag(h(33))-aimag(h(31)) xr19 = xr1+xr9 xi19 = xi1+xi9 xr1_9 = xr1-xr9 xi1_9 = xi1-xi9 xr2a = xr2+xra xi2a = xi2+xia xr2_a = xr2-xra xi2_a = xi2-xia xr3b = xr3+xrb xi3b = xi3+xib xr3_b = xr3-xrb xi3_b = xi3-xib xr4c = xr4+xrc xi4c = xi4+xic xr4_c = xr4-xrc xi4_c = xi4-xic xr5d = xr5+xrd xi5d = xi5+xid xr5_d = xr5-xrd xi5_d = xi5-xid xr6e = xr6+xre xi6e = xi6+xie xr6_e = xr6-xre xi6_e = xi6-xie xr7f = xr7+xrf xi7f = xi7+xif xr7_f = xr7-xrf xi7_f = xi7-xif xr8g = xr8+xrg xi8g = xi8+xig xr8_g = xr8-xrg xi8_g = xi8-xig xrhl = xrh+xrl xihl = xih+xil xrh_l = xrh-xrl xih_l = xih-xil xrim = xri+xrm xiim = xii+xim xri_m = xri-xrm xii_m = xii-xim xrjn = xrj+xrn xijn = xij+xin xrj_n = xrj-xrn xij_n = xij-xin xrko = xrk+xro xiko = xik+xio xrk_o = xrk-xro xik_o = xik-xio xrpr = xrp+xrr xipr = xip+xir xrp_r = xrp-xrr xip_r = xip-xir xrqs = xrq+xrs xiqs = xiq+xis xrq_s = xrq-xrs xiq_s = xiq-xis xrtu = xrt+xru xitu = xit+xiu xrt_u = xrt-xru xit_u = xit-xiu pr1 = xr19+xr5d pi1 = xi19+xi5d pr5 = xr19-xr5d pi5 = xi19-xi5d pr2 = xr2a+xr6e pi2 = xi2a+xi6e pr6 = xr2a-xr6e pi6 = xi2a-xi6e pr3 = xr3b+xr7f pi3 = xi3b+xi7f pr7 = xr3b-xr7f pi7 = xi3b-xi7f pr4 = xr4c+xr8g pi4 = xi4c+xi8g pr8 = xr4c-xr8g pi8 = xi4c-xi8g xr24_ac = xr2_a+xr4_c xi24_ac = xi2_a+xi4_c xr2c_4a = xr2_a-xr4_c xi2c_4a = xi2_a-xi4_c xr68_eg = xr6_e+xr8_g xi68_eg = xi6_e+xi8_g xr6g_8e = xr6_e-xr8_g xi6g_8e = xi6_e-xi8_g pr9fbd = c_1*xr1_9 pi9fbd = c_1*xi1_9 praceg = c_1*xr5_d piaceg = c_1*xi5_d prac_eg = c2_1*(xr3_b+xr7_f) piac_eg = c2_1*(xi3_b+xi7_f) pr9f_bd = c2_1*(xr3_b-xr7_f) pi9f_bd = c2_1*(xi3_b-xi7_f) prf_9 = xr2c_4a+c3_1*xr68_eg pif_9 = xi2c_4a+c3_1*xi68_eg prd_b = c3_1*xr2c_4a-xr68_eg pid_b = c3_1*xi2c_4a-xi68_eg prf9 = pr9fbd+pr9f_bd pif9 = pi9fbd+pi9f_bd prf = prf9+prf_9 pif = pif9+pif_9 pr9 = prf9-prf_9 pi9 = pif9-pif_9 prdb = pr9fbd-pr9f_bd pidb = pi9fbd-pi9f_bd prd = prdb+prd_b pid = pidb+pid_b prb = prdb-prd_b pib = pidb-pid_b prag = c3_1*xr24_ac-xr6g_8e piag = c3_1*xi24_ac-xi6g_8e prce = xr24_ac+c3_1*xr6g_8e pice = xi24_ac+c3_1*xi6g_8e pra_g = prac_eg+praceg pia_g = piac_eg+piaceg pra = prag+pra_g pia = piag+pia_g prg = prag-pra_g pig = piag-pia_g prc_e = prac_eg-praceg pic_e = piac_eg-piaceg prc = prce+prc_e pic = pice+pic_e pre = prce-prc_e pie = pice-pic_e prh = xrhl+xrjn pih = xihl+xijn prj = xrhl-xrjn pij = xihl-xijn pri = xrim+xrko pii = xiim+xiko prk = xrim-xrko pik = xiim-xiko prl_n = r2*(xri_m+xrk_o) pil_n = r2*(xii_m+xik_o) pro_m = r2*(xri_m-xrk_o) pio_m = r2*(xii_m-xik_o) prl = xrh_l+prl_n pil = xih_l+pil_n prn = xrh_l-prl_n pin = xih_l-pil_n pro = xrj_n+pro_m pio = xij_n+pio_m prm = xrj_n-pro_m pim = xij_n-pio_m prp = xrpr+xrqs pip = xipr+xiqs prq = xrpr-xrqs piq = xipr-xiqs qrvt_wu = r2*xrt_u qivt_wu = r2*xit_u qrvt = xrw+qrvt_wu qivt = xiw+qivt_wu qrwu = xrw-qrvt_wu qiwu = xiw-qivt_wu qru_w = c3*xrp_r-c1*xrq_s qiu_w = c3*xip_r-c1*xiq_s qru = qrwu+qru_w qiu = qiwu+qiu_w qrw = qrwu-qru_w qiw = qiwu-qiu_w qrt_v = c1*xrp_r+c3*xrq_s qit_v = c1*xip_r+c3*xiq_s qrt = qrvt+qrt_v qit = qivt+qit_v qrv = qrvt-qrt_v qiv = qivt-qit_v qrs = dc1*prn+dc2*pro qis = dc1*pin+dc2*pio qrr = dc3*prl+dc4*prm qir = dc3*pil+dc4*pim qrq = dc1*pro-dc2*prn qiq = dc1*pio-dc2*pin qrp = dc3*prm-dc4*prl qip = dc3*pim-dc4*pil qro = dc5*prb+dc6*prc qio = dc5*pib+dc6*pic qrn = dc7*pr9+dc8*pra qin = dc7*pi9+dc8*pia qrm = dc9*prd+dc10*pre qim = dc9*pid+dc10*pie qrl = dc11*prf+dc12*prg qil = dc11*pif+dc12*pig qrk = dc6*prb-dc5*prc qik = dc6*pib-dc5*pic qrj = dc7*pra-dc8*pr9 qij = dc7*pia-dc8*pi9 qri = dc9*pre-dc10*prd qii = dc9*pie-dc10*pid qrh = dc12*prf-dc11*prg qih = dc12*pif-dc11*pig qrgf = xr0-xrv qigf = xi0-xiv qrf_g = r2*prq qif_g = r2*piq qrf = qrgf+qrf_g qif = qigf+qif_g qrg = qrgf-qrf_g qig = qigf-qif_g qre = c1*prk-c3*prj qie = c1*pik-c3*pij qr_d = c1*prj+c3*prk qi_d = c1*pij+c3*pik qrc = dc1*pr5+dc2*pr7 qic = dc1*pi5+dc2*pi7 qrb = dc1*pr7-dc2*pr5 qib = dc1*pi7-dc2*pi5 qra = dc4*pr6-dc3*pr8 qia = dc4*pi6-dc3*pi8 qr9 = dc3*pr6+dc4*pr8 qi9 = dc3*pi6+dc4*pi8 qr84210 = xr0+xrv qi84210 = xi0+xiv qr8 = qr84210-xrtu qi8 = qi84210-xitu qr7 = r2*(pri-prh) qi7 = r2*(pii-pih) pr13 = pr1+pr3 pi13 = pi1+pi3 pr1_3 = pr1-pr3 pi1_3 = pi1-pi3 pr24 = pr2+pr4 pi24 = pi2+pi4 pr2_4 = pr2-pr4 pi2_4 = pi2-pi4 qr6 = c1*pr2_4-c3*pr1_3 qi6 = c1*pi2_4-c3*pi1_3 qr_5 = c1*pr1_3+c3*pr2_4 qi_5 = c1*pi1_3+c3*pi2_4 qr4210 = qr84210+xrtu qi4210 = qi84210+xitu qr4 = qr4210-prp qi4 = qi4210-pip qr3 = r2*(pr24-pr13) qi3 = r2*(pi24-pi13) qr210 = qr4210+prp qi210 = qi4210+pip prhi = prh+pri pihi = pih+pii yr2 = qr210-prhi yi2 = qi210-pihi qr10 = qr210+prhi qi10 = qi210+pihi qr0_1 = pr13+pr24 qi0_1 = pi13+pi24 yr0 = qr10+qr0_1 yi0 = qi10+qi0_1 yr1 = qr10-qr0_1 yi1 = qi10-qi0_1 yrwo = qrw+qrs yiwo = qiw+qis yrsk = qrw-qrs yisk = qiw-qis yrvn = qrv+qrr yivn = qiv+qir yrrj = qrv-qrr yirj = qiv-qir yrum = qru+qrq yium = qiu+qiq yrqi = qru-qrq yiqi = qiu-qiq yrtl = qrt+qrp yitl = qit+qip yrph = qrt-qrp yiph = qit-qip yrgc = qrg+qre yigc = qig+qie yrea = qrg-qre yiea = qig-qie yrfb = qrf-qr_d yifb = qif-qi_d yrd9 = qrf+qr_d yid9 = qif+qi_d yrg_c = qrc+qra yig_c = qic+qia qrc_a = qrc-qra qic_a = qic-qia yre_a = qrb+qr9 yie_a = qib+qi9 qrb_9 = qrb-qr9 qib_9 = qib-qi9 yrd_9 = r2*(qrc_a+qrb_9) yid_9 = r2*(qic_a+qib_9) yrf_b = r2*(qrc_a-qrb_9) yif_b = r2*(qic_a-qib_9) yr86 = qr8+qr7 yi86 = qi8+qi7 yr75 = qr8-qr7 yi75 = qi8-qi7 yrw = yrwo+qro yiw = yiwo+qio yro = yrwo-qro yio = yiwo-qio yrv = yrvn+qrn yiv = yivn+qin yrn = yrvn-qrn yin = yivn-qin yru = yrum+qrm yiu = yium+qim yrm = yrum-qrm yim = yium-qim yrt = yrtl+qrl yit = yitl+qil yrl = yrtl-qrl yil = yitl-qil yrs = yrsk+qrk yis = yisk+qik yrk = yrsk-qrk yik = yisk-qik yrr = yrrj+qrj yir = yirj+qij yrj = yrrj-qrj yij = yirj-qij yrq = yrqi+qri yiq = yiqi+qii yri = yrqi-qri yii = yiqi-qii yrp = yrph+qrh yip = yiph+qih yrh = yrph-qrh yih = yiph-qih yrg = yrgc+yrg_c yig = yigc+yig_c yrc = yrgc-yrg_c yic = yigc-yig_c yrf = yrfb+yrf_b yif = yifb+yif_b yrb = yrfb-yrf_b yib = yifb-yif_b yre = yrea+yre_a yie = yiea+yie_a yra = yrea-yre_a yia = yiea-yie_a yrd = yrd9+yrd_9 yid = yid9+yid_9 yr9 = yrd9-yrd_9 yi9 = yid9-yid_9 yr8 = yr86+qr6 yi8 = yi86+qi6 yr6 = yr86-qr6 yi6 = yi86-qi6 yr7 = yr75-qr_5 yi7 = yi75-qi_5 yr5 = yr75+qr_5 yi5 = yi75+qi_5 yr4 = qr4+qr3 yi4 = qi4+qi3 yr3 = qr4-qr3 yi3 = qi4-qi3 wr19 = wr1+wr9 wi19 = wi1+wi9 wr1_9 = wr1-wr9 wi1_9 = wi1-wi9 wr2a = wr2+wra wi2a = wi2+wia wr2_a = wr2-wra wi2_a = wi2-wia wr3b = wr3+wrb wi3b = wi3+wib wr3_b = wr3-wrb wi3_b = wi3-wib wr4c = wr4+wrc wi4c = wi4+wic wr4_c = wr4-wrc wi4_c = wi4-wic wr5d = wr5+wrd wi5d = wi5+wid wr5_d = wr5-wrd wi5_d = wi5-wid wr6e = wr6+wre wi6e = wi6+wie wr6_e = wr6-wre wi6_e = wi6-wie wr7f = wr7+wrf wi7f = wi7+wif wr7_f = wr7-wrf wi7_f = wi7-wif wr8g = wr8+wrg wi8g = wi8+wig wr8_g = wr8-wrg wi8_g = wi8-wig wrhl = wrh+wrl wihl = wih+wil wrh_l = wrh-wrl wih_l = wih-wil wrim = wri+wrm wiim = wii+wim wri_m = wri-wrm wii_m = wii-wim wrjn = wrj+wrn wijn = wij+win wrj_n = wrj-wrn wij_n = wij-win wrko = wrk+wro wiko = wik+wio wrk_o = wrk-wro wik_o = wik-wio wrpr = wrp+wrr wipr = wip+wir wrp_r = wrp-wrr wip_r = wip-wir wrqs = wrq+wrs wiqs = wiq+wis wrq_s = wrq-wrs wiq_s = wiq-wis wrtu = wrt+wru witu = wit+wiu wrt_u = wrt-wru wit_u = wit-wiu ur1 = wr19+wr5d ui1 = wi19+wi5d ur5 = wr19-wr5d ui5 = wi19-wi5d ur2 = wr2a+wr6e ui2 = wi2a+wi6e ur6 = wr2a-wr6e ui6 = wi2a-wi6e ur3 = wr3b+wr7f ui3 = wi3b+wi7f ur7 = wr3b-wr7f ui7 = wi3b-wi7f ur4 = wr4c+wr8g ui4 = wi4c+wi8g ur8 = wr4c-wr8g ui8 = wi4c-wi8g wr24_ac = wr2_a+wr4_c wi24_ac = wi2_a+wi4_c wr2c_4a = wr2_a-wr4_c wi2c_4a = wi2_a-wi4_c wr68_eg = wr6_e+wr8_g wi68_eg = wi6_e+wi8_g wr6g_8e = wr6_e-wr8_g wi6g_8e = wi6_e-wi8_g urac_eg = c2_1*(wr3_b+wr7_f) uiac_eg = c2_1*(wi3_b+wi7_f) ur9f_bd = c2_1*(wr3_b-wr7_f) ui9f_bd = c2_1*(wi3_b-wi7_f) uraceg = c_1*wr5_d uiaceg = c_1*wi5_d ur9fbd = c_1*wr1_9 ui9fbd = c_1*wi1_9 urf_9 = wr2c_4a+c3_1*wr68_eg uif_9 = wi2c_4a+c3_1*wi68_eg urd_b = c3_1*wr2c_4a-wr68_eg uid_b = c3_1*wi2c_4a-wi68_eg urf9 = ur9fbd+ur9f_bd uif9 = ui9fbd+ui9f_bd urf = urf9+urf_9 uif = uif9+uif_9 ur9 = urf9-urf_9 ui9 = uif9-uif_9 urdb = ur9fbd-ur9f_bd uidb = ui9fbd-ui9f_bd urd = urdb+urd_b uid = uidb+uid_b urb = urdb-urd_b uib = uidb-uid_b urag = c3_1*wr24_ac-wr6g_8e uiag = c3_1*wi24_ac-wi6g_8e urce = wr24_ac+c3_1*wr6g_8e uice = wi24_ac+c3_1*wi6g_8e ura_g = urac_eg+uraceg uia_g = uiac_eg+uiaceg ura = urag+ura_g uia = uiag+uia_g urg = urag-ura_g uig = uiag-uia_g urc_e = urac_eg-uraceg uic_e = uiac_eg-uiaceg urc = urce+urc_e uic = uice+uic_e ure = urce-urc_e uie = uice-uic_e urh = wrhl+wrjn uih = wihl+wijn urj = wrhl-wrjn uij = wihl-wijn uri = wrim+wrko uii = wiim+wiko urk = wrim-wrko uik = wiim-wiko url_n = r2*(wri_m+wrk_o) uil_n = r2*(wii_m+wik_o) uro_m = r2*(wri_m-wrk_o) uio_m = r2*(wii_m-wik_o) url = wrh_l+url_n uil = wih_l+uil_n urn = wrh_l-url_n uin = wih_l-uil_n uro = wrj_n+uro_m uio = wij_n+uio_m urm = wrj_n-uro_m uim = wij_n-uio_m urp = wrpr+wrqs uip = wipr+wiqs urq = wrpr-wrqs uiq = wipr-wiqs vrvtwu = r2*wrtu vivtwu = r2*witu vrvt = vrvtwu+wrv vivt = vivtwu+wiv vrwu = vrvtwu-wrv viwu = vivtwu-wiv vru_w = c1*wrp_r-c3*wrq_s viu_w = c1*wip_r-c3*wiq_s vru = vrwu+vru_w viu = viwu+viu_w vrw = vrwu-vru_w viw = viwu-viu_w vrt_v = c3*wrp_r+c1*wrq_s vit_v = c3*wip_r+c1*wiq_s vrt = vrvt+vrt_v vit = vivt+vit_v vrv = vrvt-vrt_v viv = vivt-vit_v vrs = dc2*url-dc1*urm vis = dc2*uil-dc1*uim vrr = dc3*uro-dc4*urn vir = dc3*uio-dc4*uin vrq = dc1*url+dc2*urm viq = dc1*uil+dc2*uim vr_p = dc3*urn+dc4*uro vi_p = dc3*uin+dc4*uio vr_o = dc6*urd+dc5*ure vi_o = dc6*uid+dc5*uie vr_n = dc8*urf+dc7*urg vi_n = dc8*uif+dc7*uig vrm = dc10*urb+dc9*urc vim = dc10*uib+dc9*uic vrl = dc12*ur9+dc11*ura vil = dc12*ui9+dc11*uia vrk = dc5*urd-dc6*ure vik = dc5*uid-dc6*uie vrj = dc8*urg-dc7*urf vij = dc8*uig-dc7*uif vri = dc9*urb-dc10*urc vii = dc9*uib-dc10*uic vrh = dc12*ura-dc11*ur9 vih = dc12*uia-dc11*ui9 vrgf = r2*urp vigf = r2*uip vrf = vrgf+wrt_u vif = vigf+wit_u vrg = vrgf-wrt_u vig = vigf-wit_u vre = c3*urk-c1*urj vie = c3*uik-c1*uij vr_d = c3*urj+c1*urk vi_d = c3*uij+c1*uik vrc = dc3*ur6+dc4*ur8 vic = dc3*ui6+dc4*ui8 vrb = dc3*ur8-dc4*ur6 vib = dc3*ui8-dc4*ui6 vra = dc2*ur5-dc1*ur7 via = dc2*ui5-dc1*ui7 vr9 = dc1*ur5+dc2*ur7 vi9 = dc1*ui5+dc2*ui7 vr8 = r2*(urh+uri) vi8 = r2*(uih+uii) ur13 = ur1+ur3 ui13 = ui1+ui3 ur1_3 = ur1-ur3 ui1_3 = ui1-ui3 ur24 = ur2+ur4 ui24 = ui2+ui4 ur2_4 = ur2-ur4 ui2_4 = ui2-ui4 vr6 = c3*ur2_4-c1*ur1_3 vi6 = c3*ui2_4-c1*ui1_3 vr_5 = c3*ur1_3+c1*ur2_4 vi_5 = c3*ui1_3+c1*ui2_4 vr4 = r2*(ur13+ur24) vi4 = r2*(ui13+ui24) vr3 = uri-urh vi3 = uii-uih zr2 = ur13-ur24 zi2 = ui13-ui24 zrwo = vrw+vrs ziwo = viw+vis zrsk = vrw-vrs zisk = viw-vis zrvn = vrv+vrr zivn = viv+vir zrrj = vrv-vrr zirj = viv-vir zrum = vru+vrq zium = viu+viq zrqi = vru-vrq ziqi = viu-viq zrtl = vrt-vr_p zitl = vit-vi_p zrph = vrt+vr_p ziph = vit+vi_p zrgc = vrg+vre zigc = vig+vie zrea = vrg-vre ziea = vig-vie zrfb = vrf-vr_d zifb = vif-vi_d zrd9 = vrf+vr_d zid9 = vif+vi_d zrg_c = vrc+vra zig_c = vic+via vrc_a = vrc-vra vic_a = vic-via zre_a = vrb+vr9 zie_a = vib+vi9 vrb_9 = vrb-vr9 vib_9 = vib-vi9 zrd_9 = r2*(vrc_a+vrb_9) zid_9 = r2*(vic_a+vib_9) zrf_b = r2*(vrc_a-vrb_9) zif_b = r2*(vic_a-vib_9) zr86 = vr8-urq zi86 = vi8-uiq zr75 = vr8+urq zi75 = vi8+uiq zrw = zrwo-vr_o ziw = ziwo-vi_o zro = zrwo+vr_o zio = ziwo+vi_o zrv = zrvn-vr_n ziv = zivn-vi_n zrn = zrvn+vr_n zin = zivn+vi_n zru = zrum+vrm ziu = zium+vim zrm = zrum-vrm zim = zium-vim zrt = zrtl+vrl zit = zitl+vil zrl = zrtl-vrl zil = zitl-vil zrs = zrsk+vrk zis = zisk+vik zrk = zrsk-vrk zik = zisk-vik zrr = zrrj+vrj zir = zirj+vij zrj = zrrj-vrj zij = zirj-vij zrq = zrqi+vri ziq = ziqi+vii zri = zrqi-vri zii = ziqi-vii zrp = zrph+vrh zip = ziph+vih zrh = zrph-vrh zih = ziph-vih zrg = zrgc+zrg_c zig = zigc+zig_c zrc = zrgc-zrg_c zic = zigc-zig_c zrf = zrfb+zrf_b zif = zifb+zif_b zrb = zrfb-zrf_b zib = zifb-zif_b zre = zrea+zre_a zie = ziea+zie_a zra = zrea-zre_a zia = ziea-zie_a zrd = zrd9+zrd_9 zid = zid9+zid_9 zr9 = zrd9-zrd_9 zi9 = zid9-zid_9 zr8 = zr86+vr6 zi8 = zi86+vi6 zr6 = zr86-vr6 zi6 = zi86-vi6 zr7 = zr75-vr_5 zi7 = zi75-vi_5 zr5 = zr75+vr_5 zi5 = zi75+vi_5 zr4 = vr4+vr3 zi4 = vi4+vi3 zr3 = vr4-vr3 zi3 = vi4-vi3 h(0) = cmplx(yr0, yi0, wp) h(1) = cmplx(yrh+zih, yih-zrh, wp) h(2) = cmplx(yr9+zi9, yi9-zr9, wp) h(3) = cmplx(yri+zii, yii-zri, wp) h(4) = cmplx(yr5+zi5, yi5-zr5, wp) h(5) = cmplx(yrs-zis, yis+zrs, wp) h(6) = cmplx(yra+zia, yia-zra, wp) h(7) = cmplx(yrv-ziv, yiv+zrv, wp) h(8) = cmplx(yr3+zi3, yi3-zr3, wp) h(9) = cmplx(yrj+zij, yij-zrj, wp) h(10) = cmplx(yrc-zic, yic+zrc, wp) h(11) = cmplx(yro+zio, yio-zro, wp) h(12) = cmplx(yr6+zi6, yi6-zr6, wp) h(13) = cmplx(yrm-zim, yim+zrm, wp) h(14) = cmplx(yrf-zif, yif+zrf, wp) h(15) = cmplx(yrt-zit, yit+zrt, wp) h(16) = cmplx(yr2+zi2, yi2-zr2, wp) h(17) = cmplx(yrl+zil, yil-zrl, wp) h(18) = cmplx(yrb+zib, yib-zrb, wp) h(19) = cmplx(yru+ziu, yiu-zru, wp) h(20) = cmplx(yr8-zi8, yi8+zr8, wp) h(21) = cmplx(yrw-ziw, yiw+zrw, wp) h(22) = cmplx(yrg+zig, yig-zrg, wp) h(23) = cmplx(yrr-zir, yir+zrr, wp) h(24) = cmplx(yr4+zi4, yi4-zr4, wp) h(25) = cmplx(yrn+zin, yin-zrn, wp) h(26) = cmplx(yre-zie, yie+zre, wp) h(27) = cmplx(yrk+zik, yik-zrk, wp) h(28) = cmplx(yr7-zi7, yi7+zr7, wp) h(29) = cmplx(yrq-ziq, yiq+zrq, wp) h(30) = cmplx(yrd-zid, yid+zrd, wp) h(31) = cmplx(yrp-zip, yip+zrp, wp) h(32) = cmplx(yr1, yi1, wp) h(33) = cmplx(yrp+zip, yip-zrp, wp) h(34) = cmplx(yrd+zid, yid-zrd, wp) h(35) = cmplx(yrq+ziq, yiq-zrq, wp) h(36) = cmplx(yr7+zi7, yi7-zr7, wp) h(37) = cmplx(yrk-zik, yik+zrk, wp) h(38) = cmplx(yre+zie, yie-zre, wp) h(39) = cmplx(yrn-zin, yin+zrn, wp) h(40) = cmplx(yr4-zi4, yi4+zr4, wp) h(41) = cmplx(yrr+zir, yir-zrr, wp) h(42) = cmplx(yrg-zig, yig+zrg, wp) h(43) = cmplx(yrw+ziw, yiw-zrw, wp) h(44) = cmplx(yr8+zi8, yi8-zr8, wp) h(45) = cmplx(yru-ziu, yiu+zru, wp) h(46) = cmplx(yrb-zib, yib+zrb, wp) h(47) = cmplx(yrl-zil, yil+zrl, wp) h(48) = cmplx(yr2-zi2, yi2+zr2, wp) h(49) = cmplx(yrt+zit, yit-zrt, wp) h(50) = cmplx(yrf+zif, yif-zrf, wp) h(51) = cmplx(yrm+zim, yim-zrm, wp) h(52) = cmplx(yr6-zi6, yi6+zr6, wp) h(53) = cmplx(yro-zio, yio+zro, wp) h(54) = cmplx(yrc+zic, yic-zrc, wp) h(55) = cmplx(yrj-zij, yij+zrj, wp) h(56) = cmplx(yr3-zi3, yi3+zr3, wp) h(57) = cmplx(yrv+ziv, yiv-zrv, wp) h(58) = cmplx(yra-zia, yia+zra, wp) h(59) = cmplx(yrs+zis, yis-zrs, wp) h(60) = cmplx(yr5-zi5, yi5+zr5, wp) h(61) = cmplx(yri-zii, yii+zri, wp) h(62) = cmplx(yr9-zi9, yi9+zr9, wp) h(63) = cmplx(yrh-zih, yih+zrh, wp) end subroutine fft64t