packages feed

dtmc-0.2.0.0: dtmc.cabal

cabal-version:      3.0
name:               dtmc
version:            0.2.0.0
synopsis:           Type-safe discrete-time Markov chains
description:
  Type-safe finite discrete-time Markov chains with matrix and kernel
  representations, plus locally finite countable-state kernels for exact
  finite-horizon analysis and simulation.
  The package provides validated probability laws, finite-time joint and
  conditional probabilities, hitting and return quantities, visit counts,
  communicating-class analysis, canonical decomposition, absorption,
  stationary distributions, and ordinary and cyclic limiting behaviour.
category:           Math, Probability
homepage:           https://github.com/kholmetskii/dtmc
bug-reports:        https://github.com/kholmetskii/dtmc/issues
license:            BSD-3-Clause
license-file:       LICENSE
author:             Arkadii Kholmetskii
maintainer:         Arkadii Kholmetskii <373321aa@gmail.com>
copyright:          2026 Arkadii Kholmetskii
build-type:         Simple
tested-with:
    GHC ==9.6.7
  , GHC ==9.8.4
  , GHC ==9.10.3
  , GHC ==9.12.4
  , GHC ==9.14.1
extra-doc-files:
    README.md
    CHANGELOG.md

common lang
  default-language: GHC2021

  default-extensions:
      DataKinds
    , RoleAnnotations
    , TypeFamilies

  ghc-options:
      -Wall
      -Wcompat
      -Wincomplete-uni-patterns
      -Wredundant-constraints

library
  import:           lang
  hs-source-dirs:   src

  exposed-modules:
      Dtmc
      Dtmc.Simplex
      Dtmc.State
      Dtmc.Distribution
      Dtmc.Distribution.Vector
      Dtmc.Distribution.Map
      Dtmc.Transition
      Dtmc.Transition.Matrix
      Dtmc.Transition.Kernel
      Dtmc.Simulation
      Dtmc.Dynamics
      Dtmc.Analysis.Event
      Dtmc.Analysis.FiniteTime
      Dtmc.Analysis.Expectation
      Dtmc.Analysis.Limiting
      Dtmc.Analysis.LinearSystem
      Dtmc.Analysis.HittingTime
      Dtmc.Analysis.ReturnTime
      Dtmc.Analysis.VisitCount
      Dtmc.Analysis.Absorption
      Dtmc.Analysis.Classification
      Dtmc.Analysis.Stationary

  other-modules:
      Dtmc.Distribution.Vector.Internal
      Dtmc.Distribution.Map.Internal
      Dtmc.Transition.Matrix.Internal
      Dtmc.Simplex.Internal
      Dtmc.Analysis.FiniteTime.Internal
      Dtmc.Analysis.Classification.Internal
      Dtmc.Analysis.LinearSystem.Internal
      Dtmc.Analysis.Initial.Internal
      Dtmc.Transition.Matrix.Internal.Graph
      Dtmc.Dynamics.Internal
      Dtmc.State.Internal

  build-depends:
      base >=4.18 && <5
    , array >=0.5.8 && <0.6
    , containers >=0.6.7 && <0.8
    , finite-typelits >=0.2.0.1 && <0.3
    , hmatrix >=0.20.2 && <0.21
    , mwc-random >=0.15.0.1 && <0.16
    , primitive >=0.9 && <0.10

test-suite spec
  import:           lang
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Spec.hs

  other-modules:
      Dtmc.Distribution.VectorSpec
      Dtmc.Distribution.MapSpec
      Dtmc.Distribution.InterfaceSpec
      Dtmc.StateSpec
      Dtmc.Transition.MatrixSpec
      Dtmc.SimulationSpec
      Dtmc.DynamicsSpec
      Dtmc.Analysis.EventSpec
      Dtmc.Analysis.FiniteTimeCanonicalSpec
      Dtmc.Analysis.HittingTimeCanonicalSpec
      Dtmc.Analysis.CanonicalDifferentialSpec
      Dtmc.Analysis.NamespaceCompileSpec
      Dtmc.Analysis.ProbabilityOracle
      Dtmc.Analysis.FiniteTimeSpec
      Dtmc.Analysis.AbsorptionSpec
      Dtmc.Analysis.ClassificationSpec
      Dtmc.Analysis.ReturnTimeCanonicalSpec
      Dtmc.Analysis.VisitCountCanonicalSpec
      Dtmc.Analysis.HittingTimeSpec
      Dtmc.Analysis.ReturnTimeSpec
      Dtmc.Analysis.VisitCountSpec
      Dtmc.Analysis.LimitingSpec
      Dtmc.Analysis.StationarySpec
      Dtmc.Analysis.TimeSpecSupport
      Dtmc.Transition.KernelSpec
      Dtmc.Transition.InterfaceSpec
      Dtmc.IntegrationSpec
      Dtmc.TestSupport

  build-depends:
      base
    , containers
    , dtmc
    , finite-typelits
    , hspec >=2.11.17 && <2.12
    , mwc-random
    , QuickCheck >=2.18 && <2.19

  build-tool-depends:
      hspec-discover:hspec-discover >=2.11.17 && <2.12

source-repository head
  type:             git
  location:         https://github.com/kholmetskii/dtmc.git

source-repository this
  type:             git
  location:         https://github.com/kholmetskii/dtmc.git
  tag:              v0.2.0.0