Skip to content

QuadPenalty

template <typename T1> class QuadPenalty : public Robject<T1>

Quadratic (Tikhonov) regularization penalty.

Implements the penalty: $\(R(\mathbf{x}) = \frac{\beta}{2}\|C\mathbf{x}\|^2\)$

where \(C\) is the finite-difference operator inherited from Robject.

Potential functions: - \(\psi(d) = \frac{1}{2}d^2\) - \(\dot\psi(d) = d\) - \(\omega(d) = 1\)

All three potential functions correspond to the quadratic case: wpot returns all-ones, dpot returns the identity, and pot returns \(\frac{1}{2}|d|^2\).

\(\beta\) controls regularization strength. Larger \(\beta\) produces smoother images with lower noise; smaller \(\beta\) preserves detail but may amplify noise. Typical range depends on SNR and data scaling.

QuadPenalty<float> R(Nx, Ny, Nz, beta);
auto xhat = solve_pwls_pcg<float>(x0, G, W, yi, R, niter);

See : TVPenalty for an edge-preserving alternative.

See : Robject for the base class interface.

T1 : Floating-point precision type (float or double).

Functions

Name Description
QuadPenalty Default constructor.
QuadPenalty Construct a quadratic penalty operator.
wpot Quadratic weight function: returns all-ones (constant weight). d : Finite-difference vector. Return : Vector of ones, same length as d.
dpot Quadratic derivative: returns d (identity). d : Finite-difference vector. Return : d unchanged.
pot Quadratic potential: returns $\frac{1}{2}

Function Details

QuadPenalty

QuadPenalty()

Default constructor.

QuadPenalty(uword nx, uword ny, uword nz, T1 beta, uword dims2penalize = 3)

Construct a quadratic penalty operator.

nx : Image x-dimension.

ny : Image y-dimension.

nz : Image z-dimension (use 1 for 2-D).

beta : Regularization strength \(\beta\).

dims2penalize : Number of spatial dimensions to penalize (default 3).

dpot

Col<CxT1> dpot(const Col<CxT1>& d) const override

Quadratic derivative: returns `d` (identity).

d : Finite-difference vector.

Return : d unchanged.

pot

Col<CxT1> pot(const Col<CxT1>& d) const override

Quadratic potential: returns $\frac{1}{2}|d|^2$.

d : Finite-difference vector.

Return : Per-element values \(\frac{1}{2}|d_k|^2\).

wpot

Col<CxT1> wpot(const Col<CxT1>& d) const override

Quadratic weight function: returns all-ones (constant weight).

d : Finite-difference vector.

Return : Vector of ones, same length as d.