package owl
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=098c648b481469761f46854c9825d52c1afdd273307658489af9c3df4ab7624b
md5=164fbec1c8025895eea703b125dd35f3
doc/owl/Owl_maths/index.html
Module Owl_maths
Maths: fundamental and advanced mathematical functions.
This module contains some basic and advanced mathematical operations. If you cannot find some function in this module, try Stats module.
Please refer to Scipy documentation.
Basic functions
``atan2 y x`` returns :math:`\arctan(y/x)`, accounting for the sign of the arguments; this is the angle to the vector :math:`(x, y)` counting from the x-axis.
``expm1 x`` returns :math:`\exp(x) - 1` but more accurate for :math:`x \sim 0`.
``log1p x`` returns :math:`\log (x + 1)` but more accurate for :math:`x \sim 0`. Inverse of ``expm1``.
``sigmoid x`` returns the logistic sigmoid function :math:`1 / (1 + \exp(-x))`.
``logsinh x`` returns :math:`\log(\sinh(x))` but handles large :math:`|x|`.
``logcosh x`` returns :math:`\log(\cosh(x))` but handles large :math:`|x|`.
Airy functions
Airy function ``airy x`` returns ``(Ai, Ai', Bi, Bi')`` evaluated at :math:`x`. ``Ai'`` is the derivative of ``Ai`` whilst ``Bi'`` is the derivative of ``Bi``.
Bessel functions
Elliptic functions
Jacobian Elliptic function ``ellipj u m`` returns ``(sn, cn, dn, phi)``.
FIXME. Complete elliptic integral of the first kind around :math:`m = 1`.
``ellipkinc phi m`` incomplete elliptic integral of the first kind.
``ellipeinc phi m`` incomplete elliptic integral of the second kind.
Gamma Functions
``gamma z`` returns the value of the Gamma function
.. math:: \Gamma(z) = \int_0^\infty x^z-1
e^
x
}
dx = (z - 1)! .
The gamma function is often referred to as the generalized factorial since :math:`z\ gamma(z) = \gamma(z+1)` and :math:`gamma(n+1) = n!` for natural number :math:`n`.
Beta functions
Beta function.
.. math:: \mathrmB
(a, b) = \frac\Gamma(a) \Gamma(b)
\Gamma(a+b)
Factorials
Logarithm of factorial function ``log_fact n`` calculates :math:`\log n!`.
Double factorial function ``doublefact n`` calculates :math:`n!! = n(n-2)(n-4)\dots 2` or :math:`\dots 1`
``permutation n k`` returns the number :math:`n!/(n-k)!` of ordered subsets * of length :math:`k`, taken from a set of :math:`n` elements.
``permutation_float`` is like ``permutation`` but deals with larger range.
``combination n k`` returns the number :math:`n!/(k!(n-k)!)` of subsets of k elements of a set of n elements. This is the binomial coefficient :math:`\binomn
k
`
``combination_float`` is like ``combination`` but can deal with a larger range.
``log_combination n k`` returns the logarithm of :math:`\binomn
k
`.
Error functions
Complementary error function, :math:`\int^\infty
_x \frac
\sqrt(2\pi)
\exp(-(1/2) y^2) dy`
Dawson & Fresnel integrals
Fresnel trigonometric integrals. ``fresnel x`` returns a tuple consisting of ``(Fresnel sin integral, Fresnel cos integral)``.
Struve functions
``struve v x`` returns the value of the Struve function of order :math:`v` at :math:`x`. The Struve function is defined as,
.. math:: H_v(x) = (z/2)^
+ 1} \sum_{n=0}^\infty \frac{(-1)^n (z/2)^{2n}}{\Gamma(n + \frac{3}{2}) \Gamma(n + v + \frac{3}{2})}, where :math:`\Gamma` is the gamma function. :math:`x` must be positive unless :math:`v` is an integer
Other special functions
Hyperbolic sine and cosine integrals, ``shichi x`` returns * :math:`(\mathrmshi
, \mathrmchi
)``.
Sine and cosine integrals, ``sici x`` returns :math:`(\mathrmsi
, \mathrmci
)`.
``zeta x q`` returns the Hurwitz zeta function :math:`\zeta(x, q)`, which reduces to the Riemann zeta function :math:`\zeta(x)` when :math:`q=1`.
Raw statistical functions
Binomial distribution cumulative distribution function.
``bdtr k n p`` calculates the sum of the terms :math:`0` through :math:`k` of the Binomial probability density.
.. math:: \mathrmdtr(k, n, p) = \sum_j=0
^k {n
\choosej
}
p^j (1-p)^n-j
Parameters: * ``k``: Number of successes. * ``n``: Number of events. * ``p``: Probability of success in a single event.
Returns: * Probability of :math:`k` or fewer successes in :math:`n` independent events with success probability :math:`p`.
Binomial distribution survival function.
``bdtrc k n p`` calculates the sum of the terms :math:`k + 1` through :math:`n` of the binomial probability density,
.. math:: \mathrmdtrc(k, n, p) = \sum_j=k+1
^n {n
\choosej
}
p^j (1-p)^n-j
Inverse function to ``bdtr`` with respect to :math:`p`.
Finds the event probability :math:`p` such that the sum of the terms 0 through :math:`k` of the binomial probability density is equal to the given cumulative probability :math:`y`.
Cumulative density function of the beta distribution.
``btdtr a b x`` returns the integral from 0 to :math:`x` of the beta probability density function,
.. math:: I = \int_0^x \frac\Gamma(a + b)
\Gamma(a)\Gamma(b)
t^a-1
(1-t)^-1\,dt
where :math:`\Gamma` is the gamma function.
Parameters: * ``a``: Shape parameter (:math:`a > 0`). * ``b``: Shape parameter (:math:`a > 0`). * ``x``: Upper limit of integration, in :math:`0, 1
`.
Returns: * Cumulative density function of the beta distribution with :math:`a` and :math:`b` at :math:`x`.
The :math:`p`-th quantile of the Beta distribution.
This function is the inverse of the beta cumulative distribution function, ``btdtr``, returning the value of :math:`x` for which :math:`\mathrmtdtr(a, b, x) = p`,
.. math:: p = \int_0^x \frac\Gamma(a + b)
\Gamma(a)\Gamma(b)
t^a-1
(1-t)^-1\,dt
where :math:`\Gamma` is the gamma function.
Parameters: * ``a``: Shape parameter (:math:`a > 0`). * ``b``: Shape parameter (:math:`a > 0`). * ``x``: Cumulative probability, in :math:`0, 1
`.
Returns: * The quantile corresponding to :math:`p`.
Helper functions
``is_inf x`` returns ``true`` exactly if ``x`` is ``infinity`` or ``neg_infinity``.
``is_pow2 x`` return ``true`` exactly if ``x`` is an integer power of 2, e.g. 32, 64, etc.
``same_sign x y`` returns ``true`` if ``x`` and ``y`` have the same sign, otherwise it returns ``false``. Positive and negative zeros are special cases and always returns ``true``.
``is_simplex x`` checks whether the vector :math:`x` lies on a simplex. In other words, :math:`\sum_i^K x_i = 1` and :math:`x_i \ge 0, \forall i \in 1,K
`, where :math:`K` is the dimension of :math:`x`.
``fermat_fact x`` performs Fermat factorisation over ``x``, i.e. into two roughly equal factors. ``x`` must be an odd number.
``nextafter from to`` returns the next representable double precision value of ``from`` in the direction of ``to``. If ``from`` equals ``to``, this value is returned.