21 #ifndef __stir_recon_buildblock_GeneralisedPrior_H__ 22 #define __stir_recon_buildblock_GeneralisedPrior_H__ 40 template <
typename DataT>
50 virtual double compute_value(
const DataT& current_estimate) = 0;
56 virtual void compute_gradient(DataT& prior_gradient,
const DataT& current_estimate) = 0;
66 virtual void compute_Hessian(DataT& prior_Hessian_for_single_densel,
68 const DataT& current_image_estimate)
const;
77 virtual void add_multiplication_with_approximate_Hessian(DataT& output,
const DataT& input)
const;
84 virtual void accumulate_Hessian_times_input(DataT& output,
const DataT& current_estimate,
const DataT& input)
const;
86 inline float get_penalisation_factor()
const;
87 inline void set_penalisation_factor(
float new_penalisation_factor);
90 virtual Succeeded set_up(shared_ptr<const DataT>
const& target_sptr);
94 virtual bool is_convex()
const = 0;
97 float penalisation_factor;
100 void set_defaults()
override;
103 void initialise_keymap()
override;
106 virtual void check(DataT
const& current_estimate)
const;
108 bool _already_set_up;
Declaration of class stir::ParsingObject.
A base class for 'generalised' priors, i.e. priors for which at least a 'gradient' is defined...
Definition: GeneralisedPrior.h:41
Inline implementations for class stir::GeneralisedPrior.
Declaration of class stiir::RegisteredObject.
Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes wi...
Definition: RegisteredObject.h:95
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43