package owl

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Mathematics module

This module contains some basic and advanced mathematical operations. If you cannot find some function in this module, try Stats module.

Please refer to GSL documentation using following linke for details: https://www.gnu.org/software/gsl/manual

Basic math functions
val abs : float -> float
val neg : float -> float
val reci : float -> float
val floor : float -> float
val ceil : float -> float
val round : float -> float
val trunc : float -> float
val sqrt : float -> float
val pow : float -> float -> float
val exp : float -> float
val expm1 : float -> float
val exp_mult : float -> float -> float
val exprel : float -> float
val log : float -> float
val log1p : float -> float
val log_abs : float -> float
val log2 : float -> float
val log10 : float -> float
val logN : float -> float -> float
val sigmoid : float -> float
val signum : float -> float
val softsign : float -> float
val softplus : float -> float
val relu : float -> float
Trigonometric and hyperbolic functions
val sin : float -> float
val cos : float -> float
val tan : float -> float
val cot : float -> float
val sec : float -> float
val csc : float -> float
val asin : float -> float
val acos : float -> float
val atan : float -> float
val acot : float -> float
val asec : float -> float
val acsc : float -> float
val sinh : float -> float
val cosh : float -> float
val tanh : float -> float
val coth : float -> float
val sech : float -> float
val csch : float -> float
val asinh : float -> float
val acosh : float -> float
val atanh : float -> float
val acoth : float -> float
val asech : float -> float
val acsch : float -> float
val sinc : float -> float
val lnsinh : float -> float
val lncosh : float -> float
val hypot : float -> float -> float
val rect_of_polar : r:float -> theta:float -> float * float
val polar_of_rect : x:float -> y:float -> float * float
val angle_restrict_symm : float -> float
val angle_restrict_pos : float -> float
Airy functions and derivatives
val airy_Ai : float -> float
val airy_Bi : float -> float
val airy_Ai_scaled : float -> float
val airy_Bi_scaled : float -> float
val airy_Ai_deriv : float -> float
val airy_Bi_deriv : float -> float
val airy_zero_Ai : int -> float
val airy_zero_Bi : int -> float
Regular Cylindrical Bessel Functions
val bessel_J0 : float -> float
val bessel_J1 : float -> float
val bessel_Jn : int -> float -> float
val bessel_Jn_array : int -> int -> float -> float array
Irregular Cylindrical Bessel Functions
val bessel_Y0 : float -> float
val bessel_Y1 : float -> float
val bessel_Yn : int -> float -> float
val bessel_Yn_array : int -> int -> float -> float array
Regular Modified Cylindrical Bessel Functions
val bessel_I0 : float -> float
val bessel_I1 : float -> float
val bessel_In : int -> float -> float
val bessel_In_array : int -> int -> float -> float array
val bessel_I0_scaled : float -> float
val bessel_I1_scaled : float -> float
val bessel_In_scaled : int -> float -> float
val bessel_In_scaled_array : int -> int -> float -> float array
Irregular Modified Cylindrical Bessel Functions
val bessel_K0 : float -> float
val bessel_K1 : float -> float
val bessel_Kn : int -> float -> float
val bessel_Kn_array : int -> int -> float -> float array
val bessel_K0_scaled : float -> float
val bessel_K1_scaled : float -> float
val bessel_Kn_scaled : int -> float -> float
val bessel_Kn_scaled_array : int -> int -> float -> float array
Regular Spherical Bessel Functions
val bessel_j0 : float -> float
val bessel_j1 : float -> float
val bessel_j2 : float -> float
val bessel_jl : int -> float -> float
val bessel_jl_array : int -> float -> float array
val bessel_jl_steed_array : int -> float -> float array
Irregular Spherical Bessel Functions
val bessel_y0 : float -> float
val bessel_y1 : float -> float
val bessel_y2 : float -> float
val bessel_yl : int -> float -> float
val bessel_yl_array : int -> float -> float array
Regular Modified Spherical Bessel Functions
val bessel_i0_scaled : float -> float
val bessel_i1_scaled : float -> float
val bessel_il_scaled : int -> float -> float
val bessel_il_array_scaled : int -> float -> float array
Irregular Modified Spherical Bessel Functions
val bessel_k0_scaled : float -> float
val bessel_k1_scaled : float -> float
val bessel_kl_scaled : int -> float -> float
val bessel_kl_array_scaled : int -> float -> float array
Regular Bessel Function - Fractional Order
val bessel_Jnu : float -> float -> float
Irregular Bessel Functions - Fractional Order
val bessel_Ynu : float -> float -> float
Regular Modified Bessel Functions - Fractional Order
val bessel_Inu : float -> float -> float
val bessel_Inu_scaled : float -> float -> float
Irregular Modified Bessel Functions - Fractional Order
val bessel_Knu : float -> float -> float
val bessel_lnKnu : float -> float -> float
val bessel_Knu_scaled : float -> float -> float
Zeros of Regular Bessel Functions
val bessel_zero_J0 : int -> float
val bessel_zero_J1 : int -> float
val bessel_zero_Jnu : float -> int -> float
Clausen Functions
val clausen : float -> float
Dawson Function
val dawson : float -> float
Debye Functions
val debye_1 : float -> float
val debye_2 : float -> float
val debye_3 : float -> float
val debye_4 : float -> float
val debye_5 : float -> float
val debye_6 : float -> float
Dilogarithm
val dilog : float -> float
Elliptic Integrals
val ellint_Kcomp : float -> float
val ellint_Ecomp : float -> float
val ellint_Pcomp : float -> float -> float
val ellint_Dcomp : float -> float
Elliptic Integrals - Legendre Form of Complete Elliptic Integrals
Elliptic Integrals - Legendre Form of Incomplete Elliptic Integrals
val ellint_F : float -> float -> float
val ellint_E : float -> float -> float
val ellint_P : float -> float -> float -> float
val ellint_D : float -> float -> float
Elliptic Integrals - Carlson Forms of Incomplete Elliptic Integrals
val ellint_RC : float -> float -> float
val ellint_RD : float -> float -> float -> float
val ellint_RF : float -> float -> float -> float
val ellint_RJ : float -> float -> float -> float -> float
Exponential Integrals
val expint_E1 : float -> float
val expint_E2 : float -> float
val expint_Ei : float -> float
val expint_E1_scaled : float -> float
val expint_E2_scaled : float -> float
val expint_Ei_scaled : float -> float
val expint_3 : float -> float
val shi : float -> float
val chi : float -> float
val si : float -> float
val ci : float -> float
val atanint : float -> float
Fermi-Dirac Function
val fermi_dirac_m1 : float -> float
val fermi_dirac_0 : float -> float
val fermi_dirac_1 : float -> float
val fermi_dirac_2 : float -> float
val fermi_dirac_int : int -> float -> float
val fermi_dirac_mhalf : float -> float
val fermi_dirac_half : float -> float
val fermi_dirac_3half : float -> float
val fermi_dirac_inc_0 : float -> float -> float
Gamma Functions
val gamma : float -> float
val lngamma : float -> float
val gammastar : float -> float
val gammainv : float -> float
Incomplete Gamma Functions
val gamma_inc : float -> float -> float
val gamma_inc_Q : float -> float -> float
val gamma_inc_P : float -> float -> float
Factorials
val factorial : int -> float
val double_factorial : int -> float
val ln_factorial : int -> float
val ln_double_factorial : int -> float
val taylorcoeff : int -> float -> float
val permutation : int -> int -> int

