A detailed description of how the migration and modeling algorithm works is
given in the previous report Bevc and Claerbout (1992).
The subroutine kfastaax()
is called with conj==0 for
modeling and with conj==1 for migration.
The version of kfastaax() presented here differs
from the previous version
in that the input is not transposed. This does not result in any substantial
speed penalty but it allows velocity to vary with midpoint.
In order to compensate for the Hankel tail,
a causal half-order derivative is applied to the data before
calling the subroutine in the modeling mode, and an anticausal half-order
derivative is applied after calling the subroutine in the migration mode.