Development

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

unreleased

Added

  • Bound computation functionalities

  • Extra optimization functionalities

  • Extra sampling functionalities

  • Redundant inequalities removal in Polytope

  • Equalities support

Fixed

Changed

Removed

0.2.1 - 2026-02-03

Added

  • optimization submodule for convex optimization via CvxpyOptimizer

  • Polytope.inner_box computation

Changed

  • Polynomial.inner_box is now a property (rather than a method)

Fixed

  • Major bug in rejection sampling

0.2.0 - 2025-12-02

Added

  • sampling submodule for convex sampling via RejectionSampler

  • optimization submodule for convex optimization via ScipyOptimizer

  • Polytope.compute_outer_box() functionality

  • nonconvex solvers.WMSampling sampler

Changed

  • RejectionIntegrator is now based on the new sampling.RejectionSampler, extra optional integration parameter.

  • Polynomial and Polytope now store the pysmt environment rather than the FormulaManager

  • Polytope stores the list of pysmt variables rather than its length

0.1.1 - 2025-10-30

Added

  • Inequality.to_numpy()

Fixed

  • Multiple bug fixes related to integration polynomial manipulations

  • Multiple fixes in the unit tests

Changed

  • Polytope.to_numpy() now returns an additional numpy array with strictness information

  • AxisAlignedWrapper now works with arbitrary polynomial integrands

0.1.0 - 2025-09-25

Added

  • First pre-release version.

Contributing

Feedback, pull requests, active development.. any form of contribution is much welcome!

If you want to get in touch, contact Paolo Morettin (paolo.morettin@unitn.it).

Setup

We use uv for the development of this library.

To set up the environment:

uv sync
uv run wmpy-install --all -y

To build the documentation:

cd docs
uv run make html

Before pushing to remote

  • Run the type checker: uv run mypy

  • Run the tests: uv run pytest

  • Fix any resulting error

  • Make sure to reformat the source code: uv run black .

Conventions

We adopt the following conventions

Acknowledgements

Funded by the European Union.

Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or The European Research Executive Agency. Neither the European Union nor the granting authority can be held responsible for them. GA n°101110960 “Probabilistic Formal Verification for Provably Trustworthy AI - PFV-4-PTAI”