18#ifndef itkStatisticsAlgorithm_h
19#define itkStatisticsAlgorithm_h
29template <
typename TSize>
33template <
typename TValue>
52template <
typename TSample>
55 const typename TSample::ConstIterator & begin,
56 const typename TSample::ConstIterator & end,
57 typename TSample::MeasurementVectorType & min,
58 typename TSample::MeasurementVectorType & max);
61template <
typename TSubsample>
66 typename TSubsample::MeasurementVectorType & min,
67 typename TSubsample::MeasurementVectorType & max,
68 typename TSubsample::MeasurementVectorType & mean);
91template <
typename TSubsample>
94 unsigned int activeDimension,
97 const typename TSubsample::MeasurementType partitionValue);
116template <
typename TSubsample>
117typename TSubsample::MeasurementType
119 unsigned int activeDimension,
123 typename TSubsample::MeasurementType medianGuess);
139template <
typename TSubsample>
140typename TSubsample::MeasurementType
141QuickSelect(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex,
int kth);
151template <
typename TSubsample>
152typename TSubsample::MeasurementType
153NthElement(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex,
int nth);
155template <
typename TSubsample>
157InsertSort(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex);
159template <
typename TSubsample>
161DownHeap(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex,
int node);
163template <
typename TSubsample>
165HeapSort(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex);
167template <
typename TSubsample>
170 unsigned int activeDimension,
176template <
typename TSubsample>
178IntrospectiveSort(TSubsample * sample,
unsigned int activeDimension,
int beginIndex,
int endIndex,
int sizeThreshold);
184#ifndef ITK_MANUAL_INSTANTIATION
185# include "itkStatisticsAlgorithm.hxx"
Algorithm or implementation used in the dilation/erosion operations.
void IntrospectiveSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int sizeThreshold)
void FindSampleBoundAndMean(const TSubsample *sample, int beginIndex, int endIndex, typename TSubsample::MeasurementVectorType &min, typename TSubsample::MeasurementVectorType &max, typename TSubsample::MeasurementVectorType &mean)
void InsertSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex)
void IntrospectiveSortLoop(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int depthLimit, int sizeThreshold)
TSize FloorLog(TSize size)
int Partition(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, const typename TSubsample::MeasurementType partitionValue)
TSubsample::MeasurementType NthElement(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int nth)
void FindSampleBound(const TSample *sample, const typename TSample::ConstIterator &begin, const typename TSample::ConstIterator &end, typename TSample::MeasurementVectorType &min, typename TSample::MeasurementVectorType &max)
TSubsample::MeasurementType QuickSelect(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int kth, typename TSubsample::MeasurementType medianGuess)
void DownHeap(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int node)
TValue MedianOfThree(const TValue a, const TValue b, const TValue c)
void HeapSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....