STIR 6.4.0

Implementation of the Quadratic penalty potential. More...

#include "stir/recon_buildblock/GibbsQuadraticPenalty.h"

Public Member Functions

__host__ __device__ double value (const elemT &val_center, const elemT val_neigh, int z, int y, int x) const
 Method for computing the potential value.
 
__host__ __device__ double derivative_10 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const
 Method for computing the first derivative with respect to val_center.
 
__host__ __device__ double derivative_20 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const
 Method for computing the second derivative with respect to val_center.
 
__host__ __device__ double derivative_11 (const elemT val_center, const elemT val_neigh, int z, int y, int x) const
 Method for computing the mixed second derivative.
 
void initialise_keymap (KeyParser &parser)
 Method for setting up parsing additional parameters.
 
void set_defaults ()
 Set default values for potential-specific parameters.
 

Static Public Member Functions

static bool is_convex ()
 method to indicate whether the the prior defined by this potential is convex
 

Detailed Description

template<typename elemT>
class stir::QuadraticPotential< elemT >

Implementation of the Quadratic penalty potential.

The prior energy is:

\[\sum_{r,dr} \kappa_{r} \kappa_{r+dr} w_{dr} \frac{1}{2}(f_r - f_{r+dr})^2
\]

where:

  • $f_r$ and $f_{r+dr}$ are pixel values at positions $r$ and $r+dr$
  • $w_{dr}$ are distance-dependent weights
  • $\kappa$ provides spatially-varying penalty weights (optional)

The documentation for this class was generated from the following file: