The **two-sided leaky integral**
commonly arises as an even function,
which is an ordinary leaky integral in one direction
followed by another in the opposite direction.
We will see also that the single leaky integral
need not be causal; it could be an odd function.

The causal-integration operator flows one direction in time. Anticausal integration flows the other. Causal integration followed by anticausal integration makes a symmetrical smoothing operation, frequently used on the horizontal space axis. Since the idea of integration is generally associated with a long decay constant, and since data is generally limited in space, particular attention is usually given to the side boundaries. The simplest side boundaries are zero values, but these are generally rejected because people do not wish to assume data is zero beyond where it is measured. The most popular side conditions are not much more complicated, however. These are zero-slope side boundaries like those shown in Figure 6.

leakend
Pulses at various distances from a side boundary smoothed
with two-sided leaky integration
and zero-slope side conditions.
Beyond the last value at the edge is a theoretical value
that is the same as the edge value.
Figure 6 |

I habitually smoothed with damped exponentials, but I switched to triangles after I encountered several examples where the exponential tails decreased too slowly.

The analysis for double-sided damped leaky integration with
**zero-slope** boundaries

is found in my previous books and elsewhere,
so here I will simply state the result and leave you with
a working program.
This kind of integration
arises in the numerical solution of wave equations.
Mathematically, it means solving
for *V*(*x*) given *U*(*x*).
In the limit of small , the operation is simply double integration.
Nonzero makes it **leaky integration**.

The operation looks like the **Helmholtz equation** of physics
but is not, because we take for damped solutions,
whereas the Helmholtz equation typically takes for oscillating wave solutions.
Figure 6 was created with
`leaky()`, which performs the smoothing task
using a double-sided exponential response
with a decay to amplitude *e ^{-1}* in a given

# keyword: tridiagonal smoothing on 1-axis or 2-axis subroutine leaky( distance, m1, n12, uu, vv ) integer i, m1, n12 real distance # input: 1. < distance < infinity real uu(m1,n12) # data in is the vector (uu( 1, i), i=1,n12) real vv(m1,n12) # data out is the vector (vv( 1, i), i=1,n12) real a, b, dc, side temporary real vecin( n12), vecout( n12) a = - (1.-1./distance); b = 1.+a*a; dc = b+a+a a = a/dc; b = b/dc; side = a + b do i= 1,n12 { vecin(i) = uu(1,i)} if( distance<=1.|| n12==1) {call copy( n12, vecin, vecout)} else {call tris( n12, side, a, b, a, side, vecin, vecout)} do i= 1,n12 { vv(1,i) = vecout(i) } return; end

# tridiagonal simultaneous equations as in FGDP and IEI # subroutine tris( n, endl, a, b, c, endr, d, t ) integer i, n real endl, a, b, c, endr, d(n), t(n) temporary real e(n), f(n), deni(n) if( n == 1) { t(1) = d(1) / b; return } e(1) = - a / endl do i= 2, n-1 { deni(i) = 1. / ( b + c * e(i-1) ) e(i) = - a * deni(i) } f(1) = d(1) / endl do i= 2, n-1 f(i) = (d(i) - c * f(i-1)) * deni(i) t(n) = ( d(n) - c * f(n-1) ) / ( endr + c * e(n-1) ) do i= n-1, 1, -1 t(i) = e(i) * t(i+1) + f(i) return; end

It is convenient to refer to the symmetrical double *integration*
operator as , where the superscripts denote integration,
in contrast to the usual subscripts, which denote
**differentiation**.
Since differentiation is widely regarded as an odd operator,
it is natural also to define the odd integration operator
.

10/21/1998