fixed

Pure Haskell large fixed-width integers and Montgomery arithmetic.
git clone git://git.ppad.tech/fixed.git
Log | Files | Refs | README | LICENSE

ppad-fixed.cabal (2262B)


      1 cabal-version:      3.0
      2 name:               ppad-fixed
      3 version:            0.1.0
      4 synopsis:           Large fixed-width words and constant-time arithmetic.
      5 license:            MIT
      6 license-file:       LICENSE
      7 author:             Jared Tobin
      8 maintainer:         jared@ppad.tech
      9 category:           Data
     10 build-type:         Simple
     11 tested-with:        GHC == { 9.8.1 }
     12 extra-doc-files:    CHANGELOG
     13 description:
     14   A pure high-performance implementation of large fixed-width integers
     15   and supporting constant-time operations, including Montgomery-form
     16   arithmetic on domains related to the the elliptic curve secp256k1.
     17 
     18 flag llvm
     19   description: Use GHC's LLVM backend.
     20   default:     False
     21   manual:      True
     22 
     23 source-repository head
     24   type:     git
     25   location: git.ppad.tech/fixed.git
     26 
     27 library
     28   default-language: Haskell2010
     29   hs-source-dirs:   lib
     30   ghc-options:
     31       -Wall
     32   if flag(llvm)
     33     ghc-options: -fllvm -O2
     34   exposed-modules:
     35       Data.Choice
     36     , Data.Word.Limb
     37     , Data.Word.Wide
     38     , Data.Word.Wider
     39     , Numeric.Montgomery.Secp256k1.Curve
     40     , Numeric.Montgomery.Secp256k1.Scalar
     41   build-depends:
     42       base >= 4.9 && < 5
     43     , deepseq >= 1.5 && < 1.6
     44 
     45 test-suite fixed-tests
     46   type:                exitcode-stdio-1.0
     47   default-language:    Haskell2010
     48   hs-source-dirs:      test
     49   main-is:             Main.hs
     50   other-modules:
     51       Limb
     52       Wide
     53       Wider
     54       Montgomery.Curve
     55       Montgomery.Scalar
     56 
     57   ghc-options:
     58     -rtsopts -Wall -O2
     59   if flag(llvm)
     60     ghc-options: -fllvm
     61 
     62   build-depends:
     63       base
     64     , ppad-fixed
     65     , tasty
     66     , tasty-hunit
     67     , tasty-quickcheck
     68 
     69 benchmark fixed-bench
     70   type:                exitcode-stdio-1.0
     71   default-language:    Haskell2010
     72   hs-source-dirs:      bench
     73   main-is:             Main.hs
     74 
     75   ghc-options:
     76     -rtsopts -O2 -Wall -fno-warn-orphans
     77   if flag(llvm)
     78     ghc-options: -fllvm
     79 
     80   build-depends:
     81       base
     82     , criterion
     83     , ppad-fixed
     84 
     85 benchmark fixed-weigh
     86   type:                exitcode-stdio-1.0
     87   default-language:    Haskell2010
     88   hs-source-dirs:      bench
     89   main-is:             Weight.hs
     90 
     91   ghc-options:
     92     -rtsopts -O2 -Wall -fno-warn-orphans
     93   if flag(llvm)
     94     ghc-options: -fllvm
     95 
     96   build-depends:
     97       base
     98     , deepseq
     99     , ppad-fixed
    100     , weigh
    101