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);
37 template<
typename TSample >
39 typename TSample::ConstIterator begin,
40 typename TSample::ConstIterator end,
41 typename TSample::MeasurementVectorType & min,
42 typename TSample::MeasurementVectorType & max);
44 template<
typename TSubsample >
48 typename TSubsample::MeasurementVectorType & min,
49 typename TSubsample::MeasurementVectorType & max,
50 typename TSubsample::MeasurementVectorType & mean);
64 template<
typename TSubsample >
66 unsigned int activeDimension,
67 int beginIndex,
int endIndex,
68 const typename TSubsample::MeasurementType partitionValue);
78 template<
typename TSubsample >
79 typename TSubsample::MeasurementType
81 unsigned int activeDimension,
82 int beginIndex,
int endIndex,
84 typename TSubsample::MeasurementType medianGuess);
92 template<
typename TSubsample >
93 typename TSubsample::MeasurementType
95 unsigned int activeDimension,
96 int beginIndex,
int endIndex,
105 template<
typename TSubsample >
106 typename TSubsample::MeasurementType
108 unsigned int activeDimension,
109 int beginIndex,
int endIndex,
112 template<
typename TSubsample >
114 unsigned int activeDimension,
115 int beginIndex,
int endIndex);
117 template<
typename TSubsample >
119 unsigned int activeDimension,
120 int beginIndex,
int endIndex,
int node);
122 template<
typename TSubsample >
124 unsigned int activeDimension,
125 int beginIndex,
int endIndex);
127 template<
typename TSubsample >
129 unsigned int activeDimension,
135 template<
typename TSubsample >
137 unsigned int activeDimension,
138 int beginIndex,
int endIndex,
141 #endif // #if defined(_MSC_VER)
146 #ifndef ITK_MANUAL_INSTANTIATION
147 #include "itkStatisticsAlgorithm.hxx"
150 #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)
TValue MedianOfThree(const TValue a, const TValue b, const TValue c)
void FindSampleBound(const TSample *sample, typename TSample::ConstIterator begin, typename TSample::ConstIterator end, typename TSample::MeasurementVectorType &min, typename TSample::MeasurementVectorType &max)
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)