https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
FDistribution Class Reference

A class used to generate am F-distribution. More...

#include <FDistribution.h>

Inheritance diagram for FDistribution:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 FDistribution (const InputParameters &parameters)
 
virtual Real pdf (const Real &x) const override
 
virtual Real cdf (const Real &x) const override
 
virtual Real quantile (const Real &p) const override
 
virtual Real median () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
PerfGraphperfGraph ()
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static Real pdf (const Real &x, const unsigned int &df1, const unsigned int &df2)
 
static Real cdf (const Real &x, const unsigned int &df1, const unsigned int &df2)
 
static Real quantile (const Real &p, const unsigned int &df1, const unsigned int &df2)
 

Public Attributes

const ConsoleStream _console
 

Protected Member Functions

PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 

Protected Attributes

const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 
const unsigned int_df1
 
const unsigned int_df2
 

Detailed Description

A class used to generate am F-distribution.

Definition at line 17 of file FDistribution.h.

Constructor & Destructor Documentation

◆ FDistribution()

FDistribution::FDistribution ( const InputParameters parameters)

Definition at line 25 of file FDistribution.C.

27  _df1(getParam<unsigned int>("df1")),
28  _df2(getParam<unsigned int>("df2"))
29 {
30 }
Distribution(const InputParameters &parameters)
const unsigned int & _df1
Definition: FDistribution.h:35
const unsigned int & _df2
Definition: FDistribution.h:36
const InputParameters & parameters() const

Member Function Documentation

◆ cdf() [1/2]

Real FDistribution::cdf ( const Real x) const
overridevirtual

Implements Distribution.

Definition at line 91 of file FDistribution.C.

92 {
93  return cdf(x, _df1, _df2);
94 }
const std::vector< double > x
const unsigned int & _df1
Definition: FDistribution.h:35
virtual Real cdf(const Real &x) const override
Definition: FDistribution.C:91
const unsigned int & _df2
Definition: FDistribution.h:36

◆ cdf() [2/2]

Real FDistribution::cdf ( const Real x,
const unsigned int df1,
const unsigned int df2 
)
static

Definition at line 64 of file FDistribution.C.

65 {
66  // Handy definitions
67  Real d1 = static_cast<Real>(df1);
68  Real d2 = static_cast<Real>(df2);
69 
70  return Beta::incompleteBeta(d1 / 2.0, d2 / 2.0, d1 * x / (d1 * x + d2));
71 }
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static Real incompleteBeta(const Real &a, const Real &b, const Real &x)
Lower incomplete beta function.
Definition: Beta.C:82

◆ pdf() [1/2]

Real FDistribution::pdf ( const Real x) const
overridevirtual

Implements Distribution.

Definition at line 85 of file FDistribution.C.

86 {
87  return pdf(x, _df1, _df2);
88 }
const std::vector< double > x
const unsigned int & _df1
Definition: FDistribution.h:35
virtual Real pdf(const Real &x) const override
Definition: FDistribution.C:85
const unsigned int & _df2
Definition: FDistribution.h:36

◆ pdf() [2/2]

Real FDistribution::pdf ( const Real x,
const unsigned int df1,
const unsigned int df2 
)
static

Definition at line 33 of file FDistribution.C.

34 {
35  // Handy definitions
36  Real d1 = static_cast<Real>(df1);
37  Real d2 = static_cast<Real>(df2);
38  Real d1x = d1 * x;
39  Real d2pd1x = d2 + d1x;
40 
41  Real a;
42  Real b;
43  Real y;
44  Real z;
45  if (d1 * x > d2)
46  {
47  a = d2 / 2.0;
48  b = d1 / 2.0;
49  y = (d2 * d1) / (d2pd1x * d2pd1x);
50  z = d2 / d2pd1x;
51  }
52  else
53  {
54  a = d1 / 2.0;
55  b = d2 / 2.0;
56  y = (d2pd1x * d1 - d1x * d1) / (d2pd1x * d2pd1x);
57  z = d1x / d2pd1x;
58  }
59 
60  return y * Beta::pdf(z, a, b);
61 }
virtual Real pdf(const Real &x) const override
Definition: Beta.C:58
const std::vector< double > y
const std::vector< double > x
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ quantile() [1/2]

Real FDistribution::quantile ( const Real p) const
overridevirtual

Implements Distribution.

Definition at line 97 of file FDistribution.C.

98 {
99  return quantile(p, _df1, _df2);
100 }
virtual Real quantile(const Real &p) const override
Definition: FDistribution.C:97
const unsigned int & _df1
Definition: FDistribution.h:35
const unsigned int & _df2
Definition: FDistribution.h:36

◆ quantile() [2/2]

Real FDistribution::quantile ( const Real p,
const unsigned int df1,
const unsigned int df2 
)
static

Definition at line 74 of file FDistribution.C.

75 {
76  // Handy definitions
77  Real d1 = static_cast<Real>(df1);
78  Real d2 = static_cast<Real>(df2);
79 
80  Real z = Beta::incompleteBetaInv(d1 / 2.0, d2 / 2.0, p);
81  return d2 * z / d1 / (1.0 - z);
82 }
static Real incompleteBetaInv(const Real &a, const Real &b, const Real &p)
Inverse of lower incomplete beta function.
Definition: Beta.C:124
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ validParams()

InputParameters FDistribution::validParams ( )
static

Definition at line 16 of file FDistribution.C.

17 {
19  params.addClassDescription("F-distribution or Fisher-Snedecor distribution");
20  params.addRequiredRangeCheckedParam<unsigned int>("df1", "df1 > 0", "Degrees of freedom 1.");
21  params.addRequiredRangeCheckedParam<unsigned int>("df2", "df2 > 0", "Degrees of freedom 2.");
22  return params;
23 }
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _df1

const unsigned int& FDistribution::_df1
protected

Degrees of freedom

Definition at line 35 of file FDistribution.h.

Referenced by cdf(), pdf(), and quantile().

◆ _df2

const unsigned int& FDistribution::_df2
protected

Definition at line 36 of file FDistribution.h.

Referenced by cdf(), pdf(), and quantile().


The documentation for this class was generated from the following files: