subroutine simpleft( adj, add, t0,dt,tt,nt, f0,df, ff,nf) integer it,ie, adj, add, nt, nf complex cexp, cmplx, tt(nt), ff(nf) real pi2, freq, time, scale, t0,dt, f0,df call adjnull( adj, add, tt,nt*2, ff,nf*2 ) pi2= 2. * 3.14159265; scale = 1./sqrt( 1.*nt) df = (1./dt) / nf f0 = - .5/dt do ie = 1, nf { freq= f0 + df*(ie-1) do it = 1, nt { time= t0 + dt*(it-1) if( adj == 0 ) ff(ie)= ff(ie) + tt(it) * cexp(cmplx(0., pi2*freq*time)) * scale else tt(it)= tt(it) + ff(ie) * cexp(cmplx(0.,-pi2*freq*time)) * scale }} return; end

The total frequency band is
radians per sample unit
or Hz.
Dividing the total interval by the number of points `nf` gives .We could choose the frequencies to run from 0 to radians/sample.
That would work well for many applications,
but it would be a nuisance for applications such as differentiation
in the frequency domain, which require multiplication by including the **negative frequencies**
as well as the positive.
So it seems more natural to begin at the most negative frequency
and step forward to the most positive frequency.

12/26/2000