22 #ifndef __stir_recon_buildblock_ParametricQuadraticPrior_H__ 23 #define __stir_recon_buildblock_ParametricQuadraticPrior_H__ 80 template <
typename TargetT>
82 GeneralisedPrior<TargetT>,
83 PriorWithParabolicSurrogate<TargetT>>
90 shared_ptr<TargetT> kappa_ptr;
106 double compute_value(
const TargetT& current_image_estimate);
109 void compute_gradient(TargetT& prior_gradient,
const TargetT& current_image_estimate);
113 void parabolic_surrogate_curvature(TargetT& parabolic_surrogate_curvature,
const TargetT& current_image_estimate);
115 void compute_Hessian(TargetT& prior_Hessian_for_single_densel,
118 const TargetT ¤t_image_estimate);
121 virtual Succeeded add_multiplication_with_approximate_Hessian(TargetT& output,
const TargetT& input)
const;
134 shared_ptr<TargetT> get_kappa_sptr()
const;
137 void set_kappa_sptr(
const shared_ptr<TargetT>&);
140 virtual Succeeded set_up(shared_ptr<const TargetT>
const& target_sptr);
163 virtual void check(TargetT
const& current_image_estimate)
const;
165 virtual void set_defaults();
166 virtual void initialise_keymap();
167 virtual bool post_processing();
A templated class for vectors, but with indices starting not from 0.
Definition: ArrayFilter1DUsingConvolution.h:31
Declaration of class stir::QuadraticPrior.
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
defines the stir::DiscretisedDensity class
defines the Array class for multi-dimensional (numeric) arrays
std::string kappa_filename
Filename for the image that will be read by post_processing()
Definition: ParametricQuadraticPrior.h:159
Array< 3, float > weights
penalty weights
Definition: ParametricQuadraticPrior.h:157
A class in the GeneralisedPrior hierarchy. This implements a quadratic Gibbs prior.
Definition: ParametricQuadraticPrior.h:81
this class implements priors with a parabolic surrogate curvature
Definition: PriorWithParabolicSurrogate.h:39
std::string gradient_filename_prefix
filename prefix for outputing the gradient whenever compute_gradient() is called. ...
Definition: ParametricQuadraticPrior.h:150
virtual bool parabolic_surrogate_curvature_depends_on_argument() const
A function that allows skipping some computations if the curvature is independent of the current_esti...
Definition: ParametricQuadraticPrior.h:103
defines the stir::VectorWithOffset class
Declaration of class stir::ParametricDiscretisedDensity.
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files...
Definition: RegisteredParsingObject.h:77
static const char *const registered_name
Name which will be used when parsing a GeneralisedPrior object.
Definition: ParametricQuadraticPrior.h:95
Declaration of class stir::PriorWithParabolicSurrogate.
bool only_2D
can be set during parsing to restrict the weights to the 2D case
Definition: ParametricQuadraticPrior.h:144
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition: Succeeded.h:43
Declaration of class stir::KineticParameters.
Declaration of class stir::RegisteredParsingObject.