! File: fft37t.i90 ! Public domain 2004 James Van Buskirk subroutine fft37t(h) ! 764 adds, 328 muls complex(wp), intent(inout) :: h(0:36) real(wp) xr1, xi1, yr1, yi1 real(wp) xr2, xi2, yr2, yi2 real(wp) xr3, xi3, yr3, yi3 real(wp) xr4, xi4, yr4, yi4 real(wp) xr5, xi5, yr5, yi5 real(wp) xr6, xi6, yr6, yi6 real(wp) xr7, xi7, yr7, yi7 real(wp) xr8, xi8, yr8, yi8 real(wp) xr9, xi9, yr9, yi9 real(wp) xra, xia, yra, yia real(wp) xrb, xib, yrb, yib real(wp) xrc, xic, yrc, yic real(wp) xrd, xid, yrd, yid real(wp) xre, xie, yre, yie real(wp) xrf, xif, yrf, yif real(wp) xrg, xig, yrg, yig real(wp) xrh, xih, yrh, yih real(wp) xri, xii, yri, yii real(wp) xr1a, xi1a, xr1_a, xi1_a real(wp) xr2b, xi2b, xr2_b, xi2_b real(wp) xr3c, xi3c, xr3_c, xi3_c real(wp) xr4d, xi4d, xr4_d, xi4_d real(wp) xr5e, xi5e, xr5_e, xi5_e real(wp) xr6f, xi6f, xr6_f, xi6_f real(wp) xr7g, xi7g, xr7_g, xi7_g real(wp) xr8h, xi8h, xr8_h, xi8_h real(wp) xr9i, xi9i, xr9_i, xi9_i real(wp) ur1, ui1, ur4, ui4, ur7, ui7 real(wp) ur2, ui2, ur5, ui5, ur8, ui8 real(wp) ur3, ui3, ur6, ui6, ur9, ui9 real(wp) ura, uia, urd, uid, urg, uig real(wp) urb, uib, ure, uie, urh, uih real(wp) urc, uic, urf, uif, uri, uii real(wp) ur123, ui123, sr0, si0, pr123, pi123 real(wp) pr1, pi1, pr2, pi2, pr3, pi3 real(wp) ur47, ui47, ur58, ui58, ur69, ui69 real(wp) pr47, pi47, pr4, pi4, pr7, pi7 real(wp) pr58, pi58, pr5, pi5, pr8, pi8 real(wp) pr69, pi69, pr6, pi6, pr9, pi9 real(wp) pra, pia, prb, pib, prc, pic real(wp) urdg, uidg, ureh, uieh, urfi, uifi real(wp) prdg, pidg, prd, pid, prg, pig real(wp) preh, pieh, pre, pie, prh, pih real(wp) prfi, pifi, prf, pif, pri, pii real(wp) sr1a, si1a, sr4d, si4d, sr7g, si7g real(wp) sr2b, si2b, sr5e, si5e, sr8h, si8h real(wp) sr3c, si3c, sr6f, si6f, sr9i, si9i real(wp) sr1_a, si1_a, sr4_d, si4_d, sr7_g, si7_g real(wp) sr2_b, si2_b, sr5_e, si5_e, sr8_h, si8_h real(wp) sr3_c, si3_c, sr6_f, si6_f, sr9_i, si9_i real(wp) sr1, si1, sra, sia real(wp) sr2, si2, srb, sib real(wp) sr3, si3, src, sic real(wp) sr4, si4, srd, sid real(wp) sr5, si5, sre, sie real(wp) sr6, si6, srf, sif real(wp) sr7, si7, srg, sig real(wp) sr8, si8, srh, sih real(wp) sr9, si9, sri, sii real(wp) yr47, yi47, vr12, vi12 real(wp) vr4d, vi4d, vr7g, vi7g real(wp) yr58, yi58, vr13_2, vi13_2 real(wp) vr5e, vi5e, vr8h, vi8h real(wp) yr69, yi69, vr1_3, vi1_3 real(wp) vr6f, vi6f, vr9i, vi9i real(wp) yrdg, yidg, vrab, viab real(wp) vrd_4, vid_4, vr7_g, vi7_g real(wp) yreh, yieh, vrac_b, viac_b real(wp) vre_5, vie_5, vr8_h, vi8_h real(wp) yrfi, yifi, vra_c, via_c real(wp) vrf_6, vif_6, vr9_i, vi9_i real(wp) vr1, vi1, vr2, vi2, vr3, vi3 real(wp) vra, via, vrb, vib, vrc, vic real(wp) vr4, vi4, vrd, vid real(wp) vr5, vi5, vre, vie real(wp) vr6, vi6, vrf, vif real(wp) vr7, vi7, vrg, vig real(wp) vr8, vi8, vrh, vih real(wp) vr9, vi9, vri, vii real(wp) qr1, qi1, qra, qia real(wp) vr23, vi23, vrbc, vibc real(wp) qr23, qi23, qr2, qi2, qr3, qi3 real(wp) qrbc, qibc, qrb, qib, qrc, qic real(wp) vr47, vi47, vr58, vi58, vr69, vi69 real(wp) qr47, qi47, qr4, qi4, qr7, qi7 real(wp) qr58, qi58, qr5, qi5, qr8, qi8 real(wp) qr69, qi69, qr6, qi6, qr9, qi9 real(wp) vrdg, vidg, vreh, vieh, vrfi, vifi real(wp) qrdg, qidg, qrd, qid, qrg, qig real(wp) qreh, qieh, qre, qie, qrh, qih real(wp) qrfi, qifi, qrf, qif, qri, qii real(wp) qr12, qi12, qr13_2, qi13_2, qr1_3, qi1_3 real(wp) qrab, qiab, qrac_b, qiac_b, qra_c, qia_c real(wp) qr4d, qi4d, qrd_4, qid_4 real(wp) qr5e, qi5e, qre_5, qie_5 real(wp) qr6f, qi6f, qrf_6, qif_6 real(wp) qr7g, qi7g, qr7_g, qi7_g real(wp) qr8h, qi8h, qr8_h, qi8_h real(wp) qr9i, qi9i, qr9_i, qi9_i real(wp) tr47, ti47, tr4_7, ti4_7 real(wp) tr1, ti1, tr4, ti4, tr7, ti7 real(wp) tr58, ti58, tr5_8, ti5_8 real(wp) tr2, ti2, tr5, ti5, tr8, ti8 real(wp) tr69, ti69, tr6_9, ti6_9 real(wp) tr3, ti3, tr6, ti6, tr9, ti9 real(wp) trdg, tidg, trd_g, tid_g real(wp) tra, tia, trd, tid, trg, tig real(wp) treh, tieh, tre_h, tie_h real(wp) trb, tib, tre, tie, trh, tih real(wp) trfi, tifi, trf_i, tif_i real(wp) trc, tic, trf, tif, tri, tii real(wp),parameter :: c1 = -.4999999999999999999999999999999998_wp real(wp),parameter :: s1 = .8660254037844386467637231707529364_wp real(wp),parameter :: dc1 = .1822584006338674334736141748935634_wp real(wp),parameter :: dc2 = -.0857907708134152866834207315498779_wp real(wp),parameter :: dc3 = -.5443177644215203470707551264641456_wp real(wp),parameter :: dc4 = .3345071999513275928959123491466251_wp real(wp),parameter :: dc5 = -.2439500883245366049248356609314582_wp real(wp),parameter :: dc6 = -.0905571116267909879710766882151669_wp real(wp),parameter :: dc7 = .6584939671320179282410704318180818_wp real(wp),parameter :: dc8 = -.1375393804608641765866319754091599_wp real(wp),parameter :: dc9 = -.5209545866711537516544384564089219_wp real(wp),parameter :: dc10 = -.5078097060283359995815708104867692_wp real(wp),parameter :: dc11 = -.1005865080810223528080558690378626_wp real(wp),parameter :: dc12 = .6083962141093583523896266795246318_wp real(wp),parameter :: dc13 = .6083962141093583523896266795246318_wp real(wp),parameter :: dc14 = -.5078097060283359995815708104867692_wp real(wp),parameter :: dc15 = -.1005865080810223528080558690378626_wp real(wp),parameter :: dc16 = -.5209545866711537516544384564089219_wp real(wp),parameter :: dc17 = .6584939671320179282410704318180818_wp real(wp),parameter :: dc18 = -.1375393804608641765866319754091599_wp real(wp),parameter :: dc19 = -.4923770477861113254322702522777032_wp real(wp),parameter :: dc20 = -.0921241432876409648554077275501025_wp real(wp),parameter :: dc21 = .0776043135489006495377042927276333_wp real(wp),parameter :: dc22 = .6362861705909977409711467275217294_wp real(wp),parameter :: dc23 = -.4423287530657460047680510353419405_wp real(wp),parameter :: dc24 = -.1939574175252517362030956921797889_wp real(wp),parameter :: dc25 = -.1385301701075974223780986912643486_wp real(wp),parameter :: dc26 = .3438751639237793150123620111200314_wp real(wp),parameter :: dc27 = -.2053449938161818926342633198556827_wp real(wp),parameter :: dc28 = -.0362448929767538598898109648621463_wp real(wp),parameter :: dc29 = -.5826913886137242218209703008705854_wp real(wp),parameter :: dc30 = .6189362815904780817107812657327318_wp real(wp),parameter :: dc31 = .6189362815904780817107812657327317_wp real(wp),parameter :: dc32 = -.0362448929767538598898109648621463_wp real(wp),parameter :: dc33 = -.5826913886137242218209703008705853_wp real(wp),parameter :: dc34 = -.2053449938161818926342633198556828_wp real(wp),parameter :: dc35 = -.1385301701075974223780986912643486_wp real(wp),parameter :: dc36 = .3438751639237793150123620111200314_wp real(wp),parameter :: ds1 = .2184302777058976933893653666157911_wp real(wp),parameter :: ds2 = .2578482977363277920395321987210387_wp real(wp),parameter :: ds3 = .2715242260088208762850428529498982_wp real(wp),parameter :: ds4 = .1606182248619194046830212804992423_wp real(wp),parameter :: ds5 = -.4321424508707402809680641334491406_wp real(wp),parameter :: ds6 = -.3205236023405836370449496093705257_wp real(wp),parameter :: ds7 = -.1896034574558361167391354349241924_wp real(wp),parameter :: ds8 = .5101270597964197537840850442947181_wp real(wp),parameter :: ds9 = .0897928120411410207070551428536772_wp real(wp),parameter :: ds10 = .1489140124243165321482801488757021_wp real(wp),parameter :: ds11 = -.3284996365065985735623904345830565_wp real(wp),parameter :: ds12 = .7985988700816928781212886970868576_wp real(wp),parameter :: ds13 = -.2662794437504506530627067983659076_wp real(wp),parameter :: ds14 = -1.3309182964129351031798705958078077_wp real(wp),parameter :: ds15 = -.2037808427445357534662171748975717_wp real(wp),parameter :: ds16 = .1946527639715011613527859693065012_wp real(wp),parameter :: ds17 = .2129089215175703455796483804886421_wp real(wp),parameter :: ds18 = .1097955694774613226613553909956153_wp real(wp),parameter :: ds19 = -.2817109167123137970670238656834626_wp real(wp),parameter :: ds20 = .0621197777573911517443130836922320_wp real(wp),parameter :: ds21 = -.8603015811716612289449405146458063_wp real(wp),parameter :: ds22 = 1.2857487769303346510667900239791314_wp real(wp),parameter :: ds23 = .4348543854129878068230910053124811_wp real(wp),parameter :: ds24 = .1709249894968647649039080507935660_wp real(wp),parameter :: ds25 = -.9227824969321723841812309195722566_wp real(wp),parameter :: ds26 = .5809325179384428543734148179851247_wp real(wp),parameter :: ds27 = -.3261182349161986763066730908009060_wp real(wp),parameter :: ds28 = .7576816812060835025726161979342718_wp real(wp),parameter :: ds29 = -.1054452113736861499592700163324598_wp real(wp),parameter :: ds30 = -.1424817702282170493355202982571898_wp real(wp),parameter :: ds31 = .4894278007439373276626663761655128_wp real(wp),parameter :: ds32 = -.2044642602875032289916257796511332_wp real(wp),parameter :: ds33 = -.2292231910546763018835757181831305_wp real(wp),parameter :: ds34 = -.0676426567969971164285844917919500_wp real(wp),parameter :: ds35 = .5260890389063497201957359281582109_wp real(wp),parameter :: ds36 = -.2106857903737020691375377993233693_wp real(wp),parameter :: ds37 = -.2875226088460097207546237348129730_wp real(wp),parameter :: ds38 = .7088941895934138590296993334597116_wp xr1 = real(h(1))+real(h(36)) xi1 = aimag(h(1))+aimag(h(36)) yr1 = real(h(1))-real(h(36)) yi1 = aimag(h(1))-aimag(h(36)) xr2 = real(h(16))+real(h(21)) xi2 = aimag(h(16))+aimag(h(21)) yr2 = real(h(16))-real(h(21)) yi2 = aimag(h(16))-aimag(h(21)) xr3 = real(h(34))+real(h(3)) xi3 = aimag(h(34))+aimag(h(3)) yr3 = real(h(34))-real(h(3)) yi3 = aimag(h(34))-aimag(h(3)) xr4 = real(h(26))+real(h(11)) xi4 = aimag(h(26))+aimag(h(11)) yr4 = real(h(26))-real(h(11)) yi4 = aimag(h(26))-aimag(h(11)) xr5 = real(h(9))+real(h(28)) xi5 = aimag(h(9))+aimag(h(28)) yr5 = real(h(9))-real(h(28)) yi5 = aimag(h(9))-aimag(h(28)) xr6 = real(h(33))+real(h(4)) xi6 = aimag(h(33))+aimag(h(4)) yr6 = real(h(33))-real(h(4)) yi6 = aimag(h(33))-aimag(h(4)) xr7 = real(h(10))+real(h(27)) xi7 = aimag(h(10))+aimag(h(27)) yr7 = real(h(10))-real(h(27)) yi7 = aimag(h(10))-aimag(h(27)) xr8 = real(h(12))+real(h(25)) xi8 = aimag(h(12))+aimag(h(25)) yr8 = real(h(12))-real(h(25)) yi8 = aimag(h(12))-aimag(h(25)) xr9 = real(h(7))+real(h(30)) xi9 = aimag(h(7))+aimag(h(30)) yr9 = real(h(7))-real(h(30)) yi9 = aimag(h(7))-aimag(h(30)) xra = real(h(31))+real(h(6)) xia = aimag(h(31))+aimag(h(6)) yra = real(h(31))-real(h(6)) yia = aimag(h(31))-aimag(h(6)) xrb = real(h(15))+real(h(22)) xib = aimag(h(15))+aimag(h(22)) yrb = real(h(15))-real(h(22)) yib = aimag(h(15))-aimag(h(22)) xrc = real(h(18))+real(h(19)) xic = aimag(h(18))+aimag(h(19)) yrc = real(h(18))-real(h(19)) yic = aimag(h(18))-aimag(h(19)) xrd = real(h(29))+real(h(8)) xid = aimag(h(29))+aimag(h(8)) yrd = real(h(29))-real(h(8)) yid = aimag(h(29))-aimag(h(8)) xre = real(h(20))+real(h(17)) xie = aimag(h(20))+aimag(h(17)) yre = real(h(20))-real(h(17)) yie = aimag(h(20))-aimag(h(17)) xrf = real(h(24))+real(h(13)) xif = aimag(h(24))+aimag(h(13)) yrf = real(h(24))-real(h(13)) yif = aimag(h(24))-aimag(h(13)) xrg = real(h(14))+real(h(23)) xig = aimag(h(14))+aimag(h(23)) yrg = real(h(14))-real(h(23)) yig = aimag(h(14))-aimag(h(23)) xrh = real(h(2))+real(h(35)) xih = aimag(h(2))+aimag(h(35)) yrh = real(h(2))-real(h(35)) yih = aimag(h(2))-aimag(h(35)) xri = real(h(32))+real(h(5)) xii = aimag(h(32))+aimag(h(5)) yri = real(h(32))-real(h(5)) yii = aimag(h(32))-aimag(h(5)) xr1a = xr1+xra xi1a = xi1+xia xr1_a = xr1-xra xi1_a = xi1-xia xr2b = xr2+xrb xi2b = xi2+xib xr2_b = xr2-xrb xi2_b = xi2-xib xr3c = xr3+xrc xi3c = xi3+xic xr3_c = xr3-xrc xi3_c = xi3-xic xr4d = xr4+xrd xi4d = xi4+xid xr4_d = xr4-xrd xi4_d = xi4-xid xr5e = xr5+xre xi5e = xi5+xie xr5_e = xr5-xre xi5_e = xi5-xie xr6f = xr6+xrf xi6f = xi6+xif xr6_f = xr6-xrf xi6_f = xi6-xif xr7g = xr7+xrg xi7g = xi7+xig xr7_g = xr7-xrg xi7_g = xi7-xig xr8h = xr8+xrh xi8h = xi8+xih xr8_h = xr8-xrh xi8_h = xi8-xih xr9i = xr9+xri xi9i = xi9+xii xr9_i = xr9-xri xi9_i = xi9-xii ur1 = xr1a+xr4d+xr7g ui1 = xi1a+xi4d+xi7g ur4 = xr1a-xr4d ui4 = xi1a-xi4d ur7 = xr4d-xr7g ui7 = xi4d-xi7g ur2 = xr2b+xr5e+xr8h ui2 = xi2b+xi5e+xi8h ur5 = xr2b-xr5e ui5 = xi2b-xi5e ur8 = xr5e-xr8h ui8 = xi5e-xi8h ur3 = xr3c+xr6f+xr9i ui3 = xi3c+xi6f+xi9i ur6 = xr3c-xr6f ui6 = xi3c-xi6f ur9 = xr6f-xr9i ui9 = xi6f-xi9i ura = xr1_a+xr4_d+xr7_g uia = xi1_a+xi4_d+xi7_g urd = xr1_a-xr4_d uid = xi1_a-xi4_d urg = xr4_d-xr7_g uig = xi4_d-xi7_g urb = xr2_b+xr5_e+xr8_h uib = xi2_b+xi5_e+xi8_h ure = xr2_b-xr5_e uie = xi2_b-xi5_e urh = xr5_e-xr8_h uih = xi5_e-xi8_h urc = xr3_c+xr6_f+xr9_i uic = xi3_c+xi6_f+xi9_i urf = xr3_c-xr6_f uif = xi3_c-xi6_f uri = xr6_f-xr9_i uii = xi6_f-xi9_i ur123 = ur1+ur2+ur3 ui123 = ui1+ui2+ui3 sr0 = real(h(0))+ur123 si0 = aimag(h(0))+ui123 pr123 = real(h(0))+dc1*ur123 pi123 = aimag(h(0))+dc1*ui123 pr1 = pr123+dc2*ur2+dc3*ur3 pi1 = pi123+dc2*ui2+dc3*ui3 pr2 = pr123+dc3*ur1+dc2*ur3 pi2 = pi123+dc3*ui1+dc2*ui3 pr3 = pr123+dc2*ur1+dc3*ur2 pi3 = pi123+dc2*ui1+dc3*ui2 ur47 = ur4+ur7 ui47 = ui4+ui7 ur58 = ur5+ur8 ui58 = ui5+ui8 ur69 = ur6+ur9 ui69 = ui6+ui9 pr47 = dc4*ur47+dc7*ur58+dc10*ur69 pi47 = dc4*ui47+dc7*ui58+dc10*ui69 pr4 = pr47+dc5*ur7+dc8*ur8+dc11*ur9 pi4 = pi47+dc5*ui7+dc8*ui8+dc11*ui9 pr7 = pr47+dc6*ur4+dc9*ur5+dc12*ur6 pi7 = pi47+dc6*ui4+dc9*ui5+dc12*ui6 pr58 = dc13*ur47+dc4*ur58+dc7*ur69 pi58 = dc13*ui47+dc4*ui58+dc7*ui69 pr5 = pr58+dc14*ur7+dc5*ur8+dc8*ur9 pi5 = pi58+dc14*ui7+dc5*ui8+dc8*ui9 pr8 = pr58+dc15*ur4+dc6*ur5+dc9*ur6 pi8 = pi58+dc15*ui4+dc6*ui5+dc9*ui6 pr69 = dc16*ur47+dc13*ur58+dc4*ur69 pi69 = dc16*ui47+dc13*ui58+dc4*ui69 pr6 = pr69+dc17*ur7+dc14*ur8+dc5*ur9 pi6 = pi69+dc17*ui7+dc14*ui8+dc5*ui9 pr9 = pr69+dc18*ur4+dc15*ur5+dc6*ur6 pi9 = pi69+dc18*ui4+dc15*ui5+dc6*ui6 pra = dc19*ura+dc20*urb+dc21*urc pia = dc19*uia+dc20*uib+dc21*uic prb = dc21*ura+dc19*urb+dc20*urc pib = dc21*uia+dc19*uib+dc20*uic prc = dc20*ura+dc21*urb+dc19*urc pic = dc20*uia+dc21*uib+dc19*uic urdg = urd+urg uidg = uid+uig ureh = ure+urh uieh = uie+uih urfi = urf+uri uifi = uif+uii prdg = dc22*urdg+dc25*ureh+dc28*urfi pidg = dc22*uidg+dc25*uieh+dc28*uifi prd = prdg+dc23*urg+dc26*urh+dc29*uri pid = pidg+dc23*uig+dc26*uih+dc29*uii prg = prdg+dc24*urd+dc27*ure+dc30*urf pig = pidg+dc24*uid+dc27*uie+dc30*uif preh = dc31*urdg+dc22*ureh+dc25*urfi pieh = dc31*uidg+dc22*uieh+dc25*uifi pre = preh+dc32*urg+dc23*urh+dc26*uri pie = pieh+dc32*uig+dc23*uih+dc26*uii prh = preh+dc33*urd+dc24*ure+dc27*urf pih = pieh+dc33*uid+dc24*uie+dc27*uif prfi = dc34*urdg+dc31*ureh+dc22*urfi pifi = dc34*uidg+dc31*uieh+dc22*uifi prf = prfi+dc35*urg+dc32*urh+dc23*uri pif = pifi+dc35*uig+dc32*uih+dc23*uii pri = prfi+dc36*urd+dc33*ure+dc24*urf pii = pifi+dc36*uid+dc33*uie+dc24*uif sr1a = pr1+pr4 si1a = pi1+pi4 sr4d = pr1-pr4+pr7 si4d = pi1-pi4+pi7 sr7g = pr1-pr7 si7g = pi1-pi7 sr2b = pr2+pr5 si2b = pi2+pi5 sr5e = pr2-pr5+pr8 si5e = pi2-pi5+pi8 sr8h = pr2-pr8 si8h = pi2-pi8 sr3c = pr3+pr6 si3c = pi3+pi6 sr6f = pr3-pr6+pr9 si6f = pi3-pi6+pi9 sr9i = pr3-pr9 si9i = pi3-pi9 sr1_a = pra+prd si1_a = pia+pid sr4_d = pra-prd+prg si4_d = pia-pid+pig sr7_g = pra-prg si7_g = pia-pig sr2_b = prb+pre si2_b = pib+pie sr5_e = prb-pre+prh si5_e = pib-pie+pih sr8_h = prb-prh si8_h = pib-pih sr3_c = prc+prf si3_c = pic+pif sr6_f = prc-prf+pri si6_f = pic-pif+pii sr9_i = prc-pri si9_i = pic-pii sr1 = sr1a+sr1_a si1 = si1a+si1_a sra = sr1a-sr1_a sia = si1a-si1_a sr2 = sr2b+sr2_b si2 = si2b+si2_b srb = sr2b-sr2_b sib = si2b-si2_b sr3 = sr3c+sr3_c si3 = si3c+si3_c src = sr3c-sr3_c sic = si3c-si3_c sr4 = sr4d+sr4_d si4 = si4d+si4_d srd = sr4d-sr4_d sid = si4d-si4_d sr5 = sr5e+sr5_e si5 = si5e+si5_e sre = sr5e-sr5_e sie = si5e-si5_e sr6 = sr6f+sr6_f si6 = si6f+si6_f srf = sr6f-sr6_f sif = si6f-si6_f sr7 = sr7g+sr7_g si7 = si7g+si7_g srg = sr7g-sr7_g sig = si7g-si7_g sr8 = sr8h+sr8_h si8 = si8h+si8_h srh = sr8h-sr8_h sih = si8h-si8_h sr9 = sr9i+sr9_i si9 = si9i+si9_i sri = sr9i-sr9_i sii = si9i-si9_i yr47 = yr4+yr7 yi47 = yi4+yi7 vr12 = yr1+yr47 vi12 = yi1+yi47 vr4d = yr1+c1*yr47 vi4d = yi1+c1*yi47 vr7g = s1*(yr4-yr7) vi7g = s1*(yi4-yi7) yr58 = yr5+yr8 yi58 = yi5+yi8 vr13_2 = yr2+yr58 vi13_2 = yi2+yi58 vr5e = yr2+c1*yr58 vi5e = yi2+c1*yi58 vr8h = s1*(yr5-yr8) vi8h = s1*(yi5-yi8) yr69 = yr6+yr9 yi69 = yi6+yi9 vr1_3 = yr3+yr69 vi1_3 = yi3+yi69 vr6f = yr3+c1*yr69 vi6f = yi3+c1*yi69 vr9i = s1*(yr6-yr9) vi9i = s1*(yi6-yi9) yrdg = yrd+yrg yidg = yid+yig vrab = yra+yrdg viab = yia+yidg vr7_g = yra+c1*yrdg vi7_g = yia+c1*yidg vrd_4 = s1*(yrd-yrg) vid_4 = s1*(yid-yig) yreh = yre+yrh yieh = yie+yih vrac_b = yrb+yreh viac_b = yib+yieh vr8_h = yrb+c1*yreh vi8_h = yib+c1*yieh vre_5 = s1*(yre-yrh) vie_5 = s1*(yie-yih) yrfi = yrf+yri yifi = yif+yii vra_c = yrc+yrfi via_c = yic+yifi vr9_i = yrc+c1*yrfi vi9_i = yic+c1*yifi vrf_6 = s1*(yrf-yri) vif_6 = s1*(yif-yii) vr1 = vr12+vr13_2+vr1_3 vi1 = vi12+vi13_2+vi1_3 vr2 = vr12-vr13_2 vi2 = vi12-vi13_2 vr3 = vr13_2-vr1_3 vi3 = vi13_2-vi1_3 vra = vrab+vrac_b+vra_c via = viab+viac_b+via_c vrb = vrab-vrac_b vib = viab-viac_b vrc = vrac_b-vra_c vic = viac_b-via_c vr4 = vr4d-vrd_4 vi4 = vi4d-vid_4 vrd = vr4d+vrd_4 vid = vi4d+vid_4 vr5 = vr5e-vre_5 vi5 = vi5e-vie_5 vre = vr5e+vre_5 vie = vi5e+vie_5 vr6 = vr6f-vrf_6 vi6 = vi6f-vif_6 vrf = vr6f+vrf_6 vif = vi6f+vif_6 vr7 = vr7g+vr7_g vi7 = vi7g+vi7_g vrg = vr7g-vr7_g vig = vi7g-vi7_g vr8 = vr8h+vr8_h vi8 = vi8h+vi8_h vrh = vr8h-vr8_h vih = vi8h-vi8_h vr9 = vr9i+vr9_i vi9 = vi9i+vi9_i vri = vr9i-vr9_i vii = vi9i-vi9_i qr1 = ds1*vr1+ds2*vra qi1 = ds1*vi1+ds2*via qra = ds1*vra-ds2*vr1 qia = ds1*via-ds2*vi1 vr23 = vr2+vr3 vi23 = vi2+vi3 vrbc = vrb+vrc vibc = vib+vic qr23 = ds3*vr23+ds6*vrbc qi23 = ds3*vi23+ds6*vibc qr2 = qr23+ds4*vr3+ds7*vrc qi2 = qi23+ds4*vi3+ds7*vic qr3 = qr23+ds5*vr2+ds8*vrb qi3 = qi23+ds5*vi2+ds8*vib qrbc = ds3*vrbc-ds6*vr23 qibc = ds3*vibc-ds6*vi23 qrb = qrbc+ds4*vrc-ds7*vr3 qib = qibc+ds4*vic-ds7*vi3 qrc = qrbc+ds5*vrb-ds8*vr2 qic = qibc+ds5*vib-ds8*vi2 vr47 = vr4+vr7 vi47 = vi4+vi7 vr58 = vr5+vr8 vi58 = vi5+vi8 vr69 = vr6+vr9 vi69 = vi6+vi9 qr47 = ds9*vr47+ds12*vr58+ds15*vr69 qi47 = ds9*vi47+ds12*vi58+ds15*vi69 qr4 = qr47+ds10*vr7+ds13*vr8+ds16*vr9 qi4 = qi47+ds10*vi7+ds13*vi8+ds16*vi9 qr7 = qr47+ds11*vr4+ds14*vr5+ds17*vr6 qi7 = qi47+ds11*vi4+ds14*vi5+ds17*vi6 qr58 = ds18*vr47+ds9*vr58+ds12*vr69 qi58 = ds18*vi47+ds9*vi58+ds12*vi69 qr5 = qr58+ds19*vr7+ds10*vr8+ds13*vr9 qi5 = qi58+ds19*vi7+ds10*vi8+ds13*vi9 qr8 = qr58+ds20*vr4+ds11*vr5+ds14*vr6 qi8 = qi58+ds20*vi4+ds11*vi5+ds14*vi6 qr69 = ds21*vr47+ds18*vr58+ds9*vr69 qi69 = ds21*vi47+ds18*vi58+ds9*vi69 qr6 = qr69+ds22*vr7+ds19*vr8+ds10*vr9 qi6 = qi69+ds22*vi7+ds19*vi8+ds10*vi9 qr9 = qr69+ds23*vr4+ds20*vr5+ds11*vr6 qi9 = qi69+ds23*vi4+ds20*vi5+ds11*vi6 vrdg = vrd+vrg vidg = vid+vig vreh = vre+vrh vieh = vie+vih vrfi = vrf+vri vifi = vif+vii qrdg = ds24*vrdg+ds27*vreh+ds30*vrfi qidg = ds24*vidg+ds27*vieh+ds30*vifi qrd = qrdg+ds25*vrg+ds28*vrh+ds31*vri qid = qidg+ds25*vig+ds28*vih+ds31*vii qrg = qrdg+ds26*vrd+ds29*vre+ds32*vrf qig = qidg+ds26*vid+ds29*vie+ds32*vif qreh = ds33*vrdg+ds24*vreh+ds27*vrfi qieh = ds33*vidg+ds24*vieh+ds27*vifi qre = qreh+ds34*vrg+ds25*vrh+ds28*vri qie = qieh+ds34*vig+ds25*vih+ds28*vii qrh = qreh+ds35*vrd+ds26*vre+ds29*vrf qih = qieh+ds35*vid+ds26*vie+ds29*vif qrfi = ds36*vrdg+ds33*vreh+ds24*vrfi qifi = ds36*vidg+ds33*vieh+ds24*vifi qrf = qrfi+ds37*vrg+ds34*vrh+ds25*vri qif = qifi+ds37*vig+ds34*vih+ds25*vii qri = qrfi+ds38*vrd+ds35*vre+ds26*vrf qii = qifi+ds38*vid+ds35*vie+ds26*vif qr12 = qr1+qr2 qi12 = qi1+qi2 qr13_2 = qr1-qr2+qr3 qi13_2 = qi1-qi2+qi3 qr1_3 = qr1-qr3 qi1_3 = qi1-qi3 qrab = qra+qrb qiab = qia+qib qrac_b = qra-qrb+qrc qiac_b = qia-qib+qic qra_c = qra-qrc qia_c = qia-qic qr4d = qrd+qr4 qi4d = qid+qi4 qrd_4 = qrd-qr4 qid_4 = qid-qi4 qr5e = qre+qr5 qi5e = qie+qi5 qre_5 = qre-qr5 qie_5 = qie-qi5 qr6f = qrf+qr6 qi6f = qif+qi6 qrf_6 = qrf-qr6 qif_6 = qif-qi6 qr7g = qr7+qrg qi7g = qi7+qig qr7_g = qr7-qrg qi7_g = qi7-qig qr8h = qr8+qrh qi8h = qi8+qih qr8_h = qr8-qrh qi8_h = qi8-qih qr9i = qr9+qri qi9i = qi9+qii qr9_i = qr9-qri qi9_i = qi9-qii tr47 = qr12+c1*qr4d ti47 = qi12+c1*qi4d tr4_7 = s1*qr7g ti4_7 = s1*qi7g tr1 = qr12+qr4d ti1 = qi12+qi4d tr4 = tr47+tr4_7 ti4 = ti47+ti4_7 tr7 = tr47-tr4_7 ti7 = ti47-ti4_7 tr58 = qr13_2+c1*qr5e ti58 = qi13_2+c1*qi5e tr5_8 = s1*qr8h ti5_8 = s1*qi8h tr2 = qr13_2+qr5e ti2 = qi13_2+qi5e tr5 = tr58+tr5_8 ti5 = ti58+ti5_8 tr8 = tr58-tr5_8 ti8 = ti58-ti5_8 tr69 = qr1_3+c1*qr6f ti69 = qi1_3+c1*qi6f tr6_9 = s1*qr9i ti6_9 = s1*qi9i tr3 = qr1_3+qr6f ti3 = qi1_3+qi6f tr6 = tr69+tr6_9 ti6 = ti69+ti6_9 tr9 = tr69-tr6_9 ti9 = ti69-ti6_9 trdg = qrab+c1*qr7_g tidg = qiab+c1*qi7_g trd_g = s1*qrd_4 tid_g = s1*qid_4 tra = qrab+qr7_g tia = qiab+qi7_g trd = trdg+trd_g tid = tidg+tid_g trg = trdg-trd_g tig = tidg-tid_g treh = qrac_b+c1*qr8_h tieh = qiac_b+c1*qi8_h tre_h = s1*qre_5 tie_h = s1*qie_5 trb = qrac_b+qr8_h tib = qiac_b+qi8_h tre = treh+tre_h tie = tieh+tie_h trh = treh-tre_h tih = tieh-tie_h trfi = qra_c+c1*qr9_i tifi = qia_c+c1*qi9_i trf_i = s1*qrf_6 tif_i = s1*qif_6 trc = qra_c+qr9_i tic = qia_c+qi9_i trf = trfi+trf_i tif = tifi+tif_i tri = trfi-trf_i tii = tifi-tif_i h(0) = cmplx(sr0,si0,wp) h(5) = cmplx(sr1+ti1,si1-tr1,wp) h(32) = cmplx(sr1-ti1,si1+tr1,wp) h(35) = cmplx(sr2+ti2,si2-tr2,wp) h(2) = cmplx(sr2-ti2,si2+tr2,wp) h(23) = cmplx(sr3+ti3,si3-tr3,wp) h(14) = cmplx(sr3-ti3,si3+tr3,wp) h(13) = cmplx(sr4+ti4,si4-tr4,wp) h(24) = cmplx(sr4-ti4,si4+tr4,wp) h(17) = cmplx(sr5+ti5,si5-tr5,wp) h(20) = cmplx(sr5-ti5,si5+tr5,wp) h(8) = cmplx(sr6+ti6,si6-tr6,wp) h(29) = cmplx(sr6-ti6,si6+tr6,wp) h(19) = cmplx(sr7+ti7,si7-tr7,wp) h(18) = cmplx(sr7-ti7,si7+tr7,wp) h(22) = cmplx(sr8+ti8,si8-tr8,wp) h(15) = cmplx(sr8-ti8,si8+tr8,wp) h(6) = cmplx(sr9+ti9,si9-tr9,wp) h(31) = cmplx(sr9-ti9,si9+tr9,wp) h(30) = cmplx(sra+tia,sia-tra,wp) h(7) = cmplx(sra-tia,sia+tra,wp) h(25) = cmplx(srb+tib,sib-trb,wp) h(12) = cmplx(srb-tib,sib+trb,wp) h(27) = cmplx(src+tic,sic-trc,wp) h(10) = cmplx(src-tic,sic+trc,wp) h(4) = cmplx(srd+tid,sid-trd,wp) h(33) = cmplx(srd-tid,sid+trd,wp) h(28) = cmplx(sre+tie,sie-tre,wp) h(9) = cmplx(sre-tie,sie+tre,wp) h(11) = cmplx(srf+tif,sif-trf,wp) h(26) = cmplx(srf-tif,sif+trf,wp) h(3) = cmplx(srg+tig,sig-trg,wp) h(34) = cmplx(srg-tig,sig+trg,wp) h(21) = cmplx(srh+tih,sih-trh,wp) h(16) = cmplx(srh-tih,sih+trh,wp) h(36) = cmplx(sri+tii,sii-tri,wp) h(1) = cmplx(sri-tii,sii+tri,wp) end subroutine fft37t