packages feed

dtmc-0.2.0.0: src/Dtmc.hs

{- |
Module      : Dtmc
Description : Orientation and module map for discrete-time Markov chains.

This package models time-homogeneous discrete-time Markov chains (DTMCs).
It supports two complementary representations:

* finite chains over a 'Dtmc.State.FiniteState' use
  'Dtmc.Transition.Matrix.TransitionMatrix' and may use dense
  'Dtmc.Distribution.Vector.DistributionVector' values;
* locally finite chains over unrestricted state types use
  'Dtmc.Transition.Kernel.TransitionKernel' and sparse
  'Dtmc.Distribution.Map.DistributionMap' values.

Start with these modules:

* "Dtmc.State" for finite named state types;
* "Dtmc.Distribution.Map" and "Dtmc.Distribution.Vector" for validated
  probability laws;
* "Dtmc.Transition.Kernel" and "Dtmc.Transition.Matrix" for transition
  models;
* "Dtmc.Dynamics" and "Dtmc.Simulation" for evolution and sampling.

Analysis is organised by mathematical subject:

* "Dtmc.Analysis.FiniteTime" for transition, joint, and conditional
  probabilities;
* "Dtmc.Analysis.HittingTime", "Dtmc.Analysis.ReturnTime", and
  "Dtmc.Analysis.VisitCount" for path-time and occupation quantities;
* "Dtmc.Analysis.Classification" for communication, recurrence, and
  periodicity;
* "Dtmc.Analysis.Absorption", "Dtmc.Analysis.Stationary", and
  "Dtmc.Analysis.Limiting" for finite-chain long-run behaviour.

The package deliberately has no broad facade of re-exports because several
analysis modules use the same concise names, such as @probability@ and
@expectation@, for their subject-specific operations. Import analysis modules
qualified.

No @hmatrix@ type appears anywhere in the public API: values are built from
and inspected as plain lists of weights. The package still uses @hmatrix@
internally and therefore requires a BLAS/LAPACK implementation when it is
built.
-}
module Dtmc () where