dfd

Discrete finite probability distribution monad and arrrow

OTHER License

Stars
1

Discrete finite probability distributions for Scala

Overview

The main goal of this library is to provide a data structure that can represent a probability distribution of (more or less) arbitrary objects. Desired data structure should have the following properties:

  • observability the whole distribution, i.e. having an ability to get probabilities not only by sampling;
  • ability of precise probability values (not only with Doubles);
  • unability to represent incorrect distributions (e.g. when sum of probabilities is not equal to one);
  • ability to combine computations which have distribution as a result;
  • purity, e.g. support of the purely functional fashion of programming;
  • representability as an effect (in the wide sense of effect in pure functional programming).

Some of these properties require us to consider only finite and discrete probability distributions.

Installation

TBD

Usage

TBD

Related projects

There are several similar projects (or parts of bigger projects) which have more or less the same goals but differing in taken decisions and implementation details. Here is a (not complete!) list of such:

Credits

This project was supported by and originally developed for the ductilejur project.