Skip to content
* 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`.