Thriving Thriving Python PY
โ†‘ 88 ?
Prodigy LKlinke/Prodigy

A tool that analyses probabilistic programs, allows for automatic invariance checking and handles inference all based on Generatingfunctionology.

HEALTH ? 95 / Healthy
// help wanted// hidden gem ?

// readme

prodigy: PRObability DIstributions via GeneratingfunctionologY

prodigy is a prototypical tool for the analysis of probabilistic non-negative integer programs with while-loops. It is based on (probability) generating functions.

It provides a command-line interface and a web GUI.

Contents

  1. Installation
  2. Basic Usage

Installation

With pip

Prodigy is on PyPI as prodigy-ppl (the command and the Python package are called prodigy):

pip install prodigy-ppl

This needs Python 3.11 or newer and contains the SymPy, SymEngine and the faster GiNaC engine (--engine ginac). The GiNaC engine comes from prodigy-ppl-ginac, whose wheels bundle GiNaC; pip installs it on Linux (x86_64, aarch64, glibc) and macOS with Python 3.11โ€“3.14. Elsewhere, the extra ginac builds it from source, which needs a C++17 compiler, CMake and GiNaC:

pip install "prodigy-ppl[ginac]"

With Docker

The image contains the command line and the web GUI with the SymPy, GiNaC and SymEngine engines, for amd64 and arm64 (tags: version, e.g. 3.1.0, minor version 3.1, and latest).โ€ฆ