STIR  6.2.0
Public Member Functions | List of all members
stir::PriorWithParabolicSurrogate< TargetT > Class Template Referenceabstract

this class implements priors with a parabolic surrogate curvature More...

#include "stir/recon_buildblock/PriorWithParabolicSurrogate.h"

Inheritance diagram for stir::PriorWithParabolicSurrogate< TargetT >:
Inheritance graph
[legend]

Public Member Functions

virtual void parabolic_surrogate_curvature (TargetT &parabolic_surrogate_curvature, const TargetT &current_estimate)=0
 this should calculate the parabolic surrogate curvature
 
virtual bool parabolic_surrogate_curvature_depends_on_argument () const
 A function that allows skipping some computations if the curvature is independent of the current_estimate. More...
 
- Public Member Functions inherited from stir::GeneralisedPrior< TargetT >
virtual double compute_value (const TargetT &current_estimate)=0
 compute the value of the function More...
 
virtual void compute_gradient (TargetT &prior_gradient, const TargetT &current_estimate)=0
 This should compute the gradient of the log of the prior function at the current_estimate. More...
 
virtual void compute_Hessian (TargetT &prior_Hessian_for_single_densel, const BasicCoordinate< 3, int > &coords, const TargetT &current_image_estimate) const
 This computes a single row of the Hessian. More...
 
virtual void add_multiplication_with_approximate_Hessian (TargetT &output, const TargetT &input) const
 This should compute the multiplication of the Hessian with a vector and add it to output. More...
 
virtual void accumulate_Hessian_times_input (TargetT &output, const TargetT &current_estimate, const TargetT &input) const
 This should compute the multiplication of the Hessian with a vector and add it to output. More...
 
float get_penalisation_factor () const
 
void set_penalisation_factor (float new_penalisation_factor)
 
virtual Succeeded set_up (shared_ptr< const TargetT > const &target_sptr)
 Has to be called before using this object.
 
virtual bool is_convex () const=0
 Indicates if the prior is a smooth convex function. More...
 
- Public Member Functions inherited from stir::RegisteredObjectBase
virtual std::string get_registered_name () const =0
 Returns the name of the type of the object. More...
 
- Public Member Functions inherited from stir::ParsingObject
 ParsingObject (const ParsingObject &)
 
ParsingObjectoperator= (const ParsingObject &)
 
void ask_parameters ()
 
virtual std::string parameter_info ()
 
bool parse (std::istream &f)
 
bool parse (const char *const filename)
 

Additional Inherited Members

- Static Public Member Functions inherited from stir::RegisteredObject< GeneralisedPrior< TargetT > >
static GeneralisedPrior< TargetT > * read_registered_object (std::istream *in, const std::string &registered_name)
 Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream. More...
 
static GeneralisedPrior< TargetT > * ask_type_and_parameters ()
 ask the user for the type, and then calls read_registered_object(0, type) More...
 
static void list_registered_names (std::ostream &stream)
 List all possible registered names to the stream. More...
 
- Protected Types inherited from stir::RegisteredObject< GeneralisedPrior< TargetT > >
typedef GeneralisedPrior< TargetT > *(* RootFactory) (std::istream *)
 The type of a root factory is a function, taking an istream* as argument, and returning a Root*.
 
typedef FactoryRegistry< std::string, RootFactory, interfile_lessRegistryType
 The type of the registry.
 
- Protected Member Functions inherited from stir::GeneralisedPrior< TargetT >
void set_defaults () override
 sets value for penalisation factor More...
 
void initialise_keymap () override
 sets key for penalisation factor More...
 
virtual void check (TargetT const &current_estimate) const
 Check that the prior is ready to be used.
 
- Protected Member Functions inherited from stir::ParsingObject
virtual bool post_processing ()
 This will be called at the end of the parsing. More...
 
virtual void set_key_values ()
 This will be called before parsing or parameter_info is called. More...
 
- Static Protected Member Functions inherited from stir::RegisteredObject< GeneralisedPrior< TargetT > >
static RegistryTyperegistry ()
 Static function returning the registry. More...
 
- Protected Attributes inherited from stir::GeneralisedPrior< TargetT >
float penalisation_factor
 
bool _already_set_up
 
- Protected Attributes inherited from stir::ParsingObject
KeyParser parser
 

Detailed Description

template<typename TargetT>
class stir::PriorWithParabolicSurrogate< TargetT >

this class implements priors with a parabolic surrogate curvature

See for example Erdogan and Fessler, Ordered subsets algorithms for transmission tomography, PMB, 44 (1999) 2835.

Member Function Documentation

◆ parabolic_surrogate_curvature_depends_on_argument()

template<typename TargetT>
virtual bool stir::PriorWithParabolicSurrogate< TargetT >::parabolic_surrogate_curvature_depends_on_argument ( ) const
inlinevirtual

A function that allows skipping some computations if the curvature is independent of the current_estimate.

Defaults to return true, but can be overloaded by the derived class.

Reimplemented in stir::LogcoshPrior< elemT >, stir::ParametricQuadraticPrior< TargetT >, stir::QuadraticPrior< elemT >, and stir::QuadraticPrior< float >.


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