Each PDF comes as a builder-model-sampler triplet of objects.
e.g. The abstract PDF base classes
For instance, the univariate Gaussian PDF classes
A variety of types of simple PDF are implemented:
The models are used to calculate densities, cumulative probabilities, gradients, etc.
Are kernel PDFs, ie representing a PDF by placing a kernel at every point in a sample. The builder includes a variety of algorithms taken from "Density Estimation" by B.W.Silverman (Pub. Chapman and Hall, 1986), including a recommended choice of kernel width and an implementation of the adaptive kernel estimate.
Examples of kernels available includepdf1d_mixture class. The pdf1d_mixture_builder uses the EM algorithm to estimate the parameters of the mixtures.