Struct statrs::distribution::Triangular [] [src]

pub struct Triangular { /* fields omitted */ }

Implements the Triangular distribution

Examples

use statrs::distribution::{Triangular, Continuous};
use statrs::statistics::Mean;

let n = Triangular::new(0.0, 5.0, 2.5).unwrap();
assert_eq!(n.mean(), 7.5 / 3.0);
assert_eq!(n.pdf(2.5), 5.0 / 12.5);

Methods

impl Triangular
[src]

Constructs a new triangular distribution with a minimum of min, maximum of max, and a mode of mode.

Errors

Returns an error if min, max, or mode are NaN or ±INF. Returns an error if max < mode, mode < min, or max == min.

Examples

use statrs::distribution::Triangular;

let mut result = Triangular::new(0.0, 5.0, 2.5);
assert!(result.is_ok());

result = Triangular::new(2.5, 1.5, 0.0);
assert!(result.is_err());

Trait Implementations

impl Debug for Triangular
[src]

Formats the value using the given formatter.

impl Copy for Triangular
[src]

impl Clone for Triangular
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for Triangular
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Sample<f64> for Triangular
[src]

Generate a random sample from a triangular distribution distribution using r as the source of randomness. Refer here for implementation details

impl IndependentSample<f64> for Triangular
[src]

Generate a random independent sample from a triangular distribution distribution using r as the source of randomness. Refer here for implementation details

impl Distribution<f64> for Triangular
[src]

Generate a random sample from a triangular distribution using r as the source of randomness.

Examples

use rand::StdRng;
use statrs::distribution::{Triangular, Distribution};

let mut r = rand::StdRng::new().unwrap();
let n = Triangular::new(0.0, 5.0, 2.5).unwrap();
print!("{}", n.sample::<StdRng>(&mut r));

impl Univariate<f64, f64> for Triangular
[src]

Calculates the cumulative distribution function for the triangular distribution at x

Formula

if x <= min {
    0
} if min < x <= mode {
    (x - min)^2 / ((max - min) * (mode - min))
} else if mode < x < max {
    1 - (max - min)^2 / ((max - min) * (max - mode))
} else {
    1
}

impl Min<f64> for Triangular
[src]

Returns the minimum value in the domain of the triangular distribution representable by a double precision float

Remarks

The return value is the same min used to construct the distribution

impl Max<f64> for Triangular
[src]

Returns the maximum value in the domain of the triangular distribution representable by a double precision float

Remarks

The return value is the same max used to construct the distribution

impl Mean<f64> for Triangular
[src]

Returns the mean of the triangular distribution

Formula

(min + max + mode) / 3

impl Variance<f64> for Triangular
[src]

Returns the variance of the triangular distribution

Formula

(min^2 + max^2 + mode^2 - min * max - min * mode - max * mode) / 18

Returns the standard deviation of the triangular distribution

Formula

sqrt((min^2 + max^2 + mode^2 - min * max - min * mode - max * mode) / 18)

impl Entropy<f64> for Triangular
[src]

Returns the entropy of the triangular distribution

Formula

1 / 2 + ln((max - min) / 2)

impl Skewness<f64> for Triangular
[src]

Returns the skewness of the triangular distribution

Formula

(sqrt(2) * (min + max - 2 * mode) * (2 * min - max - mode) * (min - 2 * max + mode)) /
( 5 * (min^2 + max^2 + mode^2 - min * max - min * mode - max * mode)^(3 / 2))

impl Median<f64> for Triangular
[src]

Returns the median of the triangular distribution

Formula

if mode >= (min + max) / 2 {
    min + sqrt((max - min) * (mode - min) / 2)
} else {
    max - sqrt((max - min) * (max - mode) / 2)
}

impl Mode<f64> for Triangular
[src]

Returns the mode of the triangular distribution

Formula

mode

impl Continuous<f64, f64> for Triangular
[src]

Calculates the probability density function for the triangular distribution at x

Formula

if x < min {
    0
} else if min <= x <= mode {
    2 * (x - min) / ((max - min) * (mode - min))
} else if mode < x <= max {
    2 * (max - x) / ((max - min) * (max - mode))
} else {
    0
}

Calculates the log probability density function for the triangular distribution at x

Formula

ln( if x < min {
    0
} else if min <= x <= mode {
    2 * (x - min) / ((max - min) * (mode - min))
} else if mode < x <= max {
    2 * (max - x) / ((max - min) * (max - mode))
} else {
    0
} )