18 #ifndef __itkStatisticsAlgorithm_h
19 #define __itkStatisticsAlgorithm_h
29 #if !defined( _MSC_VER )
31 template<
typename TSize >
34 template<
typename TValue >
35 TValue
MedianOfThree(
const TValue a,
const TValue b,
const TValue c);
52 template<
typename TSample >
54 const typename TSample::ConstIterator & begin,
55 const typename TSample::ConstIterator & end,
56 typename TSample::MeasurementVectorType & min,
57 typename TSample::MeasurementVectorType & max);
60 template<
typename TSubsample >
64 typename TSubsample::MeasurementVectorType & min,
65 typename TSubsample::MeasurementVectorType & max,
66 typename TSubsample::MeasurementVectorType & mean);
89 template<
typename TSubsample >
91 unsigned int activeDimension,
92 int beginIndex,
int endIndex,
93 const typename TSubsample::MeasurementType partitionValue);
112 template<
typename TSubsample >
113 typename TSubsample::MeasurementType
115 unsigned int activeDimension,
116 int beginIndex,
int endIndex,
118 typename TSubsample::MeasurementType medianGuess);
134 template<
typename TSubsample >
135 typename TSubsample::MeasurementType
137 unsigned int activeDimension,
138 int beginIndex,
int endIndex,
149 template<
typename TSubsample >
150 typename TSubsample::MeasurementType
152 unsigned int activeDimension,
153 int beginIndex,
int endIndex,
156 template<
typename TSubsample >
158 unsigned int activeDimension,
159 int beginIndex,
int endIndex);
161 template<
typename TSubsample >
163 unsigned int activeDimension,
164 int beginIndex,
int endIndex,
int node);
166 template<
typename TSubsample >
168 unsigned int activeDimension,
169 int beginIndex,
int endIndex);
171 template<
typename TSubsample >
173 unsigned int activeDimension,
179 template<
typename TSubsample >
181 unsigned int activeDimension,
182 int beginIndex,
int endIndex,
185 #endif // #if defined(_MSC_VER)
190 #ifndef ITK_MANUAL_INSTANTIATION
191 #include "itkStatisticsAlgorithm.hxx"
194 #endif // #ifndef __itkStatisticsAlgorithm_h
void FindSampleBoundAndMean(const TSubsample *sample, int beginIndex, int endIndex, typename TSubsample::MeasurementVectorType &min, typename TSubsample::MeasurementVectorType &max, typename TSubsample::MeasurementVectorType &mean)
TSize FloorLog(TSize size)
int Partition(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, const typename TSubsample::MeasurementType partitionValue)
TSubsample::MeasurementType QuickSelect(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int kth, typename TSubsample::MeasurementType medianGuess)
void IntrospectiveSortLoop(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int depthLimit, int sizeThreshold)
void InsertSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex)
void DownHeap(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int node)
void FindSampleBound(const TSample *sample, const typename TSample::ConstIterator &begin, const typename TSample::ConstIterator &end, typename TSample::MeasurementVectorType &min, typename TSample::MeasurementVectorType &max)
TValue MedianOfThree(const TValue a, const TValue b, const TValue c)
void HeapSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex)
TSubsample::MeasurementType NthElement(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int nth)
void IntrospectiveSort(TSubsample *sample, unsigned int activeDimension, int beginIndex, int endIndex, int sizeThreshold)