value to evaluate LPMF
slice containing the probability associated with the Categorical Distribution
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);
Computes the Categorical log probability mass function (LPMF).