packages feed

symplectic-chp-0.1.0.1: symplectic-chp.cabal

cabal-version:      3.0
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'symplectic-chp' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               symplectic-chp

-- Tested GHC versions
-- GHC 9.2 has compatibility issues with stim-parser dependency
tested-with:        GHC == 9.4.8
                  , GHC == 9.6.7
                  , GHC == 9.8.4
                  , GHC == 9.10.1
                  , GHC == 9.12.2

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            0.1.0.1

-- A short (one-line) description of the package.
synopsis:           CHP Clifford simulator using symplectic geometry

-- A longer description of the package.
description:        A Haskell implementation of the CHP Clifford simulator through the lens of symplectic geometry. Includes a library for programmatic circuit construction and a command-line tool for simulating STIM circuit files.

-- The license under which the package is released.
license:            MIT

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             overshiki

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         le.niu@hotmail.com

-- A copyright notice.
copyright:          2026 overshiki

-- Category for Hackage
category:           Physics, Quantum Computing, Math

-- Homepage and bug tracker
homepage:           https://github.com/overshiki/symplectic-chp
bug-reports:        https://github.com/overshiki/symplectic-chp/issues

-- Build information
build-type:         Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:    CHANGELOG.md, README.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
extra-source-files: data/stim-circuits/*.stim,
                    data/stim-circuits/*.expected,
                    data/stim-circuits/*.derive.md

source-repository head
    type:     git
    location: https://github.com/overshiki/symplectic-chp

common warnings
    ghc-options: -Wall

common test-settings
  import:           warnings
  default-language: GHC2021
  ghc-options:
    -O0
    -threaded
    -rtsopts

library 
    import:           warnings
    exposed-modules:
        SymplecticCHP
        SymplecticCHP.BitVec
        SymplecticCHP.LargeTableau
    other-modules:
    build-depends:
        , base                >= 4.17    && < 4.22
        , vector              >= 0.12    && < 0.14
        , vector-sized        >= 1.5     && < 1.7
        , finite-typelits     >= 0.1     && < 0.3
        , primitive           >= 0.7     && < 0.10
        , random              >= 1.2     && < 1.3
        , mtl                 >= 2.2     && < 2.4
        , transformers        >= 0.5     && < 0.7
        , deepseq             >= 1.4     && < 1.6
    hs-source-dirs:     src
    default-language:   GHC2021

test-suite symplectic-chp-test
    import:           test-settings
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test, app
    main-is:          Spec.hs
    other-modules:
        Test.TableauSpec
        Test.GatesSpec
        Test.MeasurementSpec
        Test.UtilsSpec
        Test.Examples
        Test.Arbitrary
        Test.StimCircuitSpec
        CHPCircuit
        CLI
        Simulator
        StimToCHP
    build-depends:
        , symplectic-chp
        , base                >= 4.17    && < 4.22
        , hspec               >= 2.10    && < 2.12
        , hspec-discover      >= 2.10    && < 2.12
        , QuickCheck          >= 2.14    && < 2.16
        , vector              >= 0.12    && < 0.14
        , vector-sized        >= 1.5     && < 1.7
        , finite-typelits     >= 0.1     && < 0.3
        , random              >= 1.2     && < 1.3
        , filepath            >= 1.4     && < 1.6
        , directory           >= 1.3     && < 1.4
        , containers          >= 0.6     && < 0.8
        , stim-parser         >= 0.1     && < 0.3
    build-tool-depends:
        hspec-discover:hspec-discover  >= 2.10 && < 2.12
    default-language: GHC2021

executable symplectic-chp
    -- Import common warning flags.
    import:           warnings

    -- .hs or .lhs file containing the Main module.
    main-is:          Main.hs

    -- Modules included in this executable, other than Main.
    other-modules:
        CHPCircuit
        CLI
        Simulator
        StimToCHP

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- Other library packages from which modules are imported.
    build-depends:
          , base                >= 4.17    && < 4.22
          , stim-parser         >= 0.1     && < 0.3
          , containers          >= 0.6     && < 0.8
          , symplectic-chp
          , random              >= 1.2     && < 1.3

    -- Directories containing source files.
    hs-source-dirs:   app

    -- Base language which the package is written in.
    default-language: GHC2021

executable verify-large-tableau
    import:           warnings
    main-is:          VerifyLargeTableau.hs
    build-depends:
          , base                >= 4.17    && < 4.22
          , symplectic-chp
          , vector              >= 0.12    && < 0.14
          , random              >= 1.2     && < 1.3
          , time                >= 1.11    && < 1.14
    hs-source-dirs:   app
    default-language: GHC2021