Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #pragma once 11 : 12 : #include "Distribution.h" 13 : 14 : /** 15 : * A class used to generate a normal distribution 16 : */ 17 0 : class Normal : public Distribution 18 : { 19 : public: 20 : static InputParameters validParams(); 21 : 22 : Normal(const InputParameters & parameters); 23 : 24 : virtual Real pdf(const Real & x) const override; 25 : virtual Real cdf(const Real & x) const override; 26 : virtual Real quantile(const Real & p) const override; 27 : 28 : static Real pdf(const Real & x, const Real & mean, const Real & std_dev); 29 : static Real cdf(const Real & x, const Real & mean, const Real & std_dev); 30 : static Real quantile(const Real & p, const Real & mean, const Real & std_dev); 31 : 32 : protected: 33 : ///@{ 34 : /// Coefficients for the rational function used to approximate the quantile 35 : static const std::array<Real, 6> _a; 36 : static const std::array<Real, 6> _b; 37 : ///@} 38 : 39 : /// The mean (or expectation) of the distribution (mu) 40 : const Real & _mean; 41 : 42 : /// The standard deviation of the distribution (sigma) 43 : const Real & _standard_deviation; 44 : };