Remove inheritance to QMCEngine in distributions
Hi everyone, After working on adding a method to sample integers with QMC (QMCEngine.integers), we noticed some issues with QMC distributions because we had defined them as QMCEngine. At the time, it was thought to make sense to have distributions as engines. But now that we are adding methods such as integers, it does not really apply to distributions. In the interface and tests, we are adding more switches now to go around the inheritance which is a sign that distributions should not be considered as engines. Instead, we could at some point consider a common class for QMC distributions. (Not the topic here.) Hence in https://github.com/scipy/scipy/pull/15946 <https://github.com/scipy/scipy/pull/15946> we propose to remove the inheritance to QMCEngine for the QMC distributions: MultinomialQMC and MultivariateNormalQMC. Doing so, we propose to make a backward incompatible change by not defining the 2 methods: fast_forward and reset. We think that this will have a very low impact because: (i) these classes are not very used (from a quick search on GitHub); (ii) the utility is very questionable to have on a distribution. Advanced users would still be able to do this by accessing self.engine.fast_forward and self.engine.reset. Please join the discussion on the PR. Thank you for your thoughts. Cheers, Pamphile
participants (1)
-
Pamphile Roy