casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator > Class Template Referenceabstract

Abstract base class which defines interface for providing "datasets" to the statistics framework in cases where the data structure involved does not allow for a trivial means of doing so (eg, in the case of a Lattice). More...

#include <StatsDataProvider.h>

Public Member Functions

virtual ~StatsDataProvider ()
 
virtual void operator++ ()=0
 increment the data provider to the next dataset, mask, range set, and weights. More...
 
virtual Bool atEnd () const =0
 Are there any data sets left to provide? More...
 
virtual void finalize ()=0
 Take any actions necessary to finalize the provider. More...
 
virtual uInt64 getCount ()=0
 get the count of elements in the current data set. More...
 
virtual DataIterator getData ()=0
 get an iterator to the first element of the current dataset More...
 
virtual MaskIterator getMask ()=0
 Get an iterator to the first element of the mask for the current dataset. More...
 
virtual uInt getMaskStride ()=0
 Get the stride for the current mask. More...
 
virtual uInt getNMaxThreads () const
 If OpenMP is enabled and statistics methods are being called in a multi-threaded context, get maximum number of threads that should be used. More...
 
virtual DataRanges getRanges ()=0
 Get the associated range(s) of the current dataset. More...
 
virtual uInt getStride ()=0
 Get the stride for the current data set. More...
 
virtual WeightsIterator getWeights ()=0
 Get an iterator to the first weights element of the current dataset. More...
 
virtual Bool hasMask () const =0
 Does the current data set have an associated mask? More...
 
virtual Bool hasRanges () const =0
 Does the current data set have associated range(s)? More...
 
virtual Bool hasWeights () const =0
 Does the current data set have associated weights? More...
 
virtual Bool isInclude () const =0
 If the associated data set has ranges, are these include (return True) or exclude (return False) ranges? More...
 
virtual void reset ()=0
 reset the provider to point to the beginning of the first data set it manages. More...
 
virtual void updateMaxPos (const LocationType &)
 In general, unless you are writing statistics algorithm code, you shouldn't need to call these methods. More...
 
virtual void updateMinPos (const LocationType &)
 

Protected Member Functions

 StatsDataProvider ()
 

Detailed Description

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
class casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >

Abstract base class which defines interface for providing "datasets" to the statistics framework in cases where the data structure involved does not allow for a trivial means of doing so (eg, in the case of a Lattice).

Definition at line 43 of file StatsDataProvider.h.

Constructor & Destructor Documentation

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::~StatsDataProvider ( )
virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::StatsDataProvider ( )
protected

Member Function Documentation

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual Bool casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::atEnd ( ) const
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::finalize ( )
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual uInt64 casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getCount ( )
pure virtual

get the count of elements in the current data set.

When implementing this method, be certain to take stride into account; ie for a data set with nominally 100 elements that is to have a stride of two, this method should return 50.

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual DataIterator casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getData ( )
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual MaskIterator casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getMask ( )
pure virtual

Get an iterator to the first element of the mask for the current dataset.

Only called if hasMask() returns True;

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual uInt casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getMaskStride ( )
pure virtual

Get the stride for the current mask.

Only called if hasMask() returns True.

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual uInt casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getNMaxThreads ( ) const
virtual

If OpenMP is enabled and statistics methods are being called in a multi-threaded context, get maximum number of threads that should be used.

If zero is returned, the statistics classes will use the maximum number of threads available to openmp. Returning less than that helps to decrease overhead used by statistics methods when the maximum number of threads available to openmp are unnecessary. The base class implmentation returns 0.

Reimplemented in casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual DataRanges casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getRanges ( )
pure virtual

Get the associated range(s) of the current dataset.

Only called if hasRanges() returns True;

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual uInt casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getStride ( )
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual WeightsIterator casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::getWeights ( )
pure virtual

Get an iterator to the first weights element of the current dataset.

Only called if hasWeights() returns True;

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual Bool casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::hasMask ( ) const
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual Bool casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::hasRanges ( ) const
pure virtual

Does the current data set have associated range(s)?

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual Bool casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::hasWeights ( ) const
pure virtual

Does the current data set have associated weights?

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual Bool casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::isInclude ( ) const
pure virtual

If the associated data set has ranges, are these include (return True) or exclude (return False) ranges?

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, and casacore::LatticeStatsDataProviderBase< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::operator++ ( )
pure virtual

increment the data provider to the next dataset, mask, range set, and weights.

Implemented in casa::Vi2DataProvider< DataIterator, MaskIterator, WeightsIterator >, casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::reset ( )
pure virtual
template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::updateMaxPos ( const LocationType )
inlinevirtual

In general, unless you are writing statistics algorithm code, you shouldn't need to call these methods.

The statistics framework calls these methods when the min and max posiitons are updated. It passes in the relevant index of the current sub dataset it is processing. Data providers can use this information to transform into something more useful, eg an IPosition for lattice data providers, so that they may be retreived easily after statistics have been calculated. The default implementations do nothing.

Definition at line 122 of file StatsDataProvider.h.

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::updateMinPos ( const LocationType )
inlinevirtual

Definition at line 124 of file StatsDataProvider.h.


The documentation for this class was generated from the following file: