The image state concept servers as the low level, fast, yet slightly unsafe image representation. From an abstract ImageStateBase base class, concrete classes are derived that represent the various combinations of image states: RealSpatialImageState, ComplexSpatialImageState, RealFrequencyImageState, ComplexFrequencyImageState, and ComplexHalfFrequencyImageState. These derived classes are all based on a single templated ImageStateImpl class, with the type and the domain as template parameters:
template <typename TYPE, typename DOMAIN_POLICY> class ImageStateImpl: public ImageStateBase;
