STIR 6.4.0
PriorWithParabolicSurrogate.h
Go to the documentation of this file.
1//
2//
12/*
13 Copyright (C) 2002- 2009, Hammersmith Imanet Ltd
14 This file is part of STIR.
15
16 SPDX-License-Identifier: Apache-2.0
17
18 See STIR/LICENSE.txt for details
19*/
20
21#ifndef __stir_recon_buildblock_PriorWithParabolicSurrogate_H__
22#define __stir_recon_buildblock_PriorWithParabolicSurrogate_H__
23
26
27START_NAMESPACE_STIR
28
38template <typename TargetT>
39class PriorWithParabolicSurrogate : public GeneralisedPrior<TargetT>
40{
41public:
43 virtual void parabolic_surrogate_curvature(TargetT& parabolic_surrogate_curvature, const TargetT& current_estimate) = 0;
44
46
48 virtual bool parabolic_surrogate_curvature_depends_on_argument() const { return true; }
49#if 0
50 // TODO this does not work for arbitrary TargetT, but only 3-dimensional things
51 // maybe we could have a TargetT::index_type or so
52 virtual void
53 compute_Hessian(TargetT& prior_Hessian_for_single_densel,
54 const BasicCoordinate<3,int>& coords,
55 const TargetT &current_estimate) =0;
56#endif
57};
58
59END_NAMESPACE_STIR
60
61#endif
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Declaration of class stir::GeneralisedPrior.
class BasicCoordinate<int num_dimensions, typename coordT> defines num_dimensions -dimensional coordi...
Definition BasicCoordinate.h:57
this class implements priors with a parabolic surrogate curvature
Definition PriorWithParabolicSurrogate.h:40
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_esti...
Definition PriorWithParabolicSurrogate.h:48