diff --git a/docs/distributions.md b/docs/distributions.md
new file mode 100644
index 00000000..27668d4b
--- /dev/null
+++ b/docs/distributions.md
@@ -0,0 +1,1322 @@
+# L-moments of common probability distributions
+
+This page lists L-moment statistics
+(L -location, scale, skewness, and kurtosis) of common univariate
+probability distributions, most of them continuous.
+
+Each of the listed expressions have been validated, both numerically and
+symbolically (with either Wolfram Alpha, SymPy, or pen and paper).
+
+Most of the closed-form expressions that are listed here, have been
+previously reported in the literature. But for the sake of interpretability,
+several have been algebraically rearranged.
+
+Due to the exploratory use of symbolic computation software, this listing is
+likely to include some novel solutions. This is also the reason for the lack
+of references. But this should pose no problems in practise, since Lmo makes
+it trivial to check if they aren't incorrect.
+
+
+!!! tip
+
+ Numerical calculation of these L-statistics using `scipy.stats`
+ distributions, refer to
+ [`rv_continuous.l_stats`][lmo.contrib.scipy_stats.l_rv_generic.l_stats].
+
+ For direct calculation of the L-stats from a CDF or PPF (quantile function,
+ inverse CDF), see [`l_stats_from_cdf`][lmo.theoretical.l_stats_from_cdf] or
+ [`l_stats_from_ppf`][lmo.theoretical.l_stats_from_ppf], respectively.
+
+
+## L-stats
+
+An overview of the untrimmed L-location, L-scale, L-skewness and L-kurtosis,
+of a bunch of popular univariate probability distributions, for which they
+exist (in closed form).
+
+
+
+
+ Name / scipy.stats |
+ Params |
+ \( \lmoment{1} \) |
+ \( \lmoment{2} \) |
+ \( \lratio{3} = \lmoment{3}/\lmoment{2} \) |
+ \( \lratio{4} = \lmoment{4}/\lmoment{2} \) |
+
+
+
+
+ Uniform
+
+
+ uniform
+ |
+ \( a < b \) |
+ \[ \frac{a + b}{2} \] |
+ \[ \frac{b - a}{6} \] |
+ \( 0 \) |
+ \( 0 \) |
+
+
+
+
+ Normal
+
+
+ norm
+ |
+
+ \( \mu \)
+ \( \sigma>0 \)
+ |
+ \( \mu \) |
+
+ \[ \frac{\sigma}{\sqrt \pi} \]
+ \( \approx 0.5642 \ \sigma \)
+ |
+ \( 0 \) |
+
+ \[ 30 \ \frac{\arctan{\sqrt 2}}{\pi} - 9 \]
+ \( \approx 0.1226 \)
+ |
+
+
+
+
+ Logistic
+
+
+ logistic(μ, s)
+ |
+
+ \( \mu \)
+ \( s>0 \)
+ |
+ \( \mu \) |
+ \( s \) |
+ \( 0 \) |
+
+ \[ 1 / 6 \]
+ \( = 0.16\overline{6}\dots \)
+ |
+
+
+
+
+ Laplace
+
+
+ laplace
+ |
+
+ \( \mu \)
+ \( b > 0 \)
+ |
+ \( \mu \) |
+
+ \[ \frac 3 4 b \]
+ \( = 0.75 \ b\)
+ |
+ \( 0 \) |
+
+ \[ \frac{17}{72} \]
+ \( \approx 0.2361 \)
+ |
+
+
+
+
+ Student's t
+
+ (2 d.f.)
+
+ t(2)
+ |
+ \( \nu = 2 \) |
+ \( 0 \) |
+
+ \[ \frac{\pi}{2 \sqrt{2}} \]
+ \( \approx 1.1107 \)
+ |
+ \( 0 \) |
+
+ \[ \frac 3 8 \]
+ \( = 0.375 \)
+ |
+
+
+
+
+ Student's t
+
+ (3 d.f.)
+
+ t(3)
+ |
+ \( \nu = 3 \) |
+ \( 0 \) |
+
+ \[ \frac{3 \sqrt 3}{\vphantom{\pi^2}2 \pi} \]
+ \( \approx 0.8270 \)
+ |
+ \( 0 \) |
+
+ \[ 1 - \frac{\vphantom{\sqrt 3}175}{24 \pi^2} \]
+ \( \approx 0.2612 \)
+ |
+
+
+
+
+ Student's t
+
+ (4 d.f.)
+
+ t(4)
+ |
+ \( \nu = 4 \) |
+ \( 0 \) |
+
+ \[ \frac{15}{64} \pi \]
+ \( \approx 0.7363 \)
+ |
+ \( 0 \) |
+
+ \[ \frac{111}{512} \]
+ \( \approx 0.2168 \)
+ |
+
+
+
+
+ Exponential
+
+
+ expon
+ |
+ \( \lambda>0 \) |
+ \[ \frac 1 \lambda \] |
+ \[ \frac{1}{2 \lambda} \] |
+
+ \[ \frac 1 3 \]
+ \( = 0.3\overline{3}\dots \)
+ |
+
+ \[ \frac 1 6 \]
+ \( = 0.16\overline{6}\dots \)
+ |
+
+
+
+
+ Rayleigh
+
+
+ rayleigh
+ |
+ \( \sigma > 0 \) |
+
+ \[
+ \frac 1 2
+ \sqrt{2 \pi} \
+ \sigma
+ \]
+ \( \approx 1.253 \ \sigma \)
+ |
+
+ \[
+ \frac {\sqrt 2 - 1}{2}
+ \sqrt{\pi} \
+ \sigma
+ \]
+ \( \approx 0.3671 \ \sigma \)
+ |
+
+ \[ 2 \frac{2 + \sqrt 2}{\sqrt 3} - \frac{4 + \sqrt{2}}{\sqrt 2} \]
+ \( \approx 0.1140 \)
+ |
+
+ \[ 10 \frac{2 + \sqrt 2}{\sqrt 3} - 3 \frac{5 + 3 \sqrt 2}{\sqrt 2} \]
+ \( \approx 0.1054 \)
+ |
+
+
+
+
+ Gumbel
+
+
+ gumbel_l
+ |
+
+ \( \mu \)
+ \( \beta > 0 \)
+ |
+
+ \[ \mu - \gamma_e \beta \]
+ \( \approx \mu - 0.5772 \ \beta \)
+ |
+
+ \[ \ln{2} \ \beta \]
+ \( \approx 0.6931 \ \beta \)
+ |
+
+ \[ 2 \log_2(3) - 3 \]
+ \( \approx -0.1699 \)
+ |
+
+ \[ 16 - 10 \log_2(3) \]
+ \( \approx 0.1504 \)
+ |
+
+
+
+
+ Weibull
+
+
+ invweibull
+ |
+
+ \( \alpha > 0 \)
+ \( \beta > 0 \)
+ \( \kappa := 1 / \alpha \)
+ |
+ \[ \Gamma(1 + \kappa) \ \beta \] |
+
+ \[ \Gamma(1 + \kappa) \ \boxcox{2}{-\kappa} \ \kappa \beta \]
+ |
+
+ \[
+ \hphantom{-}3
+ - 2 \frac
+ {\boxcox{3}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ \]
+ |
+
+ \[
+ 6
+ - 10 \frac
+ {\boxcox{3}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ + 5 \frac
+ {\boxcox{4}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ \]
+ |
+
+
+
+
+ GEV
+
+
+ genextreme
+ |
+
+ \( \kappa > -1 \)
+ \( \beta > 0 \)
+ |
+
+ \[ \frac{1 - \Gamma(1 + \kappa)}{\kappa} \ \beta \]
+ |
+
+ \[\Gamma(1 + \kappa) \ \boxcox{2}{-\kappa} \ \beta \]
+ |
+
+ \[
+ - 3
+ + 2 \frac
+ {\boxcox{3}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ \]
+ |
+
+ \[
+ 6
+ - 10 \frac
+ {\boxcox{3}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ + 5 \frac
+ {\boxcox{4}{-\kappa}}
+ {\boxcox{2}{-\kappa}}
+ \]
+ |
+
+
+
+
+ Pareto I
+
+
+ pareto
+ |
+
+ \( b \)
+ \( \sigma > 1 \)
+ |
+
+ \[ \frac{b}{b - 1} \ \sigma \]
+ |
+
+ \[ \frac{b}{b - 1} \frac{1}{2b - 1} \ \sigma \]
+ |
+
+ \[ \frac{b + 1}{3b - 1} \]
+ |
+
+ \[ \frac{b + 1}{3b - 1} \frac{2b + 1}{4b - 1} \]
+ |
+
+
+
+
+ Pareto II
+
+
+ lomax
+ |
+
+ \( b, \ \mu \)
+ \( \sigma > 1 \)
+ |
+
+ \[ \frac{1}{b - 1} \ \sigma + \mu \]
+ |
+
+ \[ \frac{b}{b - 1} \frac{1}{2b - 1} \ \sigma \]
+ |
+
+ \[ \frac{b + 1}{3b - 1} \]
+ |
+
+ \[ \frac{b + 1}{3b - 1} \frac{2b + 1}{4b - 1} \]
+ |
+
+
+
+
+ Pareto III
+
+
+ |
+
+ \( c, \ \mu \)
+ \( \sigma > 1 \)
+ |
+
+ \[ c \ \Gamma(c) \ \Gamma(1 - c) \ \sigma + \mu \]
+ |
+
+ \[ c^2 \ \Gamma(c) \ \Gamma(1 - c) \ \sigma \]
+ |
+
+ \[ c \vphantom{c^2 \Gamma(c)} \]
+ |
+
+ \[ \frac{1 + 5 c^2}{6} \]
+ |
+
+
+
+
+## TL-stats
+
+Collection of TL-location, -scale, -skewness, -kurtosis coefficients, with
+symmetric trimming of order 1, i.e. `trim=(1, 1)`.
+
+
+
+ Name /
scipy.stats |
+ Params |
+ \( \tlmoment{1}{1} \) |
+ \( \tlmoment{1}{2} \) |
+ \( \tlratio{1}{3} \) |
+ \( \tlratio{1}{4} \) |
+
+
+
+
+ Uniform
+
+
+ uniform
+ |
+ \( a < b \) |
+ \[ (a + b) / 2 \] |
+ \[ (a - b) / 10 \] |
+ \( 0 \) |
+ \( 0 \) |
+ |
+
+
+
+
+ Normal
+
+
+ norm
+ |
+
+ \( \mu \)
+ \( \sigma>0 \)
+ |
+ \( \mu \) |
+
+ \[
+ \left( 6 - 18 \ \frac{\arctan{\sqrt 2}}{\pi} \right)
+ \frac{\sigma}{\sqrt \pi}
+ \]
+ \( \approx 0.2970 \ \sigma \)
+ |
+ \( 0 \) |
+
+ \( \approx 0.06248 \)
+ |
+
+
+
+
+ Logistic
+
+
+ logistic(μ, s)
+ |
+ \( \mu \) \( s>0 \) |
+ \( \mu \) |
+ \( s / 2 \) |
+ \( 0 \) |
+
+ \[ 1 / 12 \]
+ \( = 0.083\overline{3} \dots \)
+ |
+
+
+
+
+ Laplace
+
+
+ laplace
+ |
+
+ \( \mu \)
+ \( b > 0 \)
+ |
+ \( \mu \) |
+
+ \[ 11b / 32 \]
+ \( = 0.34375 \ b\)
+ |
+ \( 0 \) |
+
+ \[ 3 / 22 \]
+ \( = 0.136\overline{36} \dots \)
+ |
+
+
+
+
+ Cauchy
+
+ /
+
+
+ Student's t
+
+ (1 d.f.)
+
+ cauchy
+ /
+ t(2)
+ |
+ \( \nu = 1 \) |
+ \( 0 \) |
+
+ \[ \frac{18 \vphantom{)}}{\pi^3 \vphantom{)}} \ \zeta(3) \]
+ \( \approx 0.6978 \ b \)
+ |
+ \( 0 \) |
+
+ \[ \frac{25}{6} - \frac{175}{4 \pi^2} \frac{\zeta(5)}{\zeta(3)} \]
+ \( \approx 0.3428 \)
+ |
+
+
+
+
+ Student's t
+
+ (2 d.f.)
+
+ t(2)
+ |
+ \( \nu = 2 \) |
+ \( 0 \) |
+
+ \[ \frac{3 \pi}{16 \sqrt{2}} \]
+ \( \approx 0.4165 \)
+ |
+ \( 0 \) |
+
+ \[ \frac{5}{32} \]
+ \( = 0.15625 \)
+ |
+
+
+
+
+ Student's t
+
+ (3 d.f.)
+
+ t(3)
+ |
+ \( \nu = 3 \) |
+ \( 0 \) |
+
+ \[ \frac{105 \sqrt 3}{16 \pi^3} \]
+ \( \approx 0.3666 \)
+ |
+ \( 0 \) |
+
+ \[ \frac{25}{6} - \frac{23 \ 023}{(24 \pi)^2} \]
+ \( \approx 0.1168 \)
+ |
+
+
+
+
+ Student's t
+
+ (4 d.f.)
+
+ t(4)
+ |
+ \( \nu = 4 \) |
+ \( 0 \) |
+
+ \[ \frac{3 \ 609 \ \pi}{32 \ 768} \]
+ \( \approx 0.3460 \)
+ |
+ \( 0 \) |
+
+ \[ \frac{164 \ 975}{1 \ 642 \ 496} \]
+ \( \approx 0.1004 \)
+ |
+
+
+
+
+ Exponential
+
+
+ expon
+ |
+ \( \lambda>0 \) |
+ \[ \frac{5}{6 \lambda} \] |
+ \[ \frac{1}{4 \lambda} \] |
+
+ \[ \frac 2 9 \]
+ \( = 0.2\overline{2}\dots \)
+ |
+
+ \[ \frac{1}{12} \]
+ \( = 0.083\overline{3}\dots \)
+ |
+
+
+
+
+ Rayleigh
+
+
+ rayleigh
+ |
+ \( \sigma > 0 \) |
+
+
+ \[
+ \frac 1 6
+ \bigl( 9 - 2 \sqrt 6 \bigr)
+ \sqrt \pi \
+ \sigma
+ \]
+ \( \approx 1.211 \sigma \)
+ |
+
+ \[
+ \frac 1 4
+ \bigl( 6 - 4 \sqrt 6 + 3 \sqrt 2 \bigr)
+ \sqrt \pi \
+ \sigma
+ \]
+ \( \approx 0.1970 \sigma \)
+ |
+
+
+ \[
+ \frac{10}{9}
+ - \frac{8}{9}
+ \frac
+ {3 \sqrt{10} + 5 \sqrt 6 - 15 \sqrt 2}
+ {6 - 4 \sqrt 6 + 3 \sqrt 2}
+ \]
+ \( \approx 0.06951 \)
+ |
+
+ \[
+ \frac 5 4
+ - \frac 7 6
+ \frac
+ {18 \sqrt{10} + 10 \sqrt 6 - 10 \sqrt 3 - 45 \sqrt 2}
+ {6 - 4 \sqrt 6 + 3 \sqrt 2}
+ \]
+ \( \approx 0.05422 \)
+ |
+
+
+
+
+ Gumbel
+
+
+ gumbel_l
+ |
+ \( \beta > 0 \) |
+
+ \[ \mu - \left( \gamma_e - 2 \ln{3} + 3 \ln{2} \right) \ \beta \]
+ \( \approx \mu -0.4594 \ \beta \)
+ |
+
+ \[ \left( 6 \ln{3} - 9 \ln{2} \right) \ \beta \]
+ \( \approx 0.3533 \ \beta \)
+ |
+
+ \[
+ \frac{10}{9}
+ \frac{2 \ln{5} + 4 \ln{3} - 11 \ln{2}}{2 \ln{3} - 3 \ln{2}}
+ \]
+ \( \approx -0.1065 \)
+ |
+
+ \[
+ \frac{5}{12}
+ \frac{42 \ln{5} + 6 \ln{3} - 107 \ln{2}}{2 \ln{3} - 3 \ln{2}}
+ \]
+ \( \approx 0.07541 \)
+ |
+
+
+
+
+
+ Weibull
+
+
+ weibull_min
+ |
+
+ \( \alpha > 0 \)
+ \( \beta > 0 \)
+ \( \kappa := 1 / \alpha \)
+ |
+
+ \[
+ \left(
+ \frac{3}{2^\kappa}
+ - \frac{2}{3^\kappa}
+ \right) \
+ \Gamma(\kappa) \ \kappa \beta
+ \]
+ |
+
+ \[
+ \left(
+ \frac{3}{2^\kappa}
+ - \frac{6}{3^\kappa}
+ + \frac{3}{4^\kappa}
+ \right) \
+ \Gamma(\kappa) \ \kappa \beta
+ \]
+ |
+
+ \[
+ \frac{10}{9}
+ - \frac{20}{9} \frac
+ {2^{-\kappa} - 2 \cdot 4^{-\kappa} + 5^{-\kappa}}
+ {2^{-\kappa} - 2 \cdot 3^{-\kappa} + 4^{-\kappa}}
+ \]
+ |
+
+ \[
+ \frac{5}{4}
+ - \frac{35}{6} \frac
+ {3^{-\kappa} - 3 \cdot 4^{-\kappa} + 3 \cdot 5^{-\kappa} - 6^{-\kappa}}
+ {2^{-\kappa} - 2 \cdot 3^{-\kappa} + 4^{-\kappa}}
+ \]
+ |
+
+
+
+
+
+
+## General L-moments
+
+Lmo derived a bunch of closed-form solutions for L-moments of several
+distributions. The proofs are not published, but it isn't difficult
+to validate their correctness, e.g. numerically, or symbolically with sympy or
+wolfram alpha / mathematica.
+
+### Kumaraswamy
+
+For [Kumaraswamy's distribution
+](https://wikipedia.org/wiki/Kumaraswamy_distribution) with parameters
+\( \alpha \in \mathbb{R}_{>0} \) and \( \beta \in \mathbb{R}_{>0} \),
+the general solution for the \( r \)th L-moment has been derived by
+[Jones (2009)](https://doi.org/10.1016/j.stamet.2008.04.001). This can be
+extended for the general trimmed L-moments.
+
+The distribution functions are for \( 0 \le x \le 1 \) defined as:
+
+\[
+\begin{align}
+f(x) &= \alpha \beta x^{\alpha-1}\left(1-x^\alpha\right)^{\beta-1} \\
+F(x) &= 1 - (1 - x^\alpha)^\beta \\
+x(F) &= \bigl(1 - (1 - F)^{1/\beta} \bigr)^{1/\alpha}
+\end{align}
+\]
+
+Its general \( r \)-th trimmed L-moment are:
+
+\[
+ \begin{equation}
+ \tlmoment{s,t}{r} =
+ \beta \
+ \frac{r + s + t}{r}
+ \sum_{k = t}^{r + s + t - 1}
+ (-1)^k
+ \binom{k + r - 1}{k - t}
+ \binom{r + s + t - 1}{k}
+ \B\bigl(1 + 1 / \alpha,\ \beta + k \beta \bigr)
+ \label{eq:lr_kum}
+ \end{equation}
+\]
+
+### Burr Type XII
+
+Just like Kumaraswamy's distribution, the
+[Burr distribution](https://wikipedia.org/wiki/Burr_distribution) has two
+shape parameters \( \alpha \) and \( \beta \), both restricted to the
+positive reals.
+
+The distribution functions are for \( x > 0 \) defined as:
+
+\[
+\begin{align}
+ f(x) &= \alpha \beta x^{\alpha-1} \left(1 + x^\alpha\right)^{-\beta-1} \\
+ F(x) &= 1 - (1 - x^\alpha)^{-\beta} \\
+ x(F) &= \bigl(1 - (1 - F)^{-1/\beta} \bigr)^{1/\alpha}
+\end{align}
+\]
+
+When \( \beta > 1 / \alpha \), the general \( r \)-th trimmed L-moment is:
+
+\[
+\begin{equation}
+ \tlmoment{s,t}{r} =
+ \beta \
+ \frac{r + s + t}{r}
+ \sum_{k = t}^{r + s + t - 1}
+ (-1)^k
+ \binom{k + r - 1}{k - t}
+ \binom{r + s + t - 1}{k}
+ \B\bigl(1 + 1 / \alpha,\ \beta + k \beta - 1 / \alpha \bigr)
+ \label{eq:lr_burr}
+\end{equation}
+\]
+
+Interestingly, this barely differs from that of Kumaraswamy's distribution
+\( \eqref{eq:lr_kum} \), even though the bounds of the distribution functions
+differ greatly.
+
+### Wakeby
+
+The [Wakeby distribution](https://wikipedia.org/wiki/Wakeby_distribution)
+is quantile-based, without closed-form expressions for the PDF and CDF, whose
+quantile function (PPF) is defined to be
+
+\[
+\begin{equation}
+ x(F) =
+ \frac \alpha \beta \bigl(1 - (1 - F)^\beta\bigr)
+ - \frac \gamma \delta \bigl(1 - (1 - F)^{-\delta}\bigr)
+ + \mu
+\end{equation}
+\]
+
+Each of the scale- \( \alpha, \gamma \) and shape parameters
+\( \beta, \delta \), are assumed to be positive real numbers.
+
+Lmo figured out that the L-moments with any order \( r \in \mathbb{N}_{\ge 1} \)
+and trim \( s, t \in \mathbb{N}^2_{\ge 1} \) can be expressed as
+
+
+\[
+\begin{equation}
+ \tlmoment{s,t}{r}
+ = \frac{\rfact{r + t}{s + 1}}{r} \left[
+ \alpha \frac
+ {\rfact{1 - \beta}{r - 2}}
+ {\rfact{1 + \beta + t}{r + s}}
+ + \gamma \frac
+ {\rfact{1 + \delta}{r - 2}}
+ {\rfact{1 - \delta + t}{r + s}}
+ \right]
+ + \underbrace{
+ \ffact{1}{r} \left(
+ \frac \alpha \beta - \frac \gamma \delta
+ \right)
+ }_{\text{will be } 0 \text{ if } r>1}
+\end{equation}
+\]
+
+### Generalized Lambda
+
+The [Tukey lambda distribution
+](https://wikipedia.org/wiki/Tukey_lambda_distribution) can be generalized
+to two scale parameters \( \alpha, \gamma \), and two shape parameters
+\( \beta, \delta \).
+
+Like the Wakeby distribution, the generalized lambda has no closed-form PDF
+or CDF. Instead, it is defined through its PPF:
+
+\[
+\begin{equation}
+ x(F)
+ = \alpha \boxcox{F}{\beta}
+ - \gamma \boxcox{-F}{\delta}
+\end{equation}
+\]
+
+Although its central product moments have no closed-form expression, the
+general trimmed L-moments can be compactly expressed as:
+
+\[
+\begin{equation}
+ \tlmoment{s,t}{r}
+ = \alpha
+ \frac
+ {\rfact{r + s}{t + 1} \ \ffact{\beta + s}{r + s - 1}}
+ {r \ \rfact{\beta}{r + s + t + 1}}
+ + (-1)^r \gamma \
+ \frac
+ {\rfact{r + t}{s + t} \ \ffact{\delta + t}{r + t - 1}}
+ {r \ \rfact{\delta}{r + s + t + 1}}
+ - \underbrace{
+ \ffact{1}{r} \left(
+ \frac \alpha \beta - \frac \gamma \delta
+ \right)
+ }_{\text{will be } 0 \text{ if } r>1}
+\end{equation}
+\]
+
+
+
+
+
+## Constants and special functions
+
+An overview of the (non-obvious) mathematical notation of special functions
+and constants.
+
+
+
+
+ Name |
+ Notation |
+ Definition |
+ Python |
+
+
+
+
+ Euler–Mascheroni constant
+
+ |
+ \[ \gamma_e \] |
+
+ \[
+ \begin{align*}
+ &= \int_1^\infty
+ \left(
+ \frac{1}{\lfloor x \rfloor} - \frac 1 x
+ \right) \
+ \mathrm{d} x \\
+ &\approx 0.5772 \vphantom{\frac 1 1}
+ \end{align*}
+ \]
+ |
+
+
+ numpy.euler_gamma
+
+ |
+
+
+
+
+
+ Factorial
+
+ |
+ \[ n! \vphantom{\prod_{k=1}^n k} \] |
+
+ \[
+ \begin{align*}
+ &= \prod_{k=1}^n k \\
+ &= \underbrace
+ {1 \times 2 \times \ldots \times n}
+ _{n{\text{ factors}}}
+ \end{align*}
+ \]
+ |
+
+
+ scipy.special.factorial
+
+ |
+
+
+
+
+ Falling factorial
+
+ |
+
+ \[ \ffact{x}{n} \] |
+
+ \[
+ \begin{align*}
+ &= \prod_{k=0}^{n-1} (x - k) \\
+ &= \underbrace
+ {x \ (x - 1) \ldots (x - n + 1)}
+ _{n{\text{ factors}}}
+ \end{align*}
+ \]
+ |
+ |
+
+
+
+
+ Rising factorial
+
+ |
+
+ \[ \rfact{x}{n} \] |
+
+ \[
+ \begin{align*}
+ &= \prod_{k=0}^{n-1} (x + k) \\
+ &= \underbrace
+ {x \ (x + 1) \ldots (x + n - 1)}
+ _{n{\text{ factors}}}
+ \end{align*}
+ \]
+ |
+
+
+ scipy.special.poch
+
+ |
+
+
+
+
+ Binomial coefficient
+
+ |
+ \[ \binom{n}{k} \] |
+
+ \[
+ \begin{align*}
+ &= \frac{n!}{k! \ (n - k)!} \\
+ &= \frac{\ffact{n}{k}}{k!}
+ \end{align*}
+ \]
+ |
+
+
+ scipy.special.comb
+
+ |
+
+
+
+
+
+
+ Gamma function
+
+ |
+ \[ \Gamma(z) \] |
+ \[ = \int_0^\infty t^{z-1} e^{-t} \, \mathrm{d} t \] |
+
+
+ scipy.special.gamma
+
+ |
+
+
+
+
+ Beta function
+
+ |
+ \[ \B(z_1,\ z_2) \] |
+ \[ = \frac{\Gamma(z_1) \Gamma(z_2)}{\Gamma(z_1 + z_2)} \] |
+
+
+ scipy.special.beta
+
+ |
+
+
+
+
+ Riemann zeta function
+
+ |
+ \[ \zeta(z) \vphantom{\sum_{n = 1}^{\infty}} \] |
+ \[ = \sum_{n = 1}^{\infty} n^{-z} \] |
+
+
+ scipy.special.zeta
+
+ |
+
+
+
+
+ Box–Cox transform
+
+ |
+ \[ \boxcox{z}{\lambda} \] |
+
+ \[
+ =
+ \begin{cases}
+ (z^\lambda - 1) / \lambda & \text{if } \lambda \neq 0 \\
+ \ln(z) & \text{if } \lambda = 0
+ \end{cases}
+ \]
+ |
+
+
+ scipy.special.boxcox
+
+ |
+
+
diff --git a/docs/scripts/mathjax.js b/docs/scripts/mathjax.js
index fd764a73..e68f5ee9 100644
--- a/docs/scripts/mathjax.js
+++ b/docs/scripts/mathjax.js
@@ -3,11 +3,34 @@ window.MathJax = {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
- processEnvironments: true
+ processEnvironments: true,
+ tags: "ams",
+ macros: {
+ // Expectation operator
+ E: "\\mathop{\\mathbb{E}}",
+ // Beta function
+ B: "\\mathop{\\mathrm{B}}",
+ // Box-Cox transformation
+ boxcox: ["\\rm \\mathcal{T}_{#2}\\left( #1 \\right)", 2],
+ // Falling and rising factorials
+ ffact: ["\\left( #1 \\right)^{-}_{#2}", 2],
+ rfact: ["\\left( #1 \\right)^{+}_{#2}", 2],
+ // L-moment (untrimmed)
+ lmoment: ["\\lambda_{#1}", 1],
+ // L-moment (trimmed)
+ tlmoment: ["\\lambda^{(#1)}_{#2}", 2],
+ // L-moment ratio (untrimmed)
+ lratio: ["\\tau_{#1}", 1],
+ // L-moment ratio (trimmed)
+ tlratio: ["\\tau^{(#1)}_{#2}", 2]
+ }
},
options: {
- ignoreHtmlClass: ".*|",
+ // ignoreHtmlClass: ".*",
processHtmlClass: "arithmatex"
+ },
+ chtml: {
+ displayAlign: "left"
}
};
diff --git a/docs/styles/theme.css b/docs/styles/theme.css
index a155cc13..48996855 100644
--- a/docs/styles/theme.css
+++ b/docs/styles/theme.css
@@ -42,4 +42,13 @@ a.autorefs-external::after {
}
a.autorefs-external:hover::after {
background-color: var(--md-accent-fg-color);
-}
\ No newline at end of file
+}
+
+td,
+th {
+ white-space: nowrap;
+}
+
+tr.row-double-top > td {
+ border-top: 0.15rem double var(--md-typeset-table-color) !important;
+}
diff --git a/mkdocs.yml b/mkdocs.yml
index a56073d6..76b2cdd1 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -10,6 +10,7 @@ strict: true
nav:
- Overview: index.md
+ - Distribution L-moments: distributions.md
- API Docs: api.md
- Contributing: contributing.md
@@ -17,6 +18,9 @@ theme:
name: material
logo: img/logo.png
favicon: img/favicon.ico
+ features:
+ - toc.follow
+ - toc.integrate
palette:
scheme: slate
primary: nose
@@ -61,6 +65,7 @@ markdown_extensions:
# https://python-markdown.github.io/extensions/
- admonition
- extra
+ - md_in_html
- sane_lists
- smarty