13#ifndef __stir_recon_buildblock_IterativeReconstruction_h__
14# define __stir_recon_buildblock_IterativeReconstruction_h__
80template <
class TargetT>
101 int get_subset_num();
112 virtual TargetT* get_initial_data_ptr()
const;
130 Succeeded reconstruct(shared_ptr<TargetT>
const& target_data_sptr)
override;
135 std::string make_filename_prefix_subiteration_num(
const std::string& filename_prefix)
const;
140 std::string make_filename_prefix_subiteration_num()
const;
149 shared_ptr<GeneralisedObjectiveFunction<TargetT>> get_objective_function_sptr()
const;
152 const int get_max_num_full_iterations()
const;
155 const int get_num_subsets()
const;
158 const int get_num_subiterations()
const;
161 const int get_start_subiteration_num()
const;
164 const int get_start_subset_num()
const;
168 const int get_save_interval()
const;
171 const bool get_randomise_subset_order()
const;
176 shared_ptr<DataProcessor<TargetT>> get_inter_iteration_filter_sptr();
179 const int get_inter_iteration_filter_interval()
const;
182 const int get_report_objective_function_values_interval()
const;
195 void set_max_num_full_iterations(
const int);
198 void set_num_subsets(
const int);
201 void set_num_subiterations(
const int);
204 void set_start_subiteration_num(
const int);
207 void set_start_subset_num(
const int);
211 void set_save_interval(
const int);
214 void set_randomise_subset_order(
const bool);
220 void set_inter_iteration_filter_interval(
const int);
223 void set_report_objective_function_values_interval(
const int);
228 void set_input_data(
const shared_ptr<ExamData>& arg)
override;
229 const ExamData& get_input_data()
const override;
232 Succeeded set_up(shared_ptr<TargetT>
const& target_data_ptr)
override;
238 IterativeReconstruction();
257 shared_ptr<GeneralisedObjectiveFunction<TargetT>> objective_function_sptr;
Declaration of class stir::DataProcessor.
Declaration of class stir::GeneralisedObjectiveFunction.
declares the stir::Reconstruction class
Base class that defines an interface for classes that do data processing.
Definition DataProcessor.h:47
base class for data objects such as ProjData etc
Definition ExamData.h:34
A base class for 'generalised' objective functions, i.e. objective functions for which at least a 'gr...
Definition GeneralisedObjectiveFunction.h:84
int subiteration_num
the subiteration counter
Definition IterativeReconstruction.h:260
int report_objective_function_values_interval
subiteration interval at which to report the values of the objective function
Definition IterativeReconstruction.h:302
int num_subiterations
the number of subiterations
Definition IterativeReconstruction.h:274
int get_subiteration_num() const
accessor for the subiteration counter
Definition IterativeReconstruction.h:88
virtual void update_estimate(TargetT ¤t_estimate)=0
the principal operations for updating the data iterates at each iteration
int start_subset_num
the starting subset number
Definition IterativeReconstruction.h:283
shared_ptr< DataProcessor< TargetT > > inter_iteration_filter_ptr
inter-iteration filter
Definition IterativeReconstruction.h:294
int max_num_full_iterations
the maximum allowed number of full iterations
Definition IterativeReconstruction.h:268
int save_interval
subiteration interval at which data will be saved
Definition IterativeReconstruction.h:288
int start_subiteration_num
value with which to initialize the subiteration counter
Definition IterativeReconstruction.h:277
int inter_iteration_filter_interval
subiteration interval at which to apply inter-iteration filters
Definition IterativeReconstruction.h:297
bool post_processing() override
used to check acceptable parameter ranges, etc...
Definition IterativeReconstruction.cxx:135
void initialise_keymap() override
Initialise all keywords.
Definition IterativeReconstruction.cxx:77
int num_subsets
the number of ordered subsets
Definition IterativeReconstruction.h:271
bool randomise_subset_order
signals whether to randomise the subset order in each iteration
Definition IterativeReconstruction.h:291
bool terminate_iterations
used to abort the loop over iterations
Definition IterativeReconstruction.h:263
std::string initial_data_filename
name of the file containing the data for intializing the reconstruction
Definition IterativeReconstruction.h:280
virtual void ask_parameters()
prompts the user to enter parameter values manually
Definition IterativeReconstruction.cxx:95
void set_defaults() override
Set defaults before parsing.
Definition IterativeReconstruction.cxx:55
virtual void end_of_iteration_processing(TargetT ¤t_estimate)
operations for the end of the iteration
Definition IterativeReconstruction.cxx:533
Reconstruction()
default constructor (calls set_defaults())
Definition Reconstruction.cxx:41
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
A templated class for vectors, but with indices starting not from 0.
Definition VectorWithOffset.h:65
Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast into the stir names...