Docstrings
``CalculateSampling(in)``

Calculate the sampling operator of an n-dimension input. The output has the same size as the input.

``ConjugateGradients(d,operators,parameters;<keyword arguments>)``

Conjugate Gradients following Algorithm 2 from Scales, 1987. The user provides an array of linear operators. Verify that linear operator(s) pass the dot product. See also: `DotTest`

Arguments

• `Niter=10` : Number of iterations
• `mu=0`
• `tol=1.0e-15`
``DotTest(m_rand,d_rand,operators,parameters)``

Dot product test for a vector of linear operators See also: `ConjugateGradients`

``FISTA(x0,y,Hop,PARAM,mu,Nit)``

FISTA: Solves the l2-l1 problem via Fast Iterative Shrinkage-Thresholdng Algorithm Given a linear operator H and it's adjoint H', the algorithm minimizes J = ||H x - y||2^2 + mu ||x||1, where H is the linear operator encapsulated in Hop

Arguments

• `y`:data
• `Hop`:linear operator
• `PARAM`:parameters to run Hop and it's adjoint
• `mu`:trade-off parameter
• `x0`:initial sol just to get size of x

Reference: Beck and Teboulle, 2009, A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems∗ SIAM J. Imaging Science, Vol 2 (1), 183-202

``IRLS(d,operators,parameters;<keyword arguments>)``

Non-quadratic regularization with Iteratively Reweighted Least Squares (IRLS).

Arguments

• `Niter_external=3`
• 'Niter_internal=10'
• `mu=0`
``SeisPOCS(in;<keyword arguments>)``

Projection Onto Convex Sets interpolation of seismic records.

Arguments

• `in`: input data that can have up to 5 dimensions. Time is in the first dimension.
• `p=1.` : exponent for thresholding (1 is equivalent to soft thres. high number is equivalent to hard thresholding)
• `alpha=1` : add-back ratio for imputation step. Use 1 for noise free data, and < 1 for denoising of original traces.
• `dt=0.001` : sampling rate along the time axis (in seconds)
• `fmax=99999.` : maximum temporal frequency to process.
• `padt=2` : padding in the time axis, first dimension.
• `padx=1` : padding in the spatial axes. (Dim 2 to 5).
• `Niter=100` : number of iterations
• `alpha=1`
``power_method(x0,Hop,PARAM)``

POWER_METHOD: Power iteration method to computes max eigenvalue of H'H where H and H' are given by Hop. This function is needed to evaluate the step parameter of FISTA.

Arguments

• `x0`:initial seed with dimensions such that H'Hx0 does not abort
• `Hop`:liner operator that encapsulates H and H' such that Hop(x,PARAM, 1) = H x Hop(y,PARAM,-1) = H'y
• `PARAM`:parameters to run Hop and it's adjoint