STIR  6.2.0
FilterRootPrior.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2000- 2007, Hammersmith Imanet Ltd
5  This file is part of STIR.
6 
7  SPDX-License-Identifier: Apache-2.0
8 
9  See STIR/LICENSE.txt for details
10 */
21 #ifndef __stir_recon_buildblock_FilterRootPrior_H__
22 #define __stir_recon_buildblock_FilterRootPrior_H__
23 
26 #include "stir/shared_ptr.h"
27 
28 START_NAMESPACE_STIR
29 
30 template <typename DataT>
31 class DataProcessor;
32 
63 template <typename DataT>
64 class FilterRootPrior : public RegisteredParsingObject<FilterRootPrior<DataT>, GeneralisedPrior<DataT>, GeneralisedPrior<DataT>>
65 {
66 private:
68 
69 public:
71  static const char* const registered_name;
72 
75 
77  FilterRootPrior(shared_ptr<DataProcessor<DataT>> const&, const float penalization_factor);
78 
79  bool is_convex() const override;
80 
82 
85  double compute_value(const DataT& current_estimate) override;
86 
88  void compute_gradient(DataT& prior_gradient, const DataT& current_estimate) override;
89 
91  Succeeded set_up(shared_ptr<const DataT> const& target_sptr) override;
92 
93 protected:
95  void check(DataT const& current_image_estimate) const override;
96 
97 private:
98  shared_ptr<DataProcessor<DataT>> filter_ptr;
99  void set_defaults() override;
100  void initialise_keymap() override;
101 };
102 
103 END_NAMESPACE_STIR
104 
105 #endif
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding b...
Base class that defines an interface for classes that do data processing.
Definition: DataProcessor.h:46
A base class for &#39;generalised&#39; priors, i.e. priors for which at least a &#39;gradient&#39; is defined...
Definition: GeneralisedPrior.h:41
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: FilterRootPrior.h:71
Declaration of class stir::GeneralisedPrior.
A class in the GeneralisedPrior hierarchy. This implements &#39;generalised&#39; priors a la the Median Root ...
Definition: FilterRootPrior.h:64
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::RegisteredParsingObject.