diff --git a/doc/distributions/dist_reference.qbk b/doc/distributions/dist_reference.qbk index 9846e2db7..d700d70a0 100644 --- a/doc/distributions/dist_reference.qbk +++ b/doc/distributions/dist_reference.qbk @@ -14,6 +14,7 @@ [include fisher.qbk] [include gamma.qbk] [include geometric.qbk] +[include hyperexponential.qbk] [include hypergeometric.qbk] [include inverse_chi_squared.qbk] [include inverse_gamma.qbk] diff --git a/doc/distributions/hyperexponential.qbk b/doc/distributions/hyperexponential.qbk index 1fe6eddae..5a9a78cf6 100644 --- a/doc/distributions/hyperexponential.qbk +++ b/doc/distributions/hyperexponential.qbk @@ -33,47 +33,141 @@ The class type `hyperexponential_distribution` represents a [@http://en.wikipedia.org/wiki/Hyperexponential_distribution hyperexponential distribution]. -A k-phase hyperexponential distribution is a [@http://en.wikipedia.org/wiki/Continuous_probability_distribution continuous probability distribution] obtained as a mixture of k [@http://en.wikipedia.org/wiki/Exponential_distribution exponential distributions]. -It is also referred to as mixed exponential distribution or parallel k-phase exponential distribution. +A /k/-phase hyperexponential distribution is a [@http://en.wikipedia.org/wiki/Continuous_probability_distribution continuous probability distribution] obtained as a mixture of /k/ __exp_distrib. +It is also referred to as /mixed exponential distribution/ or parallel /k-phase exponential distribution/. + +A /k/-phase hyperexponential distribution is characterized by two parameters, namely a /phase probability vector/ ['[*[alpha]]=([alpha][sub 1],...,[alpha][sub k])] and a /rate vector/ ['[*[lambda]]=([lambda][sub 1],...,[lambda][sub k])]. + +The [@http://en.wikipedia.org/wiki/Probability_density_function probability density function] for random variate /x/ in a hyperexponential distribution is given by: + +[equation hyperexponential_pdf] + +The following graph illustrates the PDF of the hyperexponential distribution with five different parameters, namely: + +# ['[*[alpha]]=(1.0)] and ['[*[lambda]]=(1.0)] (which degenerates to a simple exponential distribution), +# ['[*[alpha]]=(0.1,0.9)] and ['[*[lambda]]=(0.5,1.5)], +# ['[*[alpha]]=(0.9,0.1)] and ['[*[lambda]]=(0.5,1.5)], +# ['[*[alpha]]=(0.2,0.3,0.5)] and ['[*[lambda]]=(0.5,1.0,1.5)], +# ['[*[alpha]]=(0.5,0.3,0.2)] and ['[*[lambda]]=(0.5,1.0,1.5)]. + +[graph hyperexponential_pdf] + +[h4 Applications] + +A /k/-phase hyperexponential distribution is frequently used in [@http://en.wikipedia.org/wiki/Queueing_theory queueing theory] to model the service time distribution of a queueing station with /k/ servers in parallel where the /i/-th server is chosen with probability ['[alpha][sub i]] and its service time distribution is an exponential distribution with rate ['[lambda][sub i]] (Papadopolous et al.,1993). -A k-phase hyperexponential distribution can be interpreted as the service time distribution of k servers in parallel where the i-th server has service rate r[sub i] and is chosen with probability p[sub i]. -Indeed, it is frequency used in [@http://en.wikipedia.org/wiki/Queueing_theory queueing theory] to model a queueing station with k servers in parallel. Also, it can be used to approximate [@http://en.wikipedia.org/wiki/Long_tail long-tail probability distributions] (Feldmann et al.,1998). -A k-phase hyperexponential distribution is characterized by two paramters, namely a /phase probability vector/ p=(p[sub 1],...,p[sub k]) and a /rate vector/ r=(r[sub 1],...,r[sub k]). -The [@http://en.wikipedia.org/wiki/Probability_density_function probability density function] for value x in a hyperexponential distribution is given by: +[h4 Related distributions] -f(x;(p[sub 1],...,p[sub k]),(r[sub 1],...,r[sub k])) = [Sigma][sub i=1][super k] p[sub i]r[sub i]exp(-r[sub i]x) +When the number of phases /k/ is equal to `1`, the hyperexponential distribution is simply an __exp_distrib. -where exp(x) is the [@http://en.wikipedia.org/wiki/Exponential_function exponential function]. [h4 Member Functions] -*TODO* +[h5 Constructors] + + template + hyperexponential_distribution(ProbIterT prob_first, ProbIterT prob_last, RateIterT rate_first, RateIterT rate_last); + +Constructs a hyperexponential distribution with /phase probability vector/ parameter given by the range defined by \[`prob_first`, `prob_last`) iterator pair, and /rate vector/ parameter given by the range defined by the \[`rate_first`, `rate_last`) iterator pair. + +[h6 Parameters] + +* `prob_first`, `prob_last`: the range of non-negative real elements representing the phase probabilities; if elements don't sum to `1`, they are normalized. +* `rate_first`, `rate_last`: the range of positive elements representing the rates. + +[h6 Type Requirements] + +[itemized_list [ `ProbIterT`, `RateIterT`: must meet the requirements of the [@http://en.cppreference.com/w/cpp/concept/InputIterator InputIterator] concept.]] + + + template + hyperexponential_distribution(ProbRangeT const& prob_range, RateRangeT const& rate_range); + +Constructs a hyperexponential distribution with /phase probability vector/ parameter given by the range defined by `prob_range`, and /rate vector/ parameter given by the range defined by `rate_range`. + +[h6 Parameters] + +* `prob_range`: the range of non-negative real elements representing the phase probabilities; if elements don't sum to `1`, they are normalized. +* `rate_range`: the range of positive real elements representing the rates. + +[h6 Type Requirements] + +* `ProbRangeT`, `RateRangeT`: must meet the requirements of the [link range.concepts Range] concept. + + +[h5 Accessors] + + std::size_t num_phases() const; + +Gets the number of phases of this distribution. + +[h6 Return Value] An non-negative integer number representing the number of phases of this distribution. + + + std::vector probabilities() const; + +Gets the /phase probability vector/ parameter of this distribution. + +[h6 Return Value] A vector of non-negative real numbers representing the /phase probability vector/ parameter of this distribution. + + + std::vector rates() const; + +Gets the /rate vector/ parameter of this distribution. + +[h6 Return Value] A vector of positive real numbers representing the /rate vector/ parameter of this distribution. + [h4 Non-member Accessor Functions] -*TODO* +All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions] that are generic to all distributions are supported: __usual_accessors. + +The formulae for calculating these are shown in the table below. + [h4 Accuracy] -*TODO* +The hyperexponential distribution is implemented in terms of the __exp_distrib and as such should have very small errors. + [h4 Implementation] -*TODO* +In the following table: + +* ['[*[alpha]]=([alpha][sub 1],...,[alpha][sub k])] is the /phase probability vector/ parameter of the /k/-phase hyperexponential distribution, +* ['[*[lambda]]=([lambda][sub 1],...,[lambda][sub k])] is the /rate vector/ parameter of the /k/-phase hyperexponential distribution, +* /x/ is the random variate. + +[table +[[Function][Implementation Notes]] +[[support][['x] [isin] \[0,[infin])]] +[[pdf][[equation hyperexponential_pdf]]] +[[cdf][[equation hyperexponential_cdf]]] +[[cdf complement][[equation hyperexponential_ccdf]]] +[[quantile][No closed form available. Computed numerically.]] +[[quantile from the complement][No closed form available. Computed numerically.]] +[[mean][[equation hyperexponential_mean]]] +[[variance][[equation hyperexponential_variance]]] +[[mode][`0`]] +[[skewness][[equation hyperexponential_skewness]]] +[[kurtosis][[equation hyperexponential_kurtosis]]] +[[kurtosis excess][kurtosis `- 3`]] +] + [h4 References] +* A. Feldmann and W. Whitt, /Fitting mixtures of exponentials to long-tail distributions to analyze network performance models/, Performance Evaluation 31(3-4):245, doi:10.1016/S0166-5316(97)00003-5, 1998. + * H.T. Papadopolous, C. Heavey and J. Browne, /Queueing Theory in Manufacturing Systems Analysis and Design/, Chapman & Hall/CRC, 1993, p. 35. * Wolfram Mathematica, /Hyperexponential Distribution/, Online: [@http://reference.wolfram.com/language/ref/HyperexponentialDistribution.html], 2014. * Wikipedia, /Hyperexponential Distribution/, Online: [@http://en.wikipedia.org/wiki/Hyperexponential_distribution], 2014 -* A. Feldmann and W. Whitt, /Fitting mixtures of exponentials to long-tail distributions to analyze network performance models/, Performance Evaluation 31(3-4):245, doi:10.1016/S0166-5316(97)00003-5, 1998. - [endsect][/section:hyperexponential_dist hyperexponential] [/ hyperexponential.qbk diff --git a/doc/equations/hyperexponential_ccdf.mml b/doc/equations/hyperexponential_ccdf.mml new file mode 100644 index 000000000..0931a49c2 --- /dev/null +++ b/doc/equations/hyperexponential_ccdf.mml @@ -0,0 +1,27 @@ + + + + + + i + = + 1 + + k + + + α + i + + + e + + + + λ + i + + x + + + diff --git a/doc/equations/hyperexponential_ccdf.png b/doc/equations/hyperexponential_ccdf.png new file mode 100644 index 000000000..c57c8e0ac Binary files /dev/null and b/doc/equations/hyperexponential_ccdf.png differ diff --git a/doc/equations/hyperexponential_ccdf.svg b/doc/equations/hyperexponential_ccdf.svg new file mode 100644 index 000000000..4f0e4f07b --- /dev/null +++ b/doc/equations/hyperexponential_ccdf.svg @@ -0,0 +1,71 @@ + + + + 57.62793661971833 + + + + + + i + = + 1 + + k + α + i + e + + + λ + i + x + + + + diff --git a/doc/equations/hyperexponential_cdf.mml b/doc/equations/hyperexponential_cdf.mml new file mode 100644 index 000000000..5bbd2205e --- /dev/null +++ b/doc/equations/hyperexponential_cdf.mml @@ -0,0 +1,29 @@ + + + 1 + + + + + i + = + 1 + + k + + + α + i + + + e + + + + λ + i + + x + + + diff --git a/doc/equations/hyperexponential_cdf.png b/doc/equations/hyperexponential_cdf.png new file mode 100644 index 000000000..fd89c8ca7 Binary files /dev/null and b/doc/equations/hyperexponential_cdf.png differ diff --git a/doc/equations/hyperexponential_cdf.svg b/doc/equations/hyperexponential_cdf.svg new file mode 100644 index 000000000..b52c222e3 --- /dev/null +++ b/doc/equations/hyperexponential_cdf.svg @@ -0,0 +1,79 @@ + + + + 57.6279366197183 + + + + 1 + + + + i + = + 1 + + k + α + i + e + + + λ + i + x + + + + diff --git a/doc/equations/hyperexponential_kurtosis.mml b/doc/equations/hyperexponential_kurtosis.mml new file mode 100644 index 000000000..7878b819a --- /dev/null +++ b/doc/equations/hyperexponential_kurtosis.mml @@ -0,0 +1,282 @@ + + + + + 24 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 4 + + + + ) + + + 24 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 3 + + + + ) + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + ) + + + + 3 + + ( + + 2 + + ( + + 2 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 2 + + + + ) + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + ) + + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + ) + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + + + ( + + 2 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 2 + + + + ) + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + + ) + + 2 + + + + diff --git a/doc/equations/hyperexponential_kurtosis.png b/doc/equations/hyperexponential_kurtosis.png new file mode 100644 index 000000000..c1355ebe0 Binary files /dev/null and b/doc/equations/hyperexponential_kurtosis.png differ diff --git a/doc/equations/hyperexponential_kurtosis.svg b/doc/equations/hyperexponential_kurtosis.svg new file mode 100644 index 000000000..81a73131b --- /dev/null +++ b/doc/equations/hyperexponential_kurtosis.svg @@ -0,0 +1,761 @@ + + + + 129.23400000000004 + + + + + 24 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 4 + + + + + + + + + 24 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 3 + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + + + 3 + + + + + + + + 2 + + + + + + + 2 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + + 2 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + 2 + + + + + diff --git a/doc/equations/hyperexponential_mean.mml b/doc/equations/hyperexponential_mean.mml new file mode 100644 index 000000000..4b3383847 --- /dev/null +++ b/doc/equations/hyperexponential_mean.mml @@ -0,0 +1,22 @@ + + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + diff --git a/doc/equations/hyperexponential_mean.png b/doc/equations/hyperexponential_mean.png new file mode 100644 index 000000000..294821c93 Binary files /dev/null and b/doc/equations/hyperexponential_mean.png differ diff --git a/doc/equations/hyperexponential_mean.svg b/doc/equations/hyperexponential_mean.svg new file mode 100644 index 000000000..9f3cf125b --- /dev/null +++ b/doc/equations/hyperexponential_mean.svg @@ -0,0 +1,64 @@ + + + + 57.62793661971833 + + + + + + i + = + 1 + + k + α + i + λ + i + + + + diff --git a/doc/equations/hyperexponential_pdf.mml b/doc/equations/hyperexponential_pdf.mml new file mode 100644 index 000000000..b67dad360 --- /dev/null +++ b/doc/equations/hyperexponential_pdf.mml @@ -0,0 +1,31 @@ + + + + + + i + = + 1 + + k + + + α + i + + + λ + i + + + e + + + + λ + i + + x + + + diff --git a/doc/equations/hyperexponential_pdf.png b/doc/equations/hyperexponential_pdf.png new file mode 100644 index 000000000..2d50747c7 Binary files /dev/null and b/doc/equations/hyperexponential_pdf.png differ diff --git a/doc/equations/hyperexponential_pdf.svg b/doc/equations/hyperexponential_pdf.svg new file mode 100644 index 000000000..1066fad7c --- /dev/null +++ b/doc/equations/hyperexponential_pdf.svg @@ -0,0 +1,79 @@ + + + + 57.62793661971833 + + + + + + i + = + 1 + + k + α + i + λ + i + e + + + λ + i + x + + + + diff --git a/doc/equations/hyperexponential_skewness.mml b/doc/equations/hyperexponential_skewness.mml new file mode 100644 index 000000000..3a55d36fa --- /dev/null +++ b/doc/equations/hyperexponential_skewness.mml @@ -0,0 +1,230 @@ + + + + + 6 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 3 + + + + ) + + + + ( + + 3 + + ( + + 2 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 2 + + + + ) + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + ) + + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + ) + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + ) + + + + + ( + + 2 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 2 + + + + ) + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + + + ) + + + + 3 + 2 + + + + + + diff --git a/doc/equations/hyperexponential_skewness.png b/doc/equations/hyperexponential_skewness.png new file mode 100644 index 000000000..423e6ccc2 Binary files /dev/null and b/doc/equations/hyperexponential_skewness.png differ diff --git a/doc/equations/hyperexponential_skewness.svg b/doc/equations/hyperexponential_skewness.svg new file mode 100644 index 000000000..b51afb3a4 --- /dev/null +++ b/doc/equations/hyperexponential_skewness.svg @@ -0,0 +1,624 @@ + + + + 151.88478 + + + + + 6 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 3 + + + + + + + + + + + + + + + + 3 + + + + + + + 2 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + + + + + + + + + 2 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + + + + + + 3 + 2 + + + + + + + diff --git a/doc/equations/hyperexponential_variance.mml b/doc/equations/hyperexponential_variance.mml new file mode 100644 index 000000000..6443129ac --- /dev/null +++ b/doc/equations/hyperexponential_variance.mml @@ -0,0 +1,59 @@ + + + 2 + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + 2 + + + + ) + + + + ( + + + + + i + = + 1 + + k + + + + α + i + + + λ + i + + + + + ) + + 2 + + diff --git a/doc/equations/hyperexponential_variance.png b/doc/equations/hyperexponential_variance.png new file mode 100644 index 000000000..466079d9f Binary files /dev/null and b/doc/equations/hyperexponential_variance.png differ diff --git a/doc/equations/hyperexponential_variance.svg b/doc/equations/hyperexponential_variance.svg new file mode 100644 index 000000000..c4fe1f40a --- /dev/null +++ b/doc/equations/hyperexponential_variance.svg @@ -0,0 +1,161 @@ + + + + 64.15370000000001 + + + + 2 + + + + + + + + + i + = + 1 + + k + α + i + λ + i + 2 + + + + + + + + + + + + + + + + + i + = + 1 + + k + α + i + λ + i + + + + + + + + 2 + + + diff --git a/doc/graphs/dist_graphs.cpp b/doc/graphs/dist_graphs.cpp index c5d960192..aa944d67c 100644 --- a/doc/graphs/dist_graphs.cpp +++ b/doc/graphs/dist_graphs.cpp @@ -653,4 +653,25 @@ int main() hypergeometric_plotter2.add(boost::math::hypergeometric_distribution<>(450, 50, 500), "N=500, r=50, n=450"); hypergeometric_plotter2.plot("Hypergeometric Distribution PDF", "hypergeometric_pdf_2.svg"); + distribution_plotter > + hyperexponential_plotter2; + { + double probs1_1[] = {1.0}; + double rates1_1[] = {1.0}; + hyperexponential_plotter2.add(boost::math::hyperexponential_distribution<>(probs1_1,rates1_1), "α=(1.0), λ=(1.0)"); + double probs2_1[] = {0.1,0.9}; + double rates2_1[] = {0.5,1.5}; + hyperexponential_plotter2.add(boost::math::hyperexponential_distribution<>(probs2_1,rates2_1), "α=(0.1,0.9), λ=(0.5,1.5)"); + double probs2_2[] = {0.9,0.1}; + double rates2_2[] = {0.5,1.5}; + hyperexponential_plotter2.add(boost::math::hyperexponential_distribution<>(probs2_2,rates2_2), "α=(0.9,0.1), λ=(0.5,1.5)"); + double probs3_1[] = {0.2,0.3,0.5}; + double rates3_1[] = {0.5,1.0,1.5}; + hyperexponential_plotter2.add(boost::math::hyperexponential_distribution<>(probs3_1,rates3_1), "α=(0.2,0.3,0.5), λ=(0.5,1.0,1.5)"); + double probs3_2[] = {0.5,0.3,0.2}; + double rates3_2[] = {0.5,1.0,1.5}; + hyperexponential_plotter2.add(boost::math::hyperexponential_distribution<>(probs3_1,rates3_1), "α=(0.5,0.3,0.2), λ=(0.5,1.0,1.5)"); + } + hyperexponential_plotter2.plot("Hyperexponential Distribution PDF", "hyperexponential_pdf.svg"); + } // int main() diff --git a/doc/graphs/hyperexponential_pdf.png b/doc/graphs/hyperexponential_pdf.png new file mode 100644 index 000000000..374e8897f Binary files /dev/null and b/doc/graphs/hyperexponential_pdf.png differ diff --git a/doc/graphs/hyperexponential_pdf.svg b/doc/graphs/hyperexponential_pdf.svg new file mode 100644 index 000000000..12bd78970 --- /dev/null +++ b/doc/graphs/hyperexponential_pdf.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/math.qbk b/doc/math.qbk index 4cc833b53..1f684e520 100644 --- a/doc/math.qbk +++ b/doc/math.qbk @@ -1,13 +1,13 @@ [book Math Toolkit [quickbook 1.6] - [copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013 Nikhar Agrawal, Anton Bikineev, Paul A. Bristow, Christopher Kormanyos, Hubert Holin, Bruno Lalande, John Maddock, Johan Råde, Gautam Sewani, Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang] + [copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014 Nikhar Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert Holin, Bruno Lalande, John Maddock, Johan Råde, Gautam Sewani, Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang] [/purpose ISBN 0-9504833-2-X 978-0-9504833-2-0, Classification 519.2-dc22] [license Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at [@http://www.boost.org/LICENSE_1_0.txt]) ] - [authors [Agrawal, Nikhar], [Bikineev, Anton], [Bristow, Paul A.], [Holin, Hubert], [Kormanyos, Christopher], [Lalande, Bruno], [Maddock, John], [Råde, Johan], [Sobotta, Benjamin], [Sewani, Gautam], [van den Berg, Thijs], [Walker, Daryle], [Zhang, Xiaogang]] + [authors [Agrawal, Nikhar], [Bikineev, Anton], [Bristow, Paul A.], [Holin, Hubert], [Guazzone, Marco], [Kormanyos, Christopher], [Lalande, Bruno], [Maddock, John], [Råde, Johan], [Sobotta, Benjamin], [Sewani, Gautam], [van den Berg, Thijs], [Walker, Daryle], [Zhang, Xiaogang]] [/last-revision $Date$] [version 1.9.0] ] @@ -279,6 +279,7 @@ and use the function's name as the link text.] [def __F_distrib [link math_toolkit.dist_ref.dists.f_dist Fisher F Distribution]] [def __gamma_distrib [link math_toolkit.dist_ref.dists.gamma_dist Gamma Distribution]] [def __geometric_distrib [link math_toolkit.dist_ref.dists.geometric_dist Geometric Distribution]] +[def __hyperexponential_distrib [link math_toolkit.dist_ref.dists.hyperexponential_dist Hyperexponential Distribution]] [def __hypergeometric_distrib [link math_toolkit.dist_ref.dists.hypergeometric_dist hypergeometric Distribution]] [def __inverse_gamma_distrib [link math_toolkit.dist_ref.dists.inverse_gamma_dist Inverse Gamma Distribution]] [def __inverse_gaussian_distrib [link math_toolkit.dist_ref.dists.inverse_gaussian_dist Inverse Gaussian Distribution]]