ITK  6.0.0
Insight Toolkit
itkGaussianDistribution.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 itkGaussianDistribution_h
19#define itkGaussianDistribution_h
20
22#include "ITKStatisticsExport.h"
23
24namespace itk
25{
26namespace Statistics
27{
61class ITKStatistics_EXPORT GaussianDistribution : public ProbabilityDistribution
62{
63public:
64 ITK_DISALLOW_COPY_AND_MOVE(GaussianDistribution);
65
71
73 itkOverrideGetNameOfClassMacro(GaussianDistribution);
74
76 itkNewMacro(Self);
77
81 GetNumberOfParameters() const override
82 {
83 return 2;
84 }
85
88 double
89 EvaluatePDF(double x) const override;
90
94 double
95 EvaluatePDF(double x, const ParametersType &) const override;
96
99 virtual double
100 EvaluatePDF(double x, double mean, double variance) const;
101
104 double
105 EvaluateCDF(double x) const override;
106
110 double
111 EvaluateCDF(double x, const ParametersType &) const override;
112
115 virtual double
116 EvaluateCDF(double x, double mean, double variance) const;
117
121 double
122 EvaluateInverseCDF(double p) const override;
123
128 double
129 EvaluateInverseCDF(double p, const ParametersType &) const override;
130
134 virtual double
135 EvaluateInverseCDF(double p, double mean, double variance) const;
136
139 virtual void
140 SetMean(double);
141
144 double
145 GetMean() const override;
146
148 bool
149 HasMean() const override
150 {
151 return true;
152 }
153
157 virtual void
158 SetVariance(double);
159
162 double
163 GetVariance() const override;
164
166 bool
167 HasVariance() const override
168 {
169 return true;
170 }
171
176 static double
177 PDF(double x);
178
184 static double
185 PDF(double x, const ParametersType &);
186
191 static double
192 PDF(double x, double mean, double variance);
193
198 static double
199 CDF(double x);
200
206 static double
207 CDF(double x, const ParametersType &);
208
213 static double
214 CDF(double x, double mean, double variance);
215
246 static double
247 InverseCDF(double p);
256 static double
257 InverseCDF(double p, const ParametersType &);
258
264 static double
265 InverseCDF(double p, double mean, double variance);
266
267protected:
269 ~GaussianDistribution() override = default;
270
271 void
272 PrintSelf(std::ostream & os, Indent indent) const override;
273}; // end of class
274} // end of namespace Statistics
275} // end namespace itk
276
277#endif
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
GaussianDistribution class defines the interface for a univariate Gaussian distribution (pdfs,...
static double CDF(double x, const ParametersType &)
double EvaluateInverseCDF(double p) const override
static double PDF(double x, const ParametersType &)
double GetMean() const override
static double InverseCDF(double p, const ParametersType &)
static double InverseCDF(double p, double mean, double variance)
static double InverseCDF(double p)
double EvaluateCDF(double x, const ParametersType &) const override
virtual double EvaluateInverseCDF(double p, double mean, double variance) const
~GaussianDistribution() override=default
SizeValueType GetNumberOfParameters() const override
double EvaluatePDF(double x) const override
double EvaluateInverseCDF(double p, const ParametersType &) const override
double EvaluateCDF(double x) const override
static double CDF(double x, double mean, double variance)
double EvaluatePDF(double x, const ParametersType &) const override
static double PDF(double x, double mean, double variance)
virtual double EvaluatePDF(double x, double mean, double variance) const
virtual double EvaluateCDF(double x, double mean, double variance) const
void PrintSelf(std::ostream &os, Indent indent) const override
double GetVariance() const override
ProbabilityDistribution class defines common interface for statistical distributions (pdfs,...
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
Definition: itkIntTypes.h:86