The OpenD Programming Language

categoricalLPMF

Computes the Categorical log probability mass function (LPMF).

  1. elementType!(Slice!(Iterator, 1, kind)) categoricalLPMF(size_t x, Slice!(Iterator, 1, kind) p)
  2. T categoricalLPMF(size_t x, T[] p)
    @safe pure nothrow @nogc
    T
    categoricalLPMF
    (
    T
    )
    (
    const size_t x
    ,
    scope const T[] p...
    )
    if (
    isFloatingPoint!T
    )

Parameters

x size_t

value to evaluate LPMF

p T[]

slice containing the probability associated with the Categorical Distribution

Examples

import mir.math.common: log;
import mir.ndslice.slice: sliced;
import mir.test: shouldApprox;

static immutable x = [0.1, 0.5, 0.4];
auto p = x.sliced;

0.categoricalLPMF(p).shouldApprox == log(0.1);
1.categoricalLPMF(p).shouldApprox == log(0.5);
2.categoricalLPMF(p).shouldApprox == log(0.4);

Can also use dynamic array

import mir.math.common: log;
import mir.test: shouldApprox;

double[] p = [0.1, 0.5, 0.4];

0.categoricalLPMF(p).shouldApprox == log(0.1);
1.categoricalLPMF(p).shouldApprox == log(0.5);
2.categoricalLPMF(p).shouldApprox == log(0.4);

See Also

Meta