12 #include "libmesh/utility.h"
22 params.addClassDescription(
"Johnson Special Bounded (SB) distribution.");
24 params.set<Real>(
"mean") = 0.0;
25 params.set<Real>(
"standard_deviation") = 1.0;
26 params.suppressParameter<Real>(
"mean");
27 params.suppressParameter<Real>(
"standard_deviation");
29 params.addRequiredParam<Real>(
"a",
"Lower location parameter");
30 params.addRequiredParam<Real>(
"b",
"Upper location parameter");
31 params.addRequiredParam<Real>(
"alpha_1",
"Shape parameter (sometimes called a)");
32 params.addRequiredParam<Real>(
"alpha_2",
"Shape parameter (sometimes called b)");
39 _lower(getParam<Real>(
"a")),
40 _upper(getParam<Real>(
"b")),
41 _alpha_1(getParam<Real>(
"alpha_1")),
42 _alpha_2(getParam<Real>(
"alpha_2"))
48 const Real & x,
const Real & a,
const Real & b,
const Real & alpha_1,
const Real & alpha_2)
54 return (alpha_2 * (b - a)) / ((x - a) * (b - x) * std::sqrt(2.0 * M_PI)) *
55 std::exp(-0.5 * Utility::pow<2>(alpha_1 + alpha_2 * std::log((x - a) / (b - x))));
63 const Real & x,
const Real & a,
const Real & b,
const Real & alpha_1,
const Real & alpha_2)
77 const Real & p,
const Real & a,
const Real & b,
const Real & alpha_1,
const Real & alpha_2)
80 return (a + b * std::exp((Z - alpha_1) / alpha_2)) / (1.0 + std::exp((Z - alpha_1) / alpha_2));
86 TIME_SECTION(_perf_pdf);
93 TIME_SECTION(_perf_cdf);
100 TIME_SECTION(_perf_quantile);