STIR  6.2.0
Modules | Files | Classes | Macros | Functions | Variables
Basic building blocks
Collaboration diagram for Basic building blocks:

Modules

 Generic fill/copy functionality for STIR object from/to iterators
 
 Implementation details for buildblock
 
 Items relating to vectors and (multi-dimensional) arrays
 
 Items relating to coordinates
 
 Items related to simple geometric calculations
 
 Items related to ancillary information such as radionuclide, patient info etc
 
 Items related to projection data
 
 Items related to image data
 
 Data processors
 
 Items related to date/time processing
 
 Items relating to threading of certain STIR functions.
 
 Items relating to CUDA and STIR buildblock objects.
 

Files

file  ArrayFilter2DUsingConvolution.cxx
 Implementations for class ArrayFilter2DUsingConvolution.
 
file  ArrayFilter3DUsingConvolution.cxx
 Implementations for class ArrayFilter3DUsingConvolution.
 
file  buildblock_registries.cxx
 File that registers all stir::RegisterObject children in buildblock.
 
file  ByteOrder.cxx
 This file initialises ByteOrder::native_order.
 
file  DetectorCoordinateMap.cxx
 Implementation of class stir::DetectorCoordinateMap.
 
file  ExamData.cxx
 implementation of stir::ExamData
 
file  ExamInfo.cxx
 implementation of stir::ExamInfo
 
file  GatedDiscretisedDensity.cxx
 Implementation of class stir::GatedDiscretisedDensity.
 
file  GeneralisedPoissonNoiseGenerator.cxx
 Implements stir::GeneralisedPoissonNoiseGenerator.
 
file  interfile_keyword_functions.cxx
 Implementations for stir::standardise_interfile_keyword.
 
file  KeyParser.cxx
 Implementations for class stir::KeyParser.
 
file  line.cxx
 Implementations for class stir::Line.
 
file  ML_norm.cxx
 utilities for finding normalisation factors using an ML approach
 
file  num_threads.cxx
 Implementation of functions related to setting/getting the number of threads.
 
file  overlap_interpolate.cxx
 Implementation of stir::overlap_interpolate.
 
file  ParsingObject.cxx
 Non-linline implementations for class stir::ParsingObject.
 
file  PatientPosition.cxx
 Implementations of class stir::PatientPosition.
 
file  recon_array_functions.cxx
 implementations for functions declared in recon_array_functions.h
 
file  Scanner.cxx
 Implementations for class stir::Scanner.
 
file  TimeFrameDefinitions.cxx
 Implementation of class stir::TimeFrameDefinitions.
 
file  TimeGateDefinitions.cxx
 Implementation of class stir::TimeGateDefinitions.
 
file  Verbosity.cxx
 Declaration of class stir::Verbosity.
 
file  zoom.cxx
 Implementations of the stir::zoom functions.
 
file  AbsTimeIntervalFromDynamicData.cxx
 Declaration of class stir::AbsTimeIntervalFromDynamicData.
 
file  AbsTimeIntervalWithParsing.cxx
 Declaration of class stir::AbsTimeIntervalWithParsing.
 
file  DAVArrayFilter3D.cxx
 
file  ModifiedInverseAveragingImageFilterAll.cxx
 Implementations for class ModifiedInverseAveragingImageFilterAll.
 
file  ModifiedInverseAverigingImageFilter.cxx
 Implementations for class ModifiedInverseAverigingImageFilter.
 
file  NonseparableSpatiallyVaryingFilters.cxx
 Implementations for class NonseparableSpatiallyVaryingFilters.
 
file  NonseparableSpatiallyVaryingFilters3D.cxx
 Implementations for class NonseparableSpatiallyVaryingFilters3D.
 
file  Quaternion.cxx
 Implementation of class Quaternion.
 
file  DataSymmetriesForDensels_PET_CartesianGrid.cxx
 non-inline implementations for class stir::DataSymmetriesForDensels_PET_CartesianGrid
 
file  ArrayFilter2DUsingConvolution.h
 Declaration of class ArrayFilter2DUsingConvolution.
 
file  ArrayFilter3DUsingConvolution.h
 Declaration of class ArrayFilter3DUsingConvolution.
 
file  assign.h
 defines the stir::assign function to assign values to different data types
 
file  ByteOrder.h
 This file declares the stir::ByteOrder class.
 
file  ByteOrderDefine.h
 Definition of STIRIsNativeByteOrderBigEndian and STIRIsNativeByteOrderLittleEndian preprocessor symbols.
 
file  common.h
 basic configuration include file
 
file  gcc.h
 configuration for gcc
 
file  visualc.h
 configuration for Visual C++
 
file  copy_fill.h
 Declaration of stir::copy_to and stir::fill_from templates.
 
file  CPUTimer.h
 declares the stir::CPUTimer class.
 
file  CPUTimer.inl
 inline implementations for stir::CPUTimer
 
file  cross_product.h
 defines the cross-product of 2 CartesianCoordinate3D numbers
 
file  decay_correction_factor.h
 Simple functions to compute the decay correction factor.
 
file  deprecated.h
 This file declares a deprecation macro.
 
file  DetectorCoordinateMap.h
 Declaration of class stir::DetectorCoordinateMap.
 
file  error.h
 Declaration of stir::error()
 
file  ExamData.h
 declaration of stir::ExamData
 
file  ExamInfo.h
 This file declares the class stir::ExamInfo.
 
file  ExamInfo.inl
 This file declares the class stir::ExamInfo.
 
file  extract_line.h
 Declaration of stir::extract_line.
 
file  extract_line.inl
 Implementation of stir::extract_line.
 
file  FactoryRegistry.h
 Declaration of class stir::FactoryRegistry.
 
file  FactoryRegistry.inl
 Inline implementations for stir::FactoryRegistry.
 
file  FilePath.h
 Declaration of class stir::FilePath This is a class implementing basic filesytem functionality. Parts of this class were copied from Functions for filename manipulations.
 
file  FilePath.inl
 Implementations of inline functions for class stir::FilePath.
 
file  GeneralisedPoissonNoiseGenerator.h
 Declares stir::GeneralisedPoissonNoiseGenerator.
 
file  HigherPrecision.h
 class stir::HigherPrecision
 
file  ImagingModality.h
 Declaration of class stir::ImagingModality.
 
file  info.h
 Declaration of stir::info()
 
file  interfile_keyword_functions.h
 Functions useful for manipulating Interfile keywords.
 
file  interpolate.h
 declares functions for interpolation
 
file  is_null_ptr.h
 Definition of stir::is_null_ptr functions.
 
file  KeyParser.h
 Declaration of class stir::KeyParser.
 
file  line.h
 declaration of class stir::Line
 
file  linear_regression.h
 Declaration of stir::linear_regression()
 
file  linear_regression.inl
 Implementation of inline functions for stir::linear_regression()
 
file  min_positive_element.h
 Declares the stir::min_positive_element() function.
 
file  ML_norm.h
 Preliminary things for ML normalisation factor estimation.
 
file  modulo.h
 defines stir::modulo() and related functions
 
file  more_algorithms.h
 Declaration of some functions missing from std::algorithm.
 
file  more_algorithms.inl
 Implementation of some functions missing from std::algorithm.
 
file  NestedIterator.h
 This file declares the stir::NestedIterator class and supporting function objects.
 
file  NestedIterator.inl
 inline implementations for stir::NestedIterator.
 
file  NestedIteratorHelpers.h
 This file defines supporting function objects for stir::NestedIterator.
 
file  NumericInfo.h
 This file declares the class stir::NumericInfo.
 
file  NumericType.h
 This file declares the stir::NumericType class.
 
file  NumericType.inl
 Implementation of inline methods of class stir::NumericType.
 
file  ParsingObject.h
 Declaration of class stir::ParsingObject.
 
file  PatientPosition.h
 Declaration of class stir::PatientPosition.
 
file  recon_array_functions.h
 a variety of useful functions
 
file  DataSymmetriesForBins.inl
 inline implementations for class stir::DataSymmetriesForBins
 
file  DataSymmetriesForDensels.inl
 inline implementations for class stir::DataSymmetriesForDensels
 
file  RegisteredObject.h
 Declaration of class stiir::RegisteredObject.
 
file  RegisteredObject.inl
 Inline implementations for class stir::RegisteredObject.
 
file  RegisteredParsingObject.h
 Declaration of class stir::RegisteredParsingObject.
 
file  RegisteredParsingObject.inl
 Inline implementations for class stir::RegisteredParsingObject.
 
file  round.h
 Declaration of the stir::round functions.
 
file  round.inl
 Implementation of the stir::round functions.
 
file  RunTests.h
 defines the stir::RunTests class
 
file  Scanner.h
 Declaration of class stir::Scanner.
 
file  Scanner.inl
 implementation of inline functions of class Scanner
 
file  CreateTailMaskFromACFs.h
 Compute a mask for the "tails" in the sinogram.
 
file  SeparableGaussianImageFilter.h
 Declaration of class stir::SeparableGaussianImageFilter.
 
file  shared_ptr.h
 Import of std::shared_ptr, std::dynamic_pointer_cast and std::static_pointer_cast (or corresponding boost versions if STIR_USE_BOOST_SHARED_PTR is set, i.e. normally when std::shared_ptr doesn't exist) into the stir namespace.
 
file  stream.h
 Input/output of basic vector-like types to/from streams.
 
file  stream.inl
 Input/output of basic vector-like types to/from streams.
 
file  Succeeded.h
 Declaration of class stir::Succeeded.
 
file  thresholding.h
 Declaration of functions that threshold sequences (specified by iterators).
 
file  TimedBlock.h
 Class stir::TimedBlock.
 
file  TimedObject.h
 declares the stir::TimedObject class
 
file  TimedObject.inl
 inline implementations for stir::TimedObject
 
file  TimeFrameDefinitions.h
 Declaration of class stir::TimeFrameDefinitions.
 
file  TimeGateDefinitions.h
 Declaration of class stir::TimeGateDefinitions.
 
file  Timer.h
 This declares the stir::Timer class.
 
file  Timer.inl
 inline implementations for stir::Timer
 
file  TOF_conversions.h
 Implementations of inline functions for TOF time to mm.
 
file  unique_ptr.h
 Import of std::unique_ptr into the stir namespace, together with work-arounds for other compilers.
 
file  utilities.h
 This file declares various utility functions.
 
file  utilities.inl
 inline implementations for utility.h
 
file  Verbosity.h
 Declaration of class stir::Verbosity.
 
file  warning.h
 Declaration of stir::warning()
 
file  zoom.h
 This file declares various zooming functions.
 
file  ZoomOptions.h
 Declaration of class stir::ZoomOptions.
 
file  AbsTimeInterval.h
 Declaration of class stir::AbsTimeInterval.
 
file  AbsTimeIntervalFromDynamicData.h
 Declaration of class stir::AbsTimeIntervalFromDynamicData.
 
file  AbsTimeIntervalFromECAT7ACF.h
 Declaration of class stir::AbsTimeIntervalFromECAT7ACF.
 
file  AbsTimeIntervalWithParsing.h
 Declaration of class stir::AbsTimeIntervalWithParsing.
 
file  ModifiedInverseAveragingImageFilterAll.h
 This is a messy, first, attempt to design spatially varying filter Given the kernel which in this case is a lospass filter with a DC gain 1 the filter is design such that the output kernel varies depending on the k0 and k1 ( for more details on these factors look at Fessler)
 
file  ModifiedInverseAverigingArrayFilter.h
 This is a messy first attempt to design spatially varying filter Given the kernel which in this case is a lospass filter with a DC gain 1 the filter is design such that the output kernel varies depending on the k0 and k1 ( for more details on these factors look at Fessler)
 
file  ModifiedInverseAverigingImageFilter.h
 This is a messy, first, attempt to design spatially varying filter Given the kernel which in this case is a lospass filter with a DC gain 1 the filter is design such that the output kernel varies depending on the k0 and k1 ( for more details on these factors look at Fessler)
 
file  NonseparableSpatiallyVaryingFilters.h
 This is a messy, first, attempt to design spatially varying filter Given the kernel which in this case is a lospass filter with a DC gain 1 the filter is design such that the output kernel varies depending on the k0 and k1 ( for more details on these factors look at Fessler)
 
file  NonseparableSpatiallyVaryingFilters3D.h
 This is a messy, first, attempt to design spatially varying filter Given the kernel which in this case is a lospass filter with a DC gain 1 the filter is design such that the output kernel varies depending on the k0 and k1 ( for more details on these factors look at Fessler)
 
file  Quaternion.h
 Declaration of class stir::Quaternion.
 
file  Quaternion.inl
 Implementation of class stir::Quaternion.
 
file  SeparableGaussianArrayFilter.h
 
file  SeparableGaussianImageFilter.h
 Declaration of class SeparableGaussianImageFilter.
 
file  SeparableLowPassArrayFilter.h
 
file  SeparableLowPassImageFilter.h
 Declaration of class SeparableLowPassImageFilter.
 
file  InvertAxis.cxx
 Implementation of function stir::invert_axis.
 
file  warp_image.cxx
 Implementation of function stir::warp_image.
 
file  test_GeneralisedPoissonNoiseGenerator.cxx
 tests for the stir::GeneralisedPoissonNoiseGenerator class
 

Classes

class  stir::CPUTimer
 A class for measuring elapsed CPU time. More...
 
class  stir::DynamicDiscretisedDensity
 Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,float> More...
 
class  stir::DynamicProjData
 Dynamic projection data. More...
 
class  stir::ExamData
 base class for data objects such as ProjData etcProvides an ExamInfo member. More...
 
class  stir::ExamInfo
 a class for storing information about 1 exam (or scan) More...
 
class  stir::FactoryRegistry< Key, Factory, Compare >
 This class can be used to store 'factories' and their corresponding keys. It is essentially a map, but with some extra embelishments. More...
 
class  stir::FilePath
 The FilePath class. More...
 
class  stir::GeneralisedPoissonNoiseGenerator
 Generates noise realisations according to Poisson statistics but allowing for scaling. More...
 
struct  stir::HigherPrecision< T >
 Helper class to get a type with higher precision. More...
 
class  stir::ImagingModality
 Class for encoding the modality. More...
 
class  stir::KeyArgument
 A class that enumerates the possible types that can be used to store parsed values. Used (only) by KeyParser. More...
 
class  stir::map_element
 Class to store the Interfile keywords and their actions. More...
 
class  stir::KeyParser
 A class to parse Interfile headers. More...
 
class  stir::NestedIterator< topleveliterT, GetRestRangeFunctionT >
 Class NestedIterator implements a (forward) iterator using a pair of 'nested' iterators. More...
 
class  stir::NumericInfo< NUMBER >
 class NumericInfo<NUMBER> defines properties for the type NUMBER. More...
 
class  stir::NumericType
 provides names for some numeric types and methods for finding their properties. More...
 
struct  stir::TypeForNumericType< numeric_type_enum >
 A helper class that specifies the C++ type for a particular NumericType. More...
 
class  stir::ParseAndCreateFrom< OutputT, InputT, ParserT >
 template for adding keywords to a parser and creating an object More...
 
class  stir::ParsingObject
 A base class for objects that want to be able to parse parameter files. More...
 
class  stir::PatientPosition
 
class  stir::SymmetryOperation
 Encodes symmetry operation on image coordinates and projection data coordinates. More...
 
class  stir::RegisteredObject< Root >
 Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes with (nearly) all public functionality provided by virtual functions of the Base (here called Root) class. The aim is then to be able to select at run-time which of the nodes will be used. More...
 
class  stir::RegisteredObjectBase
 Base class for all classes that can parse .par files (and more?)The only reason that this class exists is such that KeyParser can store different types of objects, and get some basic info from it. More...
 
class  stir::RegisteredParsingObject< Derived, Base, Parent >
 Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files. More...
 
class  stir::RunTests
 A base class for making test classesWith a derived class, an application could look like. More...
 
class  stir::Scanner
 A class for storing some info on the scanner. More...
 
class  stir::TimedBlock< TimerT=Timer >
 Helper class for measuring execution time of a block of code.It starts the timer in ctor, stops in dtor. Do not create unnamed instances of this class, as they are quite useless: you cannot predict destruction time. More...
 
class  stir::TimedObject
 base class for all objects which need timers. At the moment, there's only a CPU timer. More...
 
class  stir::TimeFrameDefinitions
 Class used for storing time frame durations. More...
 
class  stir::TimeGateDefinitions
 Class used for storing time gate durations. More...
 
class  stir::Timer
 A general base class for timers. Interface is like a stop watch. More...
 
class  stir::Verbosity
 This class enables the user to control the on-screen output. More...
 
class  stir::ZoomOptions
 This class enables the user to choose between different zooming optionsThe 3 possible values determine a global scale factor used for the end result: (i) preserve sum (locally) (ii) preserve values (like interpolation) (iii) preserve projections: using a STIR forward projector on the zoomed image will give (approximately) the same projections. More...
 
class  stir::AbsTimeInterval
 Base class for specifying a time interval (in absolute time) More...
 
class  stir::AbsTimeIntervalFromDynamicData
 class for specifying a time interval via a dynamic scan More...
 
class  stir::AbsTimeIntervalFromECAT7ACF
 class for specifying a time interval via an ECAT7 .a file More...
 
class  stir::AbsTimeIntervalWithParsing
 class for specifying a time interval via parsing of explicit times More...
 
class  stir::SeparableArrayFunctionObject2< num_dimensions, elemT >
 This class implements an n -dimensional ArrayFunctionObject whose operation is separable. More...
 
class  stir::ImagingModalityTests
 Test class for ImagingModality. More...
 
class  stir::ByteOrder
 This class provides member functions to find out what byte-order your machine is and to swap numbers. More...
 

Macros

#define STIRIsNativeByteOrderBigEndian   1
 A macro that is defined to 1 when the compilation is on a big endian machine, otherwise it is set to 0. More...
 
#define STIRIsNativeByteOrderLittleEndian   0
 A macro that is defined to 1 when the compilation is on a little endian machine, and to 0 otherwise. More...
 
#define _PI   boost::math::constants::pi<double>()
 The constant pi to high precision. More...
 

Functions

template<class NUMBER >
NUMBER stir::square (const NUMBER &x)
 returns the square of a number, templated. More...
 
template<class coordT >
CartesianCoordinate3D< coordT > stir::cross_product (const CartesianCoordinate3D< coordT > &a, const CartesianCoordinate3D< coordT > &b)
 the cross-product for 3-dimensional coordinates. More...
 
double stir::decay_correction_factor (const double isotope_halflife, const double start_time, const double end_time)
 Compute decay-correction factor for a time frame. More...
 
double stir::decay_correction_factor (const double isotope_halflife, const double rel_time)
 Computes the decay-correction factor for activity at a given time point. More...
 
void stir::error (const char *const s,...)
 Print error with format string a la printf and throw exception. More...
 
template<class STRING >
void stir::error (const STRING &string)
 Use this function for writing error messages and throwing an exception. More...
 
template<class elemT >
Array< 1, elemT > stir::extract_line (const Array< 3, elemT > &, const BasicCoordinate< 3, int > &index, const int dimension)
 extracts a line from an array in the direction of the specified dimension. More...
 
template<class STRING >
void stir::info (const STRING &string, const int verbosity_level=1)
 Use this function for writing informational messages. More...
 
template<class Value , class DataType , class CoordinatesType >
void stir::linear_regression (Value &constant, Value &scale, Value &chi_square, Value &variance_of_constant, Value &variance_of_scale, Value &covariance_of_constant_with_scale, const VectorWithOffset< DataType > &measured_data, const VectorWithOffset< CoordinatesType > &coordinates, const VectorWithOffset< float > &weights, const bool use_estimated_variance=true)
 Implements standard linear regression on VectorWithOffset data. More...
 
template<class Value , class DataIter , class CoordinatesIter , class WeightsIter >
void stir::linear_regression (Value &constant, Value &scale, Value &chi_square, Value &variance_of_constant, Value &variance_of_scale, Value &covariance_of_constant_with_scale, DataIter measured_data_begin, DataIter measured_data_end, CoordinatesIter coords_begin, WeightsIter weights_begin, const bool use_estimated_variance=true)
 Implements standard linear regression. More...
 
template<typename ForwardIter_t >
ForwardIter_t stir::min_positive_element (ForwardIter_t start, ForwardIter_t end)
 Finds where the smallest strictly positive element occurs. More...
 
template<class iterT >
iterT stir::abs_max_element (iterT start, iterT end)
 Like std::max_element, but comparing after taking absolute value. More...
 
template<class IterT , class elemT >
elemT stir::sum (IterT start, IterT end, elemT init)
 Compute the sum of a sequence using operator+=(), using an initial value. More...
 
template<class IterT >
std::iterator_traits< IterT >::value_type stir::sum (IterT start, IterT end)
 Compute the sum of a sequence using operator+=(). More...
 
template<class IterT >
std::iterator_traits< IterT >::value_type stir::average (IterT start, IterT end)
 Compute the average of a sequence using sum(start,end). More...
 
char * stir::strupr (char *const str)
 make C-string uppercase
 
void stir::warning (const char *const s,...)
 Print warning with format string a la printf. More...
 
template<class STRING >
void stir::warning (const STRING &string, const int verbosity_level=1)
 Use this function for writing warning messages. More...
 

Variables

const int stir::max_filename_length = 1000
 some large value to say how long filenames can be in the (deprecated) function ask_filename_with_extension(char *,const std::string&, const std::string&)
 

Detailed Description

Library with things that are not specific to reconstructions. This includes multi-dimensional arrays, images, image processors, projection data,...

Macro Definition Documentation

◆ STIRIsNativeByteOrderBigEndian

#define STIRIsNativeByteOrderBigEndian   1

A macro that is defined to 1 when the compilation is on a big endian machine, otherwise it is set to 0.

Usage
#if STIRIsNativeByteOrderBigEndian
// code specific for big endian machines
#else
// code for little endian machines
#endif
Relation to the ByteOrder class.

This should be used only in the case that you really need to know this at compilation time. Try to use class ByteOrder instead.

The definition of class ByteOrder is independent of this macro.

Warning
It is recommended to check these settings by comparing with class ByteOrder. This is done by the ByteOrderTests class.
This macro depends on preprocessor defines set by your compiler. The list of defines is bound to be incomplete though. The current list sets LittleEndian for alpha, x86 or PowerPC processors or Windows using some macros which are known to work with gcc and Visual Studio (at some point also with CodeWarrior). Otherwise, the architecture is assumed to be big endian. ByteOrder does not rely on this type of conditionals.
The value of the macro in the doxygen documentation depends on what type of machine doxygen was run.

◆ STIRIsNativeByteOrderLittleEndian

#define STIRIsNativeByteOrderLittleEndian   0

A macro that is defined to 1 when the compilation is on a little endian machine, and to 0 otherwise.

See also
STIRIsNativeByteOrderBigEndian for details.

◆ _PI

#define _PI   boost::math::constants::pi<double>()

The constant pi to high precision.

Referenced by stir::Scanner::check_consistency(), stir::CListModeDataROOT::CListModeDataROOT(), stir::ScatterSimulation::detection_efficiency_no_scatter(), stir::ScatterSimulation::downsample_scanner(), stir::extend_segment(), stir::ProjDataInfoCylindricalNoArcCorr::find_scanner_coordinates_given_cartesian_coordinates(), stir::from_min_pi_plus_pi_to_0_2pi(), stir::ProjDataInfoCylindricalNoArcCorr::get_bin(), stir::ProjMatrixByDenselUsingRayTracing::get_element(), stir::Ellipsoid::get_geometric_volume(), stir::EllipsoidalCylinder::get_geometric_volume(), stir::ProjDataInfoCylindrical::get_LOR(), stir::inverse_fourier_1d_for_real_data_corrupting_input(), stir::EllipsoidalCylinder::is_inside_shape(), stir::LORInCylinderCoordinates< coordT >::is_swapped(), stir::LORAs2Points< float >::is_swapped(), stir::LORInAxialAndSinogramCoordinates< coordT >::is_swapped(), stir::Scanner::list_names(), stir::LORInAxialAndNoArcCorrSinogramCoordinates< coordT >::LORInAxialAndNoArcCorrSinogramCoordinates(), stir::LORInAxialAndSinogramCoordinates< coordT >::LORInAxialAndSinogramCoordinates(), stir::ProjDataInfoCylindrical::parameter_info(), stir::Scanner::parameter_info(), stir::InterfilePDFSHeaderSPECT::post_processing(), stir::Shape3DWithOrientation::post_processing(), stir::ProjDataInfoCylindrical::ProjDataInfoCylindrical(), stir::FourierRebinning::rebin(), stir::ProjDataInfoTests::run_coordinate_test(), stir::ProjDataInfoTests::run_coordinate_test_for_realistic_scanner(), stir::ProjDataInfoTests::run_lor_get_s_test(), stir::ScannerTests::run_tests(), stir::ProjDataInfoCylindricalArcCorrTests::run_tests(), stir::Scanner::Scanner(), stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter(), stir::Shape3DWithOrientation::set_key_values(), stir::ColsherFilter::set_up(), stir::ProjMatrixByBinSPECTUB::set_up(), stir::erfTests::test_FastErf(), stir::to_0_2pi(), and stir::BackProjectorByBinUsingInterpolation::use_piecewise_linear_interpolation().

Function Documentation

◆ square()

template<class NUMBER >
NUMBER stir::square ( const NUMBER &  x)
inline

returns the square of a number, templated.

Referenced by stir::absolute_max_eigenvector_using_power_method(), stir::LogcoshPrior< elemT >::accumulate_Hessian_times_input(), stir::ProjMatrixByDenselOnCartesianGridUsingElement::calculate_proj_matrix_elems_for_one_densel(), stir::LORAs2Points< float >::change_representation_for_block(), stir::coordinate_between_2_lines(), stir::distance_between_line_and_point(), stir::ScatterSimulation::energy_lower_limit(), stir::find_LOR_intersections_with_cylinder(), stir::ProjDataInfoCylindricalNoArcCorr::find_scanner_coordinates_given_cartesian_coordinates(), stir::ProjDataInfo::get_costheta(), stir::ProjMatrixByDenselUsingRayTracing::get_element(), stir::ProjDataInfoGeneric::get_LOR(), stir::ProjDataInfoCylindrical::get_LOR(), stir::RigidObject3DTransformation::get_relative_transformation(), stir::ProjDataInfoCylindrical::get_tantheta(), stir::EllipsoidalCylinder::is_inside_shape(), stir::make_det_pair_data(), stir::ScatterSimulation::max_cos_angle(), stir::randoms_from_singles(), stir::RigidObject3DTransformation::RigidObject3DTransformation(), stir::MatchTrackerAndScanner::run(), stir::QuaternionTests::run_tests(), stir::Shape3DWithOrientation::scale(), stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter(), stir::PLSPrior< elemT >::set_anatomical_filename(), stir::RelativeDifferencePrior< elemT >::set_kappa_sptr(), stir::LogcoshPrior< elemT >::set_scalar(), stir::KOSMAPOSLReconstruction< TargetT >::set_sigma_m(), stir::ProjMatrixElemsForOneDensel::square_sum(), stir::ProjMatrixElemsForOneBin::square_sum(), stir::truncate_rim(), and stir::RelativeDifferencePrior< elemT >::value().

◆ cross_product()

template<class coordT >
CartesianCoordinate3D<coordT> stir::cross_product ( const CartesianCoordinate3D< coordT > &  a,
const CartesianCoordinate3D< coordT > &  b 
)

the cross-product for 3-dimensional coordinates.

Warning
This implements minus the 'usual' definition of the cross-product. This is done because STIR uses a left-handed coordinate system. The definition of cross_product is such that $ {a, b, a\times b}$ forms a left-handed coordinate system.

◆ decay_correction_factor() [1/2]

double stir::decay_correction_factor ( const double  isotope_halflife,
const double  start_time,
const double  end_time 
)
inline

Compute decay-correction factor for a time frame.

This function computes the factor needed to convert average number of counts per second to activity at time 0, i.e. it returns

\[ \frac{(t_2-t_1)}{ \int_{t_1}^{t_2} \! 2^{-t/\mathrm{halflife}} \, dt} \]

Referenced by stir::DynamicDiscretisedDensity::decay_correct_frames(), stir::PlasmaData::decay_correct_PlasmaData(), stir::randoms_from_singles(), and stir::PatlakPlot::set_model_matrix().

◆ decay_correction_factor() [2/2]

double stir::decay_correction_factor ( const double  isotope_halflife,
const double  rel_time 
)
inline

Computes the decay-correction factor for activity at a given time point.

This function computes the correction factor to convert activity at t0 + rel_time to activity at t0, i.e.

\[ 2^{(\mathrm{rel\_time} / \mathrm{halflife})} \]

◆ error() [1/2]

void stir::error ( const char *const  s,
  ... 
)

Print error with format string a la printf and throw exception.

The arguments are the same as if you would call printf(). The error message is written to stderr, preceeded by "ERROR:", a std::string is constructed with the error message, and throw is called with the string as argument.

Note that because we throw an exception, the caller can catch it. Prior to STIR 2.1, this was not possible as stir::error directly called std::exit.

Todo:
As opposed to using printf-style calling sequence, use a syntax like stir::info
Example
error("Error opening file %s", filename);
Deprecated:
(use 1 argument version instead)

Referenced by stir::absolute_max_eigenvector_using_shifted_power_method(), stir::AbsTimeIntervalFromDynamicData::AbsTimeIntervalFromDynamicData(), stir::AbsTimeIntervalFromECAT7ACF::AbsTimeIntervalFromECAT7ACF(), stir::GeneralisedPrior< TargetT >::accumulate_Hessian_times_input(), stir::GeneralisedObjectiveFunction< TargetT >::accumulate_Hessian_times_input(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::actual_accumulate_sub_Hessian_times_input_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::actual_accumulate_sub_Hessian_times_input_without_penalty(), stir::GeneralisedObjectiveFunction< TargetT >::actual_accumulate_sub_Hessian_times_input_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::actual_add_multiplication_with_approximate_sub_Hessian_without_penalty(), stir::GeneralisedObjectiveFunction< TargetT >::actual_add_multiplication_with_approximate_sub_Hessian_without_penalty(), stir::BackProjectorByBinUsingSquareProjMatrixByBin::actual_back_project(), stir::BackProjectorByBinParallelproj::actual_back_project(), stir::BackProjectorByBin::actual_back_project(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::actual_compute_objective_function_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::actual_compute_objective_function_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::actual_compute_subset_gradient_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::actual_compute_subset_gradient_without_penalty(), stir::ForwardProjectorByBin::actual_forward_project(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::actual_subsets_are_approximately_balanced(), stir::MultiDynamicDiscretisedDensityOutputFileFormat::actual_write_to_file(), stir::GeneralisedPrior< TargetT >::add_multiplication_with_approximate_Hessian(), stir::GeneralisedObjectiveFunction< TargetT >::add_multiplication_with_approximate_sub_Hessian_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::add_subset_sensitivity(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::add_subset_sensitivity(), stir::FilePath::append(), stir::PatlakPlot::apply_linear_regression(), stir::ArrayFilterUsingRealDFTWithPadding< 2, float >::ArrayFilterUsingRealDFTWithPadding(), stir::OSSPSReconstruction< TargetT >::ask_parameters(), stir::BackProjectorByBinNiftyPET::back_project(), stir::BackProjectorByBin::back_project(), stir::DynamicProjData::calibrate_frames(), stir::ProjectorByBinPair::check(), stir::GeneralisedPrior< TargetT >::check(), stir::BinNormalisation::check(), stir::ForwardProjectorByBin::check(), stir::Reconstruction< DiscretisedDensity< 3, float > >::check(), stir::LogcoshPrior< elemT >::check(), stir::BackProjectorByBin::check(), stir::PLSPrior< elemT >::check(), stir::GE::RDF_HDF5::GEHDF5Wrapper::check_GE_signature(), stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::CListModeDataECAT(), stir::ecat::CListModeDataECAT8_32bit::CListModeDataECAT8_32bit(), stir::GE::RDF_HDF5::CListModeDataGEHDF5::CListModeDataGEHDF5(), stir::CListModeDataLMF::CListModeDataLMF(), stir::CListModeDataPENN::CListModeDataPENN(), stir::CListModeDataROOT::CListModeDataROOT(), stir::CListModeDataSAFIR< CListRecordT >::CListModeDataSAFIR(), stir::SqrtHessianRowSum< TargetT >::compute_approximate_Hessian_row_sum(), stir::RelativeDifferencePrior< elemT >::compute_gradient(), stir::GeneralisedPrior< TargetT >::compute_Hessian(), stir::SqrtHessianRowSum< TargetT >::compute_Hessian_row_sum(), stir::KOSMAPOSLReconstruction< TargetT >::compute_kernelised_image(), stir::GeneralisedObjectiveFunction< TargetT >::compute_objective_function_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMean< TargetT >::compute_sensitivities(), stir::GeneralisedObjectiveFunction< TargetT >::compute_sub_gradient(), stir::PoissonLogLikelihoodWithLinearModelForMean< TargetT >::compute_sub_gradient_without_penalty(), stir::PoissonLogLikelihoodWithLinearModelForMean< TargetT >::compute_sub_gradient_without_penalty_plus_sensitivity(), stir::PoissonLLReconstructionTests< target_type >::construct_log_likelihood(), stir::PoissonLLReconstructionTests< target_type >::construct_projector_pair(), stir::DiscretisedShape3D::construct_volume(), stir::ModelMatrix< 2 >::convert_to_total_frame_counts(), stir::DataSymmetriesForBins_PET_CartesianGrid::DataSymmetriesForBins_PET_CartesianGrid(), stir::DataSymmetriesForDensels_PET_CartesianGrid::DataSymmetriesForDensels_PET_CartesianGrid(), stir::ScatterSimulation::detection_efficiency(), stir::ScatterSimulation::detection_efficiency_no_scatter(), stir::DICOM_date_time_to_DT(), stir::DICOM_datetime_to_secs_since_Unix_epoch(), stir::DiscretisedShape3D::DiscretisedShape3D(), stir::DynamicProjData::divide_with_duration(), stir::ScatterSimulation::downsample_density_image_for_scatter_points(), stir::EllipsoidalCylinder::EllipsoidalCylinder(), stir::FBP3DRPReconstruction::FBP3DRPReconstruction(), stir::FilePath::FilePath(), stir::ProjData::fill(), stir::find_centre_of_gravity(), stir::RigidObject3DTransformation::find_closest_transformation(), stir::Scanner::find_detection_position_given_cartesian_coordinate(), stir::FactoryRegistry< Key, Factory, Compare >::find_factory(), stir::find_STIR_config_file(), stir::ForwardProjectorByBin::forward_project(), stir::GeneralisedPoissonNoiseGenerator::generate_random(), stir::FilePath::get_as_string(), stir::ProjMatrixByBinPinholeSPECTUB::get_attenuation_type(), stir::ProjDataInfoCylindricalArcCorr::get_bin(), stir::CListEventSAFIR< CListRecordSAFIR< DataType > >::get_bin(), stir::ProjDataInfoGenericNoArcCorr::get_bin(), stir::ProjDataInfoCylindricalNoArcCorr::get_bin(), stir::BinNormalisationFromProjData::get_bin_efficiency(), stir::BinNormalisationFromAttenuationImage::get_bin_efficiency(), stir::ProjDataFromStream::get_bin_value(), stir::Radionuclide::get_branching_ratio(), stir::BinNormalisationWithCalibration::get_calib_decay_branching_ratio_factor(), stir::Scanner::get_coincidence_window_width_in_ps(), stir::Array< 2, float >::get_const_full_data_ptr(), stir::Scanner::get_coordinate_for_det_pos(), stir::Scanner::get_coordinate_for_index(), stir::DynamicDiscretisedDensity::get_density(), stir::Scanner::get_det_pos_for_index(), stir::ProjMatrixByBinPinholeSPECTUB::get_doi_correction(), stir::PatlakPlot::get_dynamic_image_from_parametric_image(), stir::GE::RDF_HDF5::CListModeDataGEHDF5::get_empty_record_sptr(), stir::ProjDataInfo::get_empty_related_viewgrams(), stir::Radionuclide::get_energy(), stir::ScatterSimulation::get_exam_info_sptr(), stir::Array< 2, float >::get_full_data_ptr(), stir::Radionuclide::get_half_life(), stir::ScatterEstimation::get_iterations_num(), stir::Radionuclide::get_modality(), stir::PatlakPlot::get_model_matrix(), stir::RigidObject3DMotionFromPolaris::get_motion_in_tracker_coords_rel_time(), stir::InputStreamFromROOTFileForCylindricalPET::get_num_axial_crystals_per_singles_unit(), stir::InputStreamFromROOTFileForCylindricalPET::get_num_trans_crystals_per_singles_unit(), stir::ProjDataFromStream::get_offset(), stir::BackProjectorByBin::get_output(), stir::ProjMatrixByBinPinholeSPECTUB::get_psf_correction(), stir::RigidObject3DMotionFromPolaris::get_rel_time_of_samples(), stir::RigidObject3DTransformation::get_relative_transformation(), stir::ProjDataInfoCylindrical::get_ring_pair_for_segment_axial_pos_num(), stir::ProjDataInfoCylindrical::get_ring_radius(), stir::ProjDataFromStream::get_segment_by_sinogram(), stir::ProjDataFromStream::get_segment_by_view(), stir::SinglesRatesForTimeSlices::get_singles(), stir::ProjDataFromStream::get_sinogram(), stir::ProjData::get_subset(), stir::BackProjectorByBinUsingSquareProjMatrixByBin::get_symmetries_used(), stir::BackProjectorByBinUsingProjMatrixByBin::get_symmetries_used(), stir::BackProjectorByBinParallelproj::get_symmetries_used(), stir::ForwardProjectorByBinUsingProjMatrixByBin::get_symmetries_used(), stir::ForwardProjectorByBinParallelproj::get_symmetries_used(), stir::BackProjectorByBinNiftyPET::get_symmetries_used(), stir::ForwardProjectorByBinNiftyPET::get_symmetries_used(), stir::ForwardProjectorByBinUsingRayTracing::get_symmetries_used(), stir::BackProjectorByBinUsingInterpolation::get_symmetries_used(), stir::PatlakPlot::get_time_frame_definitions(), stir::ListModeData::get_total_number_of_events(), stir::ProjDataFromStream::get_viewgram(), stir::InputStreamFromROOTFile::GetEntryCheck(), stir::ListModeData_dummy::has_delayeds(), stir::Reconstruction< DiscretisedDensity< 3, float > >::initialise(), stir::GE::RDF_HDF5::GEHDF5Wrapper::initialise_geo_factors_data(), stir::SingleScatterSimulation::initialise_keymap(), stir::FindMCNormFactors::initialise_keymap(), stir::DistributedCachingInformation::initialise_new_subiteration(), stir::GE::RDF_HDF5::GEHDF5Wrapper::initialise_proj_data(), stir::InputStreamFromROOTFile::InputStreamFromROOTFile(), stir::InputStreamFromROOTFileForCylindricalPET::InputStreamFromROOTFileForCylindricalPET(), stir::InputStreamFromROOTFileForECATPET::InputStreamFromROOTFileForECATPET(), stir::InputStreamWithRecords< RecordT, OptionsT >::InputStreamWithRecords(), stir::Interfile_datetime_to_DICOM(), stir::interpolate_line(), stir::inverse_fourier_1d_for_real_data_corrupting_input(), stir::InvertAxis::invert_axis(), stir::FilePath::is_directory(), stir::GE::RDF_HDF5::GEHDF5Wrapper::is_list_file(), stir::FilePath::is_regular_file(), stir::ProjDataInfo::is_tof_data(), stir::BinNormalisationFromProjData::is_TOF_only_norm(), stir::ArrayFilter1DUsingConvolution< elemT >::is_trivial(), stir::BinNormalisationPETFromComponents::is_trivial(), stir::KOSMAPOSLReconstruction< TargetT >::KOSMAPOSLReconstruction(), stir::LmToProjData::LmToProjData(), stir::LmToProjDataBootstrap< LmToProjDataT >::LmToProjDataBootstrap(), stir::LmToProjDataWithRandomRejection< LmToProjDataT >::LmToProjDataWithRandomRejection(), stir::maximum_location_per_slice(), stir::multiply_crystal_factors(), stir::ModelMatrix< 2 >::multiply_dynamic_image_with_model_and_add_to_input(), stir::PatlakPlot::multiply_dynamic_image_with_model_gradient(), stir::PatlakPlot::multiply_dynamic_image_with_model_gradient_and_add_to_input(), stir::ModelMatrix< 2 >::multiply_parametric_image_with_model(), stir::ModelMatrix< 2 >::multiply_parametric_image_with_model_and_add_to_input(), stir::open_read_binary(), stir::open_write_binary(), stir::DiscretisedShape3D::operator==(), stir::PLSPrior< elemT >::PLSPrior(), stir::CreateTailMaskFromACFs::post_processing(), stir::Ellipsoid::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndDynamicProjData< TargetT >::post_processing(), stir::KOSMAPOSLReconstruction< TargetT >::post_processing(), stir::ScatterEstimation::post_processing(), stir::ScatterSimulation::post_processing(), stir::ScatterEstimation::process_data(), stir::ScatterSimulation::process_data_for_view_segment_num(), stir::ProjDataInfoBlocksOnCylindricalNoArcCorr::ProjDataInfoBlocksOnCylindricalNoArcCorr(), stir::ProjDataInfo::ProjDataInfoCTI(), stir::ProjDataInfoCylindrical::ProjDataInfoCylindrical(), stir::ProjDataInfoCylindricalNoArcCorr::ProjDataInfoCylindricalNoArcCorr(), stir::ProjDataInfo::ProjDataInfoGE(), stir::ProjDataInfoGenericNoArcCorr::ProjDataInfoGenericNoArcCorr(), stir::ProjDataInfoSubsetByView::ProjDataInfoSubsetByView(), stir::ProjMatrixByBinFromFile::ProjMatrixByBinFromFile(), stir::BloodFrameData::read_blood_frame_data(), stir::ecat::ecat7::read_ECAT7_exam_info(), stir::read_from_file(), stir::ModelMatrix< 2 >::read_from_file(), stir::PENNListmodeInputFileFormat::read_from_file(), stir::ROOTListmodeInputFileFormat::read_from_file(), stir::ecat::ecat6::ECAT6ImageInputFileFormat::read_from_file(), stir::ecat::ecat7::ECAT7DynamicDiscretisedDensityInputFileFormat::read_from_file(), stir::ecat::ECAT8_32bitListmodeInputFileFormat::read_from_file(), stir::ecat::ecat7::ECAT7ImageInputFileFormat::read_from_file(), stir::ITKImageInputFileFormat< STIRImageType >::read_from_file(), stir::MultiDynamicDiscretisedDensityInputFileFormat::read_from_file(), stir::MultiParametricDiscretisedDensityInputFileFormat::read_from_file(), stir::ecat::ecat7::ECAT962ListmodeInputFileFormat::read_from_file(), stir::ecat::ecat7::ECAT966ListmodeInputFileFormat::read_from_file(), stir::SAFIRCListmodeInputFileFormat< EventDataType >::read_from_file(), stir::GatedSpatialTransformation::read_from_files(), stir::TimeGateDefinitions::read_gdef_file(), stir::read_interfile_dynamic_image(), stir::read_interfile_image(), stir::read_interfile_parametric_image(), stir::GE::RDF_HDF5::GEHDF5Wrapper::read_list_data(), stir::PlasmaData::read_plasma_data(), stir::ecat::ecat7::SinglesRatesFromECAT7::read_singles_from_file(), stir::ecat::ecat7::SinglesRatesFromSglFile::read_singles_from_sgl_file(), stir::FourierRebinning::rebin(), distributed::receive_and_construct_exam_and_proj_data_info_ptr(), distributed::receive_image_values_and_fill_image_ptr(), stir::ReconstructionTests< target_type >::reconstruct(), stir::AnalyticReconstruction::reconstruct(), stir::ListModeData_dummy::reset(), stir::InputStreamWithRecordsFromUPENNtxt::reset(), stir::MatchTrackerAndScanner::run(), stir::TestDataProcessorProjectors::run_tests(), stir::DateTimeTest::run_tests(), stir::TestFBP2D::run_tests(), stir::TestFBP3DRP::run_tests(), stir::TestOSMAPOSL::run_tests(), stir::TestGPUProjectors::run_tests(), stir::ScatterSimulation::sample_scatter_points(), stir::ListModeData_dummy::save_get_position(), stir::InputStreamWithRecordsFromUPENNtxt::save_get_position(), stir::InputStreamWithRecords< RecordT, OptionsT >::save_get_position(), stir::DiscretisedShape3D::scale(), stir::ModelMatrix< 2 >::scale_model_matrix(), stir::ScatterEstimation::ScatterEstimation(), stir::secs_since_Unix_epoch_to_DICOM_datetime(), stir::GeneralisedPoissonNoiseGenerator::seed(), stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeData< TargetT >::set_additive_proj_data_sptr(), stir::ProjMatrixByBinSPECTUB::set_attenuation_type(), stir::ProjDataFromStream::set_bin_value(), stir::SqrtHessianRowSum< TargetT >::set_defaults(), stir::DynamicDiscretisedDensity::set_density(), stir::ScatterSimulation::set_density_image_for_scatter_points(), stir::CListEventPENN::set_detection_position(), stir::CListEventCylindricalScannerWithViewTangRingRingEncoding< CListEventECAT966 >::set_detection_position(), stir::ecat::CListEventECAT8_32bit::set_detection_position(), stir::GE::RDF_HDF5::CListRecordGEHDF5::set_detection_position(), stir::DetectorCoordinateMap::set_detector_map(), stir::ListModeData_dummy::set_get_position(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeData< TargetT >::set_input_data(), stir::ScatterEstimation::set_input_data(), stir::ParsingObject::set_key_values(), stir::OSMAPOSLReconstruction< TargetT >::set_MAP_model(), stir::PatlakPlot::set_model_matrix(), stir::SumOfGeneralisedObjectiveFunctions< PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >, TargetT, PoissonLogLikelihoodWithLinearModelForMean< TargetT > >::set_num_subsets(), stir::ProjDataInfoSubsetByView::set_num_views(), stir::ProjDataInfoGeneric::set_num_views(), stir::Scanner::set_num_virtual_axial_crystals_per_block(), stir::Scanner::set_num_virtual_transaxial_crystals_per_block(), stir::ScatterSimulation::set_output_proj_data(), stir::KeyParser::set_parsing_object(), stir::ProjDataInfoCylindrical::set_ring_radii_for_all_views(), stir::ProjDataFromStream::set_segment(), stir::KeyParser::set_shared_parsing_object(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeData< TargetT >::set_skip_lm_input_file(), stir::IterativeReconstruction< TargetT >::set_start_subset_num(), stir::PoissonLogLikelihoodWithLinearModelForMean< TargetT >::set_subsensitivity_filenames(), stir::ProjDataInfo::set_tof_mash_factor(), stir::ProjMatrixByBinWithPositronRange::set_up(), stir::ProjMatrixByBinUsingSolidAngle::set_up(), stir::ProjMatrixByBinSinglePhoton::set_up(), stir::InputStreamWithRecordsFromUPENNbin::set_up(), stir::ProjMatrixByBinUsingInterpolation::set_up(), stir::ProjMatrixByDenselOnCartesianGridUsingElement::set_up(), stir::ForwardProjectorByBinParallelproj::set_up(), stir::BackProjectorByBinNiftyPET::set_up(), stir::ProjMatrixByDenselUsingRayTracing::set_up(), stir::ForwardProjectorByBinNiftyPET::set_up(), stir::BinNormalisationFromAttenuationImage::set_up(), stir::ProjMatrixByBin::set_up(), stir::ForwardProjectorByBinUsingRayTracing::set_up(), stir::ProjMatrixByBinFromFile::set_up(), stir::InputStreamFromROOTFile::set_up(), stir::GE::RDF_HDF5::BinNormalisationFromGEHDF5::set_up(), stir::ProjMatrixByBinSPECTUB::set_up(), stir::ecat::ecat7::BinNormalisationFromECAT7::set_up(), stir::InputStreamFromROOTFileForECATPET::set_up(), stir::BinNormalisationPETFromComponents::set_up(), stir::GeneralisedObjectiveFunction< TargetT >::set_up(), stir::InputStreamFromROOTFileForCylindricalPET::set_up(), stir::ecat::BinNormalisationFromECAT8::set_up(), stir::FBP2DReconstruction::set_up(), stir::ProjMatrixByBinUsingRayTracing::set_up(), stir::ProjMatrixByBinPinholeSPECTUB::set_up(), stir::ScatterEstimation::set_up(), stir::BackProjectorByBinUsingInterpolation::set_up(), stir::LmToProjData::set_up(), stir::IterativeReconstruction< TargetT >::set_up(), stir::Scanner::set_up(), stir::ScatterSimulation::set_use_cache(), stir::KeyParser::set_variable(), stir::Shape3DWithOrientation::Shape3DWithOrientation(), stir::GE::RDF_HDF5::SinglesRatesFromGEHDF5::SinglesRatesFromGEHDF5(), stir::SSRB(), stir::Timer::start(), stir::DistributedWorker< TargetT >::start(), stir::BackProjectorByBin::start_accumulating_in_new_target(), stir::GeneralisedObjectiveFunction< TargetT >::subsets_are_approximately_balanced(), stir::TestProjDataInfoSubsets::TestProjDataInfoSubsets(), stir::ModelMatrix< 2 >::threshold_model_array(), stir::TimeFrameDefinitions::TimeFrameDefinitions(), stir::truncate_rim(), stir::ModelMatrix< 2 >::uncalibrate(), stir::ScatterEstimation::upsample_and_fit_scatter_estimate(), stir::BackProjectorByBinUsingInterpolation::use_piecewise_linear_interpolation(), stir::HUToMuImageProcessor< TargetT >::virtual_set_up(), stir::ecat::ecat7::SinglesRatesFromSglFile::write(), stir::write_to_file(), stir::ModelMatrix< 2 >::write_to_file(), stir::NumericVectorWithOffset< elemT, elemT >::xapyb(), stir::ProjDataInMemory::xapyb(), stir::Array< 2, float >::xapyb(), stir::ProjData::xapyb(), stir::zoom_viewgram(), stir::zoom_viewgrams(), and stir::ProjMatrixByBinSPECTUB::~ProjMatrixByBinSPECTUB().

◆ error() [2/2]

template<class STRING >
void stir::error ( const STRING &  string)
inline

Use this function for writing error messages and throwing an exception.

The argument is expected to be a string, but could be anything for which std::ostream::operator<< would work.

This function currently first writes a newline, then ERROR:, then string and then another newline to std::cerr. Then it throws an exception.

Todo:
At a later stage, it will also write to a log-file.

boost::format is useful in this context.

Example
error(boost::format("Incorrect number of subsets: %d") % num_subsets);
error("This does not work");

◆ extract_line()

template<class elemT >
Array< 1, elemT > stir::extract_line ( const Array< 3, elemT > &  input_array,
const BasicCoordinate< 3, int > &  index,
const int  dimension 
)
inline

extracts a line from an array in the direction of the specified dimension.

Todo:
make n-dimensional version

References stir::VectorWithOffset< T >::get_max_index(), and stir::VectorWithOffset< T >::get_min_index().

Referenced by stir::interpolate_line().

◆ info()

template<class STRING >
void stir::info ( const STRING &  string,
const int  verbosity_level = 1 
)

Use this function for writing informational messages.

The argument is expected to be a string, but could be anything for which std::ostream::operator<< would work.

This function currently first writes a newline, then INFO, then string and then another newline to std::cerr.

Todo:
At a later stage, it will also write to a log-file.

boost::format is useful in this context.

Example
info(boost::format("Running sub-iteration %1% of total %2%") % subiter_num % total);
info("Running a really complicated algorithm");

References stir::get().

Referenced by stir::AbsTimeIntervalFromDynamicData::AbsTimeIntervalFromDynamicData(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::add_subset_sensitivity(), stir::BackProjectorByBin::back_project(), stir::SqrtHessianRowSum< TargetT >::compute_approximate_Hessian_row_sum(), stir::LogcoshPrior< elemT >::compute_gradient(), stir::RelativeDifferencePrior< elemT >::compute_gradient(), stir::PLSPrior< elemT >::compute_gradient(), stir::SqrtHessianRowSum< TargetT >::compute_Hessian_row_sum(), stir::KOSMAPOSLReconstruction< TargetT >::compute_kernelised_image(), stir::Shape3D::construct_volume(), stir::DataSymmetriesForBins_PET_CartesianGrid::DataSymmetriesForBins_PET_CartesianGrid(), stir::ScatterSimulation::detection_efficiency_no_scatter(), stir::ScatterSimulation::downsample_density_image_for_scatter_points(), stir::ScatterSimulation::downsample_scanner(), stir::FilePath::exists(), stir::FBP2DReconstruction::FBP2DReconstruction(), stir::ForwardProjectorByBin::forward_project(), stir::GE::RDF_HDF5::CListModeDataGEHDF5::get_empty_record_sptr(), stir::ecat::CListModeDataECAT8_32bit::get_empty_record_sptr(), stir::CListModeDataROOT::get_empty_record_sptr(), stir::ProjMatrixByBinPinholeSPECTUB::get_mask_image_sptr(), stir::BackProjectorByBinParallelproj::get_output(), stir::FilePath::is_directory(), stir::FilePath::is_regular_file(), stir::KOSMAPOSLReconstruction< TargetT >::KOSMAPOSLReconstruction(), stir::OSMAPOSLReconstruction< TargetT >::OSMAPOSLReconstruction(), stir::OSSPSReconstruction< TargetT >::OSSPSReconstruction(), stir::LogcoshPrior< elemT >::parabolic_surrogate_curvature(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeData< TargetT >::post_processing(), stir::KOSMAPOSLReconstruction< TargetT >::post_processing(), stir::ScatterEstimation::post_processing(), stir::OSSPSReconstruction< TargetT >::precompute_denominator_of_conditioner_without_penalty(), stir::ScatterEstimation::process_data(), stir::ProjDataInfoCylindrical::ProjDataInfoCylindrical(), stir::randoms_from_singles(), stir::ecat::ecat7::ECAT966ListmodeInputFileFormat::read_from_file(), stir::ProjData::read_from_file(), stir::SAFIRCListmodeInputFileFormat< EventDataType >::read_from_file(), stir::FourierRebinning::rebin(), stir::IterativeReconstruction< TargetT >::reconstruct(), stir::CListModeDataSAFIR< CListRecordT >::reset(), stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter(), stir::SeparableMetzArrayFilter< num_dimensions, elemT >::SeparableMetzArrayFilter(), stir::PLSPrior< elemT >::set_anatomical_filename(), stir::ProjMatrixByBinSPECTUB::set_attenuation_image_sptr(), stir::ProjMatrixByBinPinholeSPECTUB::set_attenuation_image_sptr(), stir::CListModeDataROOT::set_defaults(), stir::SAFIRCListmodeInputFileFormat< EventDataType >::set_defaults(), stir::ForwardProjectorByBinParallelproj::set_input(), stir::PLSPrior< elemT >::set_kappa_filename(), stir::DynamicProjData::set_start_time_in_secs_since_1970(), stir::ProjMatrixByBinUsingRayTracing::set_up(), stir::ProjMatrixByBinPinholeSPECTUB::set_up(), stir::ScatterEstimation::set_up(), stir::ScatterSimulation::set_use_cache(), stir::InterfileHeader::set_version_specific_keys(), stir::setup_distributable_computation(), stir::LmToProjDataBootstrap< LmToProjDataT >::start_new_time_frame(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjDataTests::test_approximate_Hessian_concavity(), stir::ObjectiveFunctionTests< GeneralisedPrior< DiscretisedDensity< 3, float > >, DiscretisedDensity< 3, float > >::test_gradient(), stir::ObjectiveFunctionTests< GeneralisedPrior< DiscretisedDensity< 3, float > >, DiscretisedDensity< 3, float > >::test_Hessian(), stir::GeneralisedPriorTests::test_Hessian_against_numerical(), stir::GeneralisedPriorTests::test_Hessian_convexity_configuration(), stir::TimeFrameDefinitions::TimeFrameDefinitions(), stir::transform_3d_object(), stir::OSSPSReconstruction< TargetT >::update_estimate(), stir::OSMAPOSLReconstruction< TargetT >::update_estimate(), stir::ScatterEstimation::upsample_and_fit_scatter_estimate(), stir::HUToMuImageProcessor< TargetT >::virtual_set_up(), stir::ProjMatrixByBinPinholeSPECTUB::~ProjMatrixByBinPinholeSPECTUB(), and stir::ProjMatrixByBinSPECTUB::~ProjMatrixByBinSPECTUB().

◆ linear_regression() [1/2]

template<class Value , class DataType , class CoordinatesType >
void stir::linear_regression ( Value &  constant,
Value &  scale,
Value &  chi_square,
Value &  variance_of_constant,
Value &  variance_of_scale,
Value &  covariance_of_constant_with_scale,
const VectorWithOffset< DataType > &  measured_data,
const VectorWithOffset< CoordinatesType > &  coordinates,
const VectorWithOffset< float > &  weights,
const bool  use_estimated_variance = true 
)
inline

Implements standard linear regression on VectorWithOffset data.

The linear_regression function does straightforward (1 dimensional) weighted least squares fitting.

input

3 VectorWithOffsets of measured_data, coordinates, weights
1 optional boolean value use_estimated_variance (default=true)

output

fitted parameters : constant, scale
goodness of fit measures : chi_square and the (co)variances

This solves the minimisation problem:

     Find constant, scale such that
       chi_square =
          sum_i weights[i]*
                (constant + scale*coordinates[i] - measured_data[i])^2
     is minimal.

When use_estimated_variance == false, the (co)variances are computed assuming that 1/weights[i] is the standard deviation on measured_data[i]. In particular, this means that the (co)variances depend only on the weights and the coordinates.

Alternatively, when use_estimated_variance == true, the weights are considered to be really only proportional to the 1/variance. Then the estimated variance is used to get sensible estimates of the errors:

     estimated_variance = chi_square/(measured_data.get_length() - 2)
     estimated_covariance_matrix = original_covariance_matrix * estimated_variance

References stir::VectorWithOffset< T >::begin(), stir::VectorWithOffset< T >::end(), stir::VectorWithOffset< T >::get_max_index(), and stir::VectorWithOffset< T >::get_min_index().

Referenced by stir::PatlakPlot::apply_linear_regression(), and stir::linear_regressionTests::run_tests().

◆ linear_regression() [2/2]

template<class Value , class DataIter , class CoordinatesIter , class WeightsIter >
void stir::linear_regression ( Value &  constant,
Value &  scale,
Value &  chi_square,
Value &  variance_of_constant,
Value &  variance_of_scale,
Value &  covariance_of_constant_with_scale,
DataIter  measured_data_begin,
DataIter  measured_data_end,
CoordinatesIter  coords_begin,
WeightsIter  weights_begin,
const bool  use_estimated_variance = true 
)
inline

Implements standard linear regression.

This function takes the data as iterators for maximum flexibility. Note that it is assumed (but not checked) that the measured_data, coordinates and weights iterators run over the same range.

See also
linear_regression(Value& , Value&, Value& , Value& , Value& , Value& , const VectorWithOffset<DataType>& , const VectorWithOffset<CoordinatesType>& , const VectorWithOffset<float>& , const bool )

◆ min_positive_element()

template<typename ForwardIter_t >
ForwardIter_t stir::min_positive_element ( ForwardIter_t  start,
ForwardIter_t  end 
)

Finds where the smallest strictly positive element occurs.

Parameters
startstart of the sequence. Usually object.begin().
endend of the sequence in iterator sense (so actually one beyond the last element). Usually object.end().
Returns
an iterator that points to the element in the sequence which has the smallest (strictly) positive value. If no (strictly) positive element is found, or if the sequence is empty, the end argument is returned.

The iterator type has to satisfy the requirements of a forward iterator, and its value_type has to be comparable using < and <=.

Referenced by stir::threshold_min_to_small_positive_value().

◆ abs_max_element()

template<class iterT >
iterT stir::abs_max_element ( iterT  start,
iterT  end 
)
inline

Like std::max_element, but comparing after taking absolute value.

This function using stir::norm_squared(), so works for complex numbers as well.

References stir::norm_squared().

Referenced by stir::absolute_max_eigenvector_using_power_method().

◆ sum() [1/2]

template<class IterT , class elemT >
elemT stir::sum ( IterT  start,
IterT  end,
elemT  init 
)
inline

Compute the sum of a sequence using operator+=(), using an initial value.

Sadly std::accumulate uses operator+(). For non-trivial objects, this might call an inefficient version for the addition. As an alternative, std::accumulate could be called with a function object that calls operator+=.

Referenced by stir::average(), stir::ParametricQuadraticPrior< TargetT >::compute_value(), stir::ProjData::copy_to(), stir::find_centre_of_gravity(), stir::make_det_pair_data(), stir::Array< 1, elemT >::release_const_full_data_ptr(), stir::SeparableGaussianArrayFilter< num_dimensions, elemT >::SeparableGaussianArrayFilter(), stir::SeparableMetzArrayFilter< num_dimensions, elemT >::SeparableMetzArrayFilter(), stir::sum(), and stir::ModelMatrix< 2 >::write_to_file().

◆ sum() [2/2]

template<class IterT >
std::iterator_traits< IterT >::value_type stir::sum ( IterT  start,
IterT  end 
)
inline

Compute the sum of a sequence using operator+=().

Sadly std::accumulate uses operator+(). For non-trivial objects, this might call an inefficient version for the addition. Alternatively, std::accumulate could be called with a function object that calls operator+=. Still, in that case you need to specify an initial value.

If the range is empty, this function calls operator*=(0) to initialise the object to 0.

Warning
Currently, no work-around is present for old compilers that do not support std::iterator_traits.

References stir::sum().

◆ average()

template<class IterT >
std::iterator_traits< IterT >::value_type stir::average ( IterT  start,
IterT  end 
)
inline

Compute the average of a sequence using sum(start,end).

Warning
Currently, no work-around is present for old compilers that do not support std::iterator_traits.

References stir::sum().

Referenced by stir::RigidObject3DTransformation::find_closest_transformation().

◆ warning() [1/2]

void stir::warning ( const char *const  s,
  ... 
)

Print warning with format string a la printf.

The arguments are the same as if you would call printf(). The warning message is written to stderr, preceeded by "WARNING:".

Example
warning("Cannot open file %s, but I will work around it", filename);
Deprecated:
(use 1 argument version instead)

Referenced by stir::AbsTimeIntervalFromDynamicData::AbsTimeIntervalFromDynamicData(), stir::AbsTimeIntervalFromECAT7ACF::AbsTimeIntervalFromECAT7ACF(), stir::GeneralisedObjectiveFunction< TargetT >::accumulate_Hessian_times_input(), stir::ecat::ecat7::ECAT966ListmodeInputFileFormat::actual_can_read(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::actual_subsets_are_approximately_balanced(), stir::MultiDynamicDiscretisedDensityOutputFileFormat::actual_write_to_file(), stir::ecat::ecat7::ECAT7OutputFileFormat::actual_write_to_file(), stir::ecat::ecat6::ECAT6OutputFileFormat::actual_write_to_file(), stir::ecat::ecat7::ECAT7ParametricDensityOutputFileFormat< DiscretisedDensityT >::actual_write_to_file(), stir::ITKOutputFileFormat::actual_write_to_file(), stir::GeneralisedObjectiveFunction< TargetT >::add_multiplication_with_approximate_sub_Hessian_without_penalty(), stir::FactoryRegistry< Key, Factory, Compare >::add_to_registry(), stir::DataProcessor< TargetT >::apply(), stir::KeyParser::ask_parameters(), stir::BinNormalisationSinogramRescaling::BinNormalisationSinogramRescaling(), stir::SAFIRCListmodeInputFileFormat< EventDataType >::can_read(), stir::Scanner::check_consistency(), stir::ProjMatrixElemsForOneDensel::check_state(), stir::ProjMatrixElemsForOneBin::check_state(), stir::ecat::ecat7::CListModeDataECAT< CListRecordT >::CListModeDataECAT(), stir::CListModeDataROOT::CListModeDataROOT(), stir::FilterRootPrior< DataT >::compute_value(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion< TargetT >::construct_target_ptr(), stir::ModelMatrix< 2 >::convert_to_total_frame_counts(), stir::DataSymmetriesForBins_PET_CartesianGrid::DataSymmetriesForBins_PET_CartesianGrid(), stir::BloodFrameData::decay_correct_BloodFrameData(), stir::DynamicDiscretisedDensity::decay_correct_frames(), stir::PlasmaData::decay_correct_PlasmaData(), stir::ecat::ecat7::DiscretisedDensity_to_ECAT7(), stir::DiscretisedShape3D::DiscretisedShape3D(), stir::LmToProjData::do_post_normalisation(), stir::ScatterSimulation::downsample_density_image_for_scatter_points(), stir::FBP2DReconstruction::FBP2DReconstruction(), stir::FBP3DRPReconstruction::FBP3DRPReconstruction(), stir::RigidObject3DTransformation::find_closest_transformation(), stir::DetectorCoordinateMap::find_detection_position_given_cartesian_coordinate(), stir::ecat::find_ECAT_data_type(), stir::ecat::find_ECAT_system_type(), stir::find_level_width(), stir::ForwardProjectorByBin::forward_project(), stir::LmToProjData::get_bin_from_event(), stir::BinNormalisationWithCalibration::get_calib_decay_branching_ratio_factor(), stir::ecat::CListModeDataECAT8_32bit::get_empty_record_sptr(), stir::ScatterEstimation::get_iterations_num(), stir::ImagingModality::get_name(), stir::RigidObject3DMotionFromPolaris::get_rel_time_of_samples(), stir::PlasmaData::get_sample_data_in_frames(), stir::get_scale_factors_per_sinogram(), stir::ProjDataFromStream::get_sinogram(), stir::PatlakPlot::get_time_frame_definitions(), stir::CListTimeROOT::get_time_in_millisecs(), stir::ProjDataInfo::get_tof_bin(), stir::ProjDataFromStream::get_viewgram(), stir::InputStreamWithRecords< RecordT, OptionsT >::InputStreamWithRecords(), stir::inverse_SSRB(), stir::Scanner::list_names(), stir::LmToProjDataBootstrap< LmToProjDataT >::LmToProjDataBootstrap(), stir::LmToProjDataWithRandomRejection< LmToProjDataT >::LmToProjDataWithRandomRejection(), stir::ecat::ecat6::make_ECAT6_Main_header(), stir::ecat::ecat7::make_ECAT7_main_header(), stir::Scanner::operator==(), stir::KeyParser::parse(), stir::InterfilePDFSHeaderSPECT::post_processing(), stir::NonRigidObjectTransformationUsingBSplines< num_dimensions, elemT >::post_processing(), stir::MoveProjData::post_processing(), stir::ecat::ecat7::ECAT7OutputFileFormat::post_processing(), stir::ecat::ecat6::ECAT6OutputFileFormat::post_processing(), stir::ecat::ecat7::ECAT7DynamicDiscretisedDensityOutputFileFormat::post_processing(), stir::MoveImage::post_processing(), stir::ecat::ecat7::ECAT7ParametricDensityOutputFileFormat< DiscretisedDensityT >::post_processing(), stir::RigidObject3DMotionFromPolaris::post_processing(), stir::InterfileHeader::post_processing(), stir::TimeFrameMotion::post_processing(), stir::Ellipsoid::post_processing(), stir::RigidObject3DMotion::post_processing(), stir::Shape3DWithOrientation::post_processing(), stir::MatchTrackerAndScanner::post_processing(), stir::AnalyticReconstruction::post_processing(), stir::ProjDataRebinning::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeDataWithProjMatrixByBin< TargetT >::post_processing(), stir::EllipsoidalCylinder::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndDynamicProjData< TargetT >::post_processing(), stir::FindMCNormFactors::post_processing(), stir::QuadraticPrior< float >::post_processing(), stir::LogcoshPrior< elemT >::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndListModeData< TargetT >::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotion< TargetT >::post_processing(), stir::RelativeDifferencePrior< elemT >::post_processing(), stir::Reconstruction< DiscretisedDensity< 3, float > >::post_processing(), stir::ScatterEstimation::post_processing(), stir::InterfileImageHeader::post_processing(), stir::InterfilePDFSHeader::post_processing(), stir::LmToProjData::post_processing(), stir::PoissonLogLikelihoodWithLinearModelForMeanAndProjData< TargetT >::post_processing(), stir::OSSPSReconstruction< TargetT >::precompute_denominator_of_conditioner_without_penalty(), stir::ScatterEstimation::process_data(), stir::ProjDataInfo::ProjDataInfoCTI(), stir::ProjDataInfoCylindrical::ProjDataInfoCylindrical(), stir::ProjMatrixByBinFromFile::ProjMatrixByBinFromFile(), stir::ProjMatrixByBinUsingRayTracing::ProjMatrixByBinUsingRayTracing(), stir::ProjMatrixByBinWithPositronRange::ProjMatrixByBinWithPositronRange(), stir::ProjMatrixByDenselUsingRayTracing::ProjMatrixByDenselUsingRayTracing(), stir::RayTraceVoxelsOnCartesianGrid(), stir::detail::read_data_1d(), stir::ecat::ecat7::read_ECAT7_exam_info(), stir::GE::RDF_HDF5::GEHDF5ListmodeInputFileFormat::read_from_file(), stir::ecat::ecat6::ECAT6ImageInputFileFormat::read_from_file(), stir::ecat::ecat7::ECAT7ImageInputFileFormat::read_from_file(), stir::TimeGateDefinitions::read_gdef_file(), stir::ecat::ecat7::SinglesRatesFromECAT7::read_singles_from_file(), stir::ecat::ecat7::SinglesRatesFromSglFile::read_singles_from_sgl_file(), stir::FactoryRegistry< Key, Factory, Compare >::remove_from_registry(), stir::KeyParser::remove_key(), stir::InputStreamWithRecordsFromUPENNtxt::reset(), stir::MatchTrackerAndScanner::run(), stir::ScannerTests::run_tests(), stir::sample_function_on_regular_grid(), stir::sample_function_using_index_converter(), stir::ModelMatrix< 2 >::scale_model_matrix(), distributed::send_exam_and_proj_data_info(), stir::InterfileDynamicDiscretisedDensityOutputFileFormat::set_byte_order(), stir::MultiDynamicDiscretisedDensityOutputFileFormat::set_byte_order(), stir::ecat::ecat7::ECAT7OutputFileFormat::set_byte_order(), stir::ecat::ecat7::ECAT7DynamicDiscretisedDensityOutputFileFormat::set_byte_order(), stir::ecat::ecat6::ECAT6OutputFileFormat::set_byte_order(), stir::ecat::ecat7::ECAT7ParametricDensityOutputFileFormat< DiscretisedDensityT >::set_byte_order(), stir::ParsingObject::set_key_values(), stir::PatlakPlot::set_model_matrix(), stir::set_num_threads(), stir::ProjDataInMemory::set_segment(), stir::ProjDataFromStream::set_segment(), stir::KOSMAPOSLReconstruction< TargetT >::set_sigma_m(), stir::ProjDataInMemory::set_sinogram(), stir::ProjDataFromStream::set_sinogram(), stir::ecat::ecat7::ECAT7OutputFileFormat::set_type_of_numbers(), stir::ecat::ecat7::ECAT7DynamicDiscretisedDensityOutputFileFormat::set_type_of_numbers(), stir::ecat::ecat6::ECAT6OutputFileFormat::set_type_of_numbers(), stir::ecat::ecat7::ECAT7ParametricDensityOutputFileFormat< DiscretisedDensityT >::set_type_of_numbers(), stir::BinNormalisationWithCalibration::set_up(), stir::ProjMatrixByBinUsingInterpolation::set_up(), stir::ProjMatrixByDenselUsingRayTracing::set_up(), stir::BinNormalisationFromML2D::set_up(), stir::ArcCorrection::set_up(), stir::BinNormalisationFromProjData::set_up(), stir::ColsherFilter::set_up(), stir::ForwardProjectorByBinUsingRayTracing::set_up(), stir::GE::RDF_HDF5::BinNormalisationFromGEHDF5::set_up(), stir::ProjMatrixByBinSPECTUB::set_up(), stir::ecat::ecat7::BinNormalisationFromECAT7::set_up(), stir::InputStreamFromROOTFileForECATPET::set_up(), stir::BinNormalisationPETFromComponents::set_up(), stir::GeneralisedObjectiveFunction< TargetT >::set_up(), stir::InputStreamFromROOTFileForCylindricalPET::set_up(), stir::ecat::BinNormalisationFromECAT8::set_up(), stir::FBP2DReconstruction::set_up(), stir::ProjMatrixByBinUsingRayTracing::set_up(), stir::ProjMatrixByBinPinholeSPECTUB::set_up(), stir::OSSPSReconstruction< TargetT >::set_up(), stir::ScatterEstimation::set_up(), stir::CorrectProjDataApplication::set_up(), stir::ScatterSimulation::set_use_cache(), stir::KeyParser::set_variable(), stir::SSRB(), stir::LmToProjDataBootstrap< LmToProjDataT >::start_new_time_frame(), stir::RigidObject3DMotionFromPolaris::synchronise(), stir::transform_3d_object(), stir::ModelMatrix< 2 >::uncalibrate(), stir::ScatterEstimation::upsample_and_fit_scatter_estimate(), stir::ecat::ecat7::write_basic_interfile_header_for_ECAT7(), stir::write_basic_interfile_image_header(), stir::write_basic_interfile_PDFS_header(), stir::detail::write_data_1d(), stir::ScatterSimulation::write_log(), stir::DynamicDiscretisedDensity::write_to_ecat7(), stir::ModelMatrix< 2 >::write_to_file(), stir::ProjMatrixByBinFromFile::write_to_file(), and stir::GatedSpatialTransformation::~GatedSpatialTransformation().

◆ warning() [2/2]

template<class STRING >
void stir::warning ( const STRING &  string,
const int  verbosity_level = 1 
)
inline

Use this function for writing warning messages.

The argument is expected to be a string, but could be anything for which std::ostream::operator<< would work.

This function currently first writes a newline, then WARNING:, then string and then another newline to std::cerr.

Todo:
At a later stage, it will also write to a log-file.

boost::format is useful in this context.

Example
warning(boost::format("Type is like this: %1%. Not sure if that will work.") % projdata_info.parameter_info());
warning("This might not work");

References stir::get().