packages feed

ppad-fixed-0.1.0: ppad-fixed.cabal

cabal-version:      3.0
name:               ppad-fixed
version:            0.1.0
synopsis:           Large fixed-width words and constant-time arithmetic.
license:            MIT
license-file:       LICENSE
author:             Jared Tobin
maintainer:         jared@ppad.tech
category:           Data
build-type:         Simple
tested-with:        GHC == { 9.8.1 }
extra-doc-files:    CHANGELOG
description:
  A pure high-performance implementation of large fixed-width integers
  and supporting constant-time operations, including Montgomery-form
  arithmetic on domains related to the the elliptic curve secp256k1.

flag llvm
  description: Use GHC's LLVM backend.
  default:     False
  manual:      True

source-repository head
  type:     git
  location: git.ppad.tech/fixed.git

library
  default-language: Haskell2010
  hs-source-dirs:   lib
  ghc-options:
      -Wall
  if flag(llvm)
    ghc-options: -fllvm -O2
  exposed-modules:
      Data.Choice
    , Data.Word.Limb
    , Data.Word.Wide
    , Data.Word.Wider
    , Numeric.Montgomery.Secp256k1.Curve
    , Numeric.Montgomery.Secp256k1.Scalar
  build-depends:
      base >= 4.9 && < 5
    , deepseq >= 1.5 && < 1.6

test-suite fixed-tests
  type:                exitcode-stdio-1.0
  default-language:    Haskell2010
  hs-source-dirs:      test
  main-is:             Main.hs
  other-modules:
      Limb
      Wide
      Wider
      Montgomery.Curve
      Montgomery.Scalar

  ghc-options:
    -rtsopts -Wall -O2

  build-depends:
      base
    , ppad-fixed
    , tasty
    , tasty-hunit
    , tasty-quickcheck

benchmark fixed-bench
  type:                exitcode-stdio-1.0
  default-language:    Haskell2010
  hs-source-dirs:      bench
  main-is:             Main.hs

  ghc-options:
    -rtsopts -O2 -Wall -fno-warn-orphans

  build-depends:
      base
    , criterion
    , ppad-fixed

benchmark fixed-weigh
  type:                exitcode-stdio-1.0
  default-language:    Haskell2010
  hs-source-dirs:      bench
  main-is:             Weight.hs

  ghc-options:
    -rtsopts -O2 -Wall -fno-warn-orphans

  build-depends:
      base
    , deepseq
    , ppad-fixed
    , weigh