ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkStatisticsAlgorithm.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkStatisticsAlgorithm_h
19#define itkStatisticsAlgorithm_h
20
21#include "itkSubsample.h"
22
24{
25template <typename TSize>
26TSize
27FloorLog(TSize size);
28
29template <typename TValue>
30TValue
31MedianOfThree(const TValue a, const TValue b, const TValue c);
32
48template <typename TSample>
49void
50FindSampleBound(const TSample * sample,
51 const typename TSample::ConstIterator & begin,
52 const typename TSample::ConstIterator & end,
53 typename TSample::MeasurementVectorType & min,
54 typename TSample::MeasurementVectorType & max);
55
57template <typename TSubsample>
58void
59FindSampleBoundAndMean(const TSubsample * sample,
60 int beginIndex,
61 int endIndex,
62 typename TSubsample::MeasurementVectorType & min,
63 typename TSubsample::MeasurementVectorType & max,
64 typename TSubsample::MeasurementVectorType & mean);
65
87template <typename TSubsample>
88int
89Partition(TSubsample * sample,
90 unsigned int activeDimension,
91 int beginIndex,
92 int endIndex,
93 const typename TSubsample::MeasurementType partitionValue);
94
112template <typename TSubsample>
113typename TSubsample::MeasurementType
114QuickSelect(TSubsample * sample,
115 unsigned int activeDimension,
116 int beginIndex,
117 int endIndex,
118 int kth,
119 typename TSubsample::MeasurementType medianGuess);
120
135template <typename TSubsample>
136typename TSubsample::MeasurementType
137QuickSelect(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex, int kth);
138
147template <typename TSubsample>
148typename TSubsample::MeasurementType
149NthElement(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex, int nth);
150
151template <typename TSubsample>
152void
153InsertSort(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex);
154
155template <typename TSubsample>
156void
157DownHeap(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex, int node);
158
159template <typename TSubsample>
160void
161HeapSort(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex);
162
163template <typename TSubsample>
164void
165IntrospectiveSortLoop(TSubsample * sample,
166 unsigned int activeDimension,
167 int beginIndex,
168 int endIndex,
169 int depthLimit,
170 int sizeThreshold);
171
172template <typename TSubsample>
173void
174IntrospectiveSort(TSubsample * sample, unsigned int activeDimension, int beginIndex, int endIndex, int sizeThreshold);
175
176} // namespace itk::Statistics::Algorithm
177// end of namespace Statistics
178
179#ifndef ITK_MANUAL_INSTANTIATION
180# include "itkStatisticsAlgorithm.hxx"
181#endif
182
183#endif // #ifndef itkStatisticsAlgorithm_h
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)