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


  • Niter=10 : Number of iterations
  • mu=0
  • tol=1.0e-15

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


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


  • 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).


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

Projection Onto Convex Sets interpolation of seismic records.


  • 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: 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.


  • 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