triangulr

Introduction

The `triangulr` package provides high-performance triangular distribution functions which includes density function, distribution function, quantile function, random variate generator, moment generating function, characteristic function, and expected shortfall function for the triangular distribution.

Installation

You can install the released version of `triangulr` from CRAN with:

``install.packages("triangulr")``

And the development version from GitHub with:

``````# install.packages("devtools")
devtools::install_github("irkaal/triangulr")``````

Example

These are basic examples of using the included functions:

``library(triangulr)``

Using the density function, `dtri()`.

``````x <- c(0.1, 0.5, 0.9)

dtri(x,
min = 0,
max = 1,
mode = 0.5)
#> [1] 0.4 2.0 0.4

dtri(x,
min = c(0, 0, 0),
max = 1,
mode = 0.5)
#> [1] 0.4 2.0 0.4``````

Using the distribution function, `ptri()`.

``````q <- c(0.1, 0.5, 0.9)

1 - ptri(q, lower_tail = FALSE)
#> [1] 0.02 0.50 0.98

ptri(q, lower_tail = TRUE)
#> [1] 0.02 0.50 0.98

ptri(q, log_p = TRUE)
#> [1] -3.91202301 -0.69314718 -0.02020271

log(ptri(q, log_p = FALSE))
#> [1] -3.91202301 -0.69314718 -0.02020271``````

Using the quantile function, `qtri()`.

``````p <- c(0.1, 0.5, 0.9)

qtri(1 - p, lower_tail = FALSE)
#> [1] 0.2236068 0.5000000 0.7763932

qtri(p, lower_tail = TRUE)
#> [1] 0.2236068 0.5000000 0.7763932

qtri(log(p), log_p = TRUE)
#> [1] 0.2236068 0.5000000 0.7763932

qtri(p, log_p = FALSE)
#> [1] 0.2236068 0.5000000 0.7763932``````

Using the random variate generator, `rtri()`.

``````n <- 3

set.seed(1)
rtri(n,
min = 0,
max = 1,
mode = 0.5)
#> [1] 0.3643547 0.4313490 0.5378601

set.seed(1)
rtri(n,
min = c(0, 0, 0),
max = 1,
mode = 0.5)
#> [1] 0.3643547 0.4313490 0.5378601``````

Using the moment generating function, `mgtri()`.

``````t <- c(1, 2, 3)

mgtri(t,
min = 0,
max = 1,
mode = 0.5)
#> [1] 1.683357 2.952492 5.387626

mgtri(t,
min = c(0, 0, 0),
max = 1,
mode = 0.5)
#> [1] 1.683357 2.952492 5.387626``````

Using the expected shortfall function, `estri()`.

``````p <- c(0.1, 0.5, 0.9)

estri(p,
min = 0,
max = 1,
mode = 0.5)
#> [1] 0.1490712 0.3333333 0.4610079

estri(p,
min = c(0, 0, 0),
max = 1,
mode = 0.5)
#> [1] 0.1490712 0.3333333 0.4610079``````