A couple of implementation details are worthy of discussion. In particular, how does one go about designing operators to always loop over inputs or outputs, and how does one design weighting functions so that the operator pairs are as near to exact adjoints as possible?
It is worth pointing out that, though this paper speaks of the attractiveness of approximate adjoints, the goal is not to design an operator pair which fails the dot product test, but rather to design an operator pair which more closely approximates the continuous and unitary properties of the wave equation. Changing the operator changes the objective function, and the hope is that by recoding operator pairs so that they will always operate as pull operators, we will end up with an objective function that is easier to minimize. The idea is analogous to changing the elliptical objective function for a two parameter problem to a spherical one. The number of iterations required in theory is unchanged, but in practice it is halved.