casacore
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 when nontrivial means of doing so are not sufficient. 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 the current dataset More...
 
virtual MaskIterator getMask ()=0
 Get the associated mask of the current dataset. More...
 
virtual uInt getMaskStride ()=0
 Get the stride for the current mask (only called if hasMask() returns True). More...
 
virtual uInt getNMaxThreads () const
 If OpenMP is enabled and statistics methods are not 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 the associated weights 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 first data set it manages. More...
 
virtual void updateMaxPos (const std::pair< Int64, Int64 > &)
 In general, unless you are writing statistics algorithm code, you shouldn't need to call these methods. More...
 
virtual void updateMinPos (const std::pair< Int64, Int64 > &)
 

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 when nontrivial means of doing so are not sufficient.

Definition at line 40 of file StatsDataProvider.h.

Constructor & Destructor Documentation

◆ ~StatsDataProvider()

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

◆ StatsDataProvider()

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

Member Function Documentation

◆ atEnd()

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

Are there any data sets left to provide?

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

◆ finalize()

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

Take any actions necessary to finalize the provider.

This will be called when atEnd() returns True.

Implemented in casacore::MaskedLatticeStatsDataProvider< T >, casacore::LatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProviderBase< T >.

◆ getCount()

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 casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

◆ getData()

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

◆ getMask()

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

Get the associated mask of the current dataset.

Only called if hasMask() returns True;

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

◆ getMaskStride()

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 casacore::LatticeStatsDataProviderBase< T >.

◆ getNMaxThreads()

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 not 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 >.

◆ getRanges()

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 casacore::LatticeStatsDataProviderBase< T >.

◆ getStride()

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

Get the stride for the current data set.

Implemented in casacore::LatticeStatsDataProviderBase< T >.

◆ getWeights()

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

Get the associated weights of the current dataset.

Only called if hasWeights() returns True;

Implemented in casacore::LatticeStatsDataProviderBase< T >.

◆ hasMask()

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

Does the current data set have an associated mask?

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

◆ hasRanges()

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 casacore::LatticeStatsDataProviderBase< T >.

◆ hasWeights()

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 casacore::LatticeStatsDataProviderBase< T >.

◆ isInclude()

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 casacore::LatticeStatsDataProviderBase< T >.

◆ operator++()

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 casacore::MaskedLatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProvider< T >.

◆ reset()

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

reset the provider to point to the first data set it manages.

Implemented in casacore::MaskedLatticeStatsDataProvider< T >, casacore::LatticeStatsDataProvider< T >, and casacore::LatticeStatsDataProviderBase< T >.

◆ updateMaxPos()

template<class AccumType, class DataIterator, class MaskIterator = const Bool *, class WeightsIterator = DataIterator>
virtual void casacore::StatsDataProvider< AccumType, DataIterator, MaskIterator, WeightsIterator >::updateMaxPos ( const std::pair< Int64, Int64 > &  )
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.

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

Definition at line 110 of file StatsDataProvider.h.

◆ updateMinPos()

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

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