When reflectors in the earth are dipping, or broken into point scatterers,
time-to-depth conversion is not simply a stretching of the time axis.
Modeling is done in a variety of ways,
one of which is to model each point in the depth (*x*,*z*)-plane
by a hyperbola in the data (*x*,*t*)-plane.
The adjoint operation consumes much computer power
in the petroleum-prospecting industry and is called ``migration."
Many migration methods exist,
most of which are taken up in IEI,
but that book does not describe the adjoint property
I discuss below.

Hyperbola superposition is the adjoint to hyperbola recognition
by summing along hyperbolas.
The summing is called ``**Kirchhoff** **migration**'' or ``**imaging**,''
and the spraying is called ``Kirchhoff modeling."
The name comes from Kirchhoff's diffraction integral.

In the pseudocode below,
the parameter `ih` refers to the separation
of a point on a hyperbola from its top at `ix`.
Ignoring ``if index off data'' tests,
I show Kirchhoff modeling and migration
in the pseudocode following:

do iz = 1,nz do ix = 1,nx do ih = -25, 25 it = sqrt( iziz + ihih )/velocity ig = ix + ih if not adjoint zz(iz,ix) = zz(iz,ix) + tt(it,ig) # imaging if adjoint tt(it,ig) = tt(it,ig) + zz(iz,ix) # modeling

We can speed up the program by
moving the `ix` loop to
the inside of the square root and interpolation overheads.

10/21/1998