Module OCamlR_math

Access to the R math library.

Utilities

val pow : float -> float -> float

pow x y is the exponentiation of base x and power y.

val pow_di : float -> int -> float

pow x n is the exponentiation of base x and integer power n.

Random number generators

val norm_rand : unit -> float

Random variates from the standard normal distribution.

val unif_rand : unit -> float

Random variates from the uniform distribution, using * Marsaglia MultiCarry methodology for random number generation.

val exp_rand : unit -> float

Random variates from the standard exponential distribution.

Normal distribution

val dnorm : ?⁠mean:float -> ?⁠sd:float -> ?⁠log:bool -> float -> float

dnorm ~mean:mu ~sd:sigma ~log:give_log x computes the density of the normal distribution.

parameter mean

Mean of the normal distribution.

parameter sd

Standard deviation of the normal distribution.

parameter log

If true, returns the logarithm of the density.

val pnorm : ?⁠mean:float -> ?⁠sd:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qnorm : ?⁠mean:float -> ?⁠sd:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val rnorm : ?⁠mean:float -> ?⁠sd:float -> unit -> float

Uniform distribution

val dunif : ?⁠min:float -> ?⁠max:float -> ?⁠log:bool -> float -> float
val punif : ?⁠min:float -> ?⁠max:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qunif : ?⁠min:float -> ?⁠max:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val runif : ?⁠min:float -> ?⁠max:float -> unit -> float

Gamma distribution

val dgamma : ?⁠scale:float -> ?⁠log:bool -> shape:float -> float -> float
val pgamma : ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> shape:float -> float -> float
val qgamma : ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> shape:float -> float -> float
val rgamma : ?⁠scale:float -> float -> float
val logspace_add : float -> float -> float
val logspace_sub : float -> float -> float

Beta distribution

val dbeta : ?⁠ncp:float -> ?⁠log:bool -> a:float -> b:float -> float -> float
val pbeta : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> a:float -> b:float -> float -> float
val qbeta : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> a:float -> b:float -> float -> float
val rbeta : a:float -> b:float -> float

Lognormal distribution

val dlnorm : ?⁠meanlog:float -> ?⁠sdlog:float -> ?⁠log:bool -> float -> float
val plnorm : ?⁠meanlog:float -> ?⁠sdlog:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qlnorm : ?⁠meanlog:float -> ?⁠sdlog:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val rlnorm : ?⁠meanlog:float -> ?⁠sdlog:float -> unit -> float

Chi-squared distribution

val dchisq : ?⁠ncp:float -> ?⁠log:bool -> df:float -> float -> float
val pchisq : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df:float -> float -> float
val qchisq : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df:float -> float -> float
val rchisq : ?⁠ncp:float -> float -> float

F distribution

val df : ?⁠ncp:float -> ?⁠log:bool -> df1:float -> df2:float -> float -> float
val pf : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df1:float -> df2:float -> float -> float
val qf : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df1:float -> df2:float -> float -> float
val rf : df1:float -> df2:float -> float

Student t distribution

val dt : ?⁠ncp:float -> ?⁠log:bool -> df:float -> float -> float
val pt : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df:float -> float -> float
val qt : ?⁠ncp:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> df:float -> float -> float
val rt : float -> float

Binomial distribution

val dbinom : ?⁠log:bool -> size:float -> prob:float -> float -> float
val pbinom : ?⁠lower_tail:bool -> ?⁠logp:bool -> size:float -> prob:float -> float -> float
val qbinom : ?⁠lower_tail:bool -> ?⁠logp:bool -> size:float -> prob:float -> float -> float
val rbinom : size:float -> prob:float -> float

Cauchy distribution

val dcauchy : ?⁠location:float -> ?⁠scale:float -> ?⁠log:bool -> float -> float
val pcauchy : ?⁠location:float -> ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qcauchy : ?⁠location:float -> ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val rcauchy : ?⁠location:float -> ?⁠scale:float -> unit -> float

Exponential distribution

val dexp : ?⁠rate:float -> ?⁠log:bool -> float -> float
val pexp : ?⁠rate:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qexp : ?⁠rate:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val rexp : ?⁠rate:float -> unit -> float

