Skip to content

v0.1.5

Compare
Choose a tag to compare
@matt-graham matt-graham released this 07 May 17:11

Minor release.

New features

  • Implementation of dynamic integration time (NUTS-like) samplers has been refactored, with new implementation including both existing multinomial, and a new slice sampling, variants, with the latter corresponding to the original NUTS algorithm. An option to enable extra subtree termination checks to create more robust no-U-turn checking (see stan-dev/stan#2800) has also been added, and enabled by default for the DynamicMultinomialHMC sampler.
  • When used with Numpy v1.17 or above, Mici will now by default use the new-style random number generators for per-chain RNGs, with the new objects supporting more robust production of independent parallel random streams.
  • Documentation of classes in mici.systems module is now much fuller.
  • An option to disable display of progress bars when sampling chains was added.
  • Display refreshes of progress bars rate limited to ~ 4 times per second to prevent the display updates becoming a bottleneck for very fast chains.
  • Steffensen's method fixed point solver made more robust.
  • Further matrix classes added to support low-rank update matrices and specialised matrix product classes, and matrix classes extended to be hashable to allow equality testing.
  • Improved robustness to linear-algebra errors during sampling, with NumPy / SciPy LinAlgError exceptions when attempting Cholesky decomposition of non (numerically) positive definite matrix now handled rather than halting sampling.

Bug fixes

  • Fixed bug in log determinant gradient implementation for triangular factored definite matrix classes.
  • Fixed bug when integrating Gaussian constrained system with large timestep due to prior incorrect assumption of all eigenvalues of matrix being positive.