packages feed

dtmc-0.2.0.0: CHANGELOG.md

# Changelog

## 0.2.0.0

First Hackage release.

- Added validated dense and sparse probability distributions.
- Added type-safe finite transition matrices and locally finite transition
  kernels, with representation-independent finite-horizon evolution and
  simulation.
- Added finite-time joint and conditional probabilities.
- Added exact-time, bounded, eventual, competing, and expected hitting and
  return quantities.
- Added finite- and infinite-horizon visit-count analysis, including the
  occupation matrix.
- Added communicating-class, recurrence, transience, periodicity, and cyclic
  class analysis.
- Added canonical decomposition, fundamental matrices, and absorption
  probabilities and expectations.
- Added extremal stationary distributions for every recurrent class, ordinary
  limiting matrices, and cyclic subsequential limits.
- Added state-labelled and list-based construction and inspection. No
  `hmatrix` type appears in the public API.
- Changed the internal dense storage of `DistributionVector` and
  `TransitionMatrix` from statically sized values to ordinary `hmatrix`
  vectors and matrices. The public types remain state-indexed and abstract,
  and their smart constructors continue to validate dimensions against the
  finite state cardinality.
- Added `Dtmc.Distribution.Map.mapStates` for transforming sparse
  distributions, combining the weights of states that share a target.
- Added `Dtmc.Transition.Matrix.fromRows`, which builds a matrix from a grid
  of weights and reports shape mismatches as typed errors.
- Made GTH stationary-distribution normalisation robust when finite weights
  have a sum that overflows `Double`.
- Reduced dense transition-row lookup from quadratic to linear time and
  space.
- Made `Dtmc.Distribution.Vector.fromList` positional: it now takes one weight
  per state in canonical state order, so it is the exact inverse of `toList`,
  and reports a length mismatch through the new `DistributionVectorError`.
  Labelled construction, where duplicates combine and missing states default
  to zero, remains `Dtmc.Distribution.Map.fromList`.
- Supports GHC 9.6 through 9.14.
- Narrowed `Dtmc.Analysis.Classification` to the queries themselves. The
  `Classification` report and `classify` are no longer exported, and with them
  the `Of` suffixes that existed only to keep record fields from colliding
  with the standalone functions. `absorbingStates`, `chainPeriod` and
  `ergodic` are now functions on a matrix, and `communicatingClasses` returns
  `[CommClass state]`, carrying each class's period and closedness rather than
  its members alone.