permutation n k return the number of permutations of n things taken k at a time.

val combination : int -> int -> int

combination n k return the number of combination of n things taken k at a time.

val combination_float : int -> int -> float

combination_float n k return the number of combination of n things taken k at a time. This function can handle the result in a much larger range from [-.max_float, max_float] comparing to combination n k.

val ln_combination : int -> int -> float

ln_combination n k return the logarithm of the number of combination of n things taken k at a time.

val combination_iterator : int -> int -> unit -> int array

combination_iterator n k returns an iterator so that you can iterate all the possible combinations of taking k elements from a set of n of elements.

val permutation_iterator : int -> unit -> int array

permutation_iterator n returns an iterator so that you can iterate all the possible combinations of a set of n of elements.

Pochhammer Symbol
val poch : float -> float -> float
val lnpoch : float -> float -> float
val pochrel : float -> float -> float
Beta functions
val betaf : float -> float -> float
val lnbeta : float -> float -> float
val beta_inc : float -> float -> float -> float
Laguerre Functions
val laguerre_1 : float -> float -> float
val laguerre_2 : float -> float -> float
val laguerre_3 : float -> float -> float
val laguerre_n : int -> float -> float -> float
Lambert W Functions
val lambert_w0 : float -> float
val lambert_w1 : float -> float
Legendre Functions and Spherical Harmonics
val legendre_P1 : float -> float
val legendre_P2 : float -> float
val legendre_P3 : float -> float
val legendre_Pl : int -> float -> float
val legendre_Pl_array : int -> float -> float array
val legendre_Q0 : float -> float
val legendre_Q1 : float -> float
val legendre_Ql : int -> float -> float
Psi (Digamma) Function
val psi : float -> float
val psi_int : int -> float
val psi_1 : float -> float
val psi_1piy : float -> float
val psi_1_pint : int -> float
val psi_n : int -> float -> float
Synchrotron Functions
val synchrotron_1 : float -> float
val synchrotron_2 : float -> float
Transport Functions
val transport_2 : float -> float
val transport_3 : float -> float
val transport_4 : float -> float
val transport_5 : float -> float
Zeta Functions
val zeta : float -> float
val zeta_int : int -> float
val hzeta : float -> float -> float
val eta : float -> float
val eta_int : int -> float
Some constants
val e : float
val euler : float
val log2e : float
val log10e : float
val sqrt1_2 : float
val sqrt2 : float
val sqrt3 : float
val sqrtpi : float
val pi : float
val pi_2 : float
val pi_4 : float
val i_1_pi : float
val ln10 : float
val ln2 : float
val lnpi : float