Geometric distribution

val dgeom : ?⁠log:bool -> prob:float -> float -> float
val pgeom : ?⁠lower_tail:bool -> ?⁠logp:bool -> prob:float -> float -> float
val qgeom : ?⁠lower_tail:bool -> ?⁠logp:bool -> prob:float -> float -> float
val rgeom : float -> float

Hypergeometric distribution

val dhyper : ?⁠log:bool -> m:float -> n:float -> k:float -> float -> float
val phyper : ?⁠lower_tail:bool -> ?⁠logp:bool -> m:float -> n:float -> k:float -> float -> float
val qhyper : ?⁠lower_tail:bool -> ?⁠logp:bool -> m:float -> n:float -> k:float -> float -> float
val rhyper : m:float -> n:float -> k:float -> float

Negative binomial distribution

val dnbinom : ?⁠log:bool -> size:float -> prob:float -> float -> float
val pnbinom : ?⁠lower_tail:bool -> ?⁠logp:bool -> size:float -> prob:float -> float -> float
val qnbinom : ?⁠lower_tail:bool -> ?⁠logp:bool -> size:float -> prob:float -> float -> float
val rnbinom : size:float -> prob:float -> float

Poisson distribution

val dpois : ?⁠log:bool -> lambda:float -> float -> float
val ppois : ?⁠lower_tail:bool -> ?⁠logp:bool -> lambda:float -> float -> float
val qpois : ?⁠lower_tail:bool -> ?⁠logp:bool -> lambda:float -> float -> float
val rpois : float -> float

Weibull distribution

val dweibull : ?⁠scale:float -> ?⁠log:bool -> shape:float -> float -> float
val pweibull : ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> shape:float -> float -> float
val qweibull : ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> shape:float -> float -> float
val rweibull : ?⁠scale:float -> float -> float

Logistic distribution

val dlogis : ?⁠location:float -> ?⁠scale:float -> ?⁠log:bool -> float -> float
val plogis : ?⁠location:float -> ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val qlogis : ?⁠location:float -> ?⁠scale:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> float -> float
val rlogis : ?⁠location:float -> ?⁠scale:float -> unit -> float

Studentized Range distribution

val ptukey : ?⁠nranges:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> nmeans:float -> df:float -> float -> float
val qtukey : ?⁠nranges:float -> ?⁠lower_tail:bool -> ?⁠logp:bool -> nmeans:float -> df:float -> float -> float

Wilcoxon Rank Sum distribution

val dwilcox : ?⁠log:bool -> m:float -> n:float -> float -> float
val pwilcox : ?⁠lower_tail:bool -> ?⁠logp:bool -> m:float -> n:float -> float -> float
val qwilcox : ?⁠lower_tail:bool -> ?⁠logp:bool -> m:float -> n:float -> float -> float
val rwilcox : m:float -> n:float -> float

Wilcoxon Sign Rank distribution

val dsignrank : ?⁠log:bool -> n:float -> float -> float
val psignrank : ?⁠lower_tail:bool -> ?⁠logp:bool -> n:float -> float -> float
val qsignrank : ?⁠lower_tail:bool -> ?⁠logp:bool -> n:float -> float -> float
val rsignrank : float -> float
val gammafn : float -> float
val lgammafn : float -> float
val psigamma : ?⁠deriv:float -> float -> float
val digamma : float -> float
val trigamma : float -> float
val beta : a:float -> b:float -> float
val lbeta : a:float -> b:float -> float
val choose : n:float -> k:float -> float
val lchoose : n:float -> k:float -> float

Bessel functions

val bessel_i : ?⁠expon_scaled:bool -> nu:float -> float -> float
val bessel_k : ?⁠expon_scaled:bool -> nu:float -> float -> float
val bessel_j : x:float -> nu:float -> float
val bessel_y : x:float -> nu:float -> float

General support functions

val sign : float -> float
val ftrunc : float -> float
val fround : ?⁠digits:int -> float -> float
val fsign : ?⁠digits:int -> float -> float
val log1pmx : float -> float
val lgamma1p : float -> float