* aGrUM
* Adding new class `gum::InfomationTheory` that regroups every information theory concepts (entropies, conditional entropies and mutual information, ...) with only one inference, which allows also conditioned information theory concepts.
* Adding `gum::Potential::expectedValue()`
* Adding the alternative *fast* syntax for NumericalDiscreteVariable : `{1.5:3.5:3}` meaning from 1.5 to 3.5 in 3 steps.
* Updating `GraphicalModel::exists(const std::string&)` : return false instead of throwing an exception.
* Adding `gum::graphicalModels::variables()` and a new alias for `gum::VariableSet`.
* Fixing a bug in `gum::ShaferShenoyInference` for joint posterior when some nodes in the target received hard evidence.
* Improving error message w.r.t `gum::*::jointPosterior`.
* Adding mingw as a target for CI.
* Fixing dangling pointers in testsuite, only detected by MSVC.
* Optimized `gum::PDAG::cSeparation`
* Renaming `gum::Set::isProper{Sub|Super}Set` to `gum::Set::isStrict{Sub|Super}Set`.
* pyAgrum
* swig>4.1 is now needed.
* Enabling installation with poetry (thanks to Lorenzo Conti)
* Adding new class `pyAgrum.InfomationTheory` that regroups every information theory concepts (entropies, conditional entropies and mutual information, ...) with only one inference, which allows also conditioned information theory concepts.
* Adding `pyAgrum.Potential.expectedValue()`.
* Restructuring a bit the sphinx documentation.
* Down-exporting the read-only API for every types of discrete Variable to `pyAgrum.DiscreteVariable`. (see `VariablesTestSuite.testExportDerivedReadOnlyAPIforDiscreteVariable`)
* Updating notebooks to the new down-exported read-only API of `pyAgrum.DiscreteVariable`.
* Adding the alternative *fast* syntax for NumericalDiscreteVariable : `{1.5:3.5:3}` meaning from 1.5 to 3.5 in 3 steps.
* Updating docs for new *fast* syntax.
* Updating `GraphicalModel::exists(const std::string&)` : return false instead of throw an exception.
* Initiating a new notebook about the interaction with ipywidget
* Optimized and correctly wrapped `gum::PDAG::cSeparation` (thanks to Kenneth Lee).
* New functions `pyAgrum.lib.explain.nestedMarkovBlankets` and `pyAgrum.lib.explain.nestedMarkovBlanketsNames`.