File: mod.cabal

package info (click to toggle)
haskell-mod 0.2.0.1-2
  • links: PTS
  • area: main
  • in suites: sid, trixie
  • size: 148 kB
  • sloc: haskell: 1,413; ansic: 10; makefile: 6
file content (96 lines) | stat: -rw-r--r-- 2,409 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name:          mod
version:       0.2.0.1
cabal-version: >=1.10
build-type:    Simple
license:       MIT
license-file:  LICENSE
copyright:     2017-2022 Andrew Lelechenko
maintainer:    Andrew Lelechenko <andrew.lelechenko@gmail.com>
homepage:      https://github.com/Bodigrim/mod
bug-reports:   https://github.com/Bodigrim/mod/issues
synopsis:      Fast type-safe modular arithmetic
description:
  <https://en.wikipedia.org/wiki/Modular_arithmetic Modular arithmetic>,
  promoting moduli to the type level, with an emphasis on performance.
  Originally part of the <https://hackage.haskell.org/package/arithmoi arithmoi> package.
category:      Math, Number Theory
author:        Andrew Lelechenko <andrew.lelechenko@gmail.com>
tested-with:   GHC ==9.0.2 GHC ==9.2.5 GHC ==9.4.4 GHC ==9.6.1
extra-source-files:
  changelog.md
  README.md
  cbits/aarch64.h

source-repository head
  type: git
  location: https://github.com/Bodigrim/mod

flag semirings
  description: Derive semiring instances
  default: True

flag vector
  description: Derive unboxed and primitive vector instances
  default: True

library
  build-depends:
    base >=4.15 && <5,
    deepseq,
    ghc-bignum
  if flag(semirings)
    build-depends:
      semirings >= 0.5
  if flag(vector)
    build-depends:
      primitive,
      vector >= 0.12
  exposed-modules:
    Data.Mod
    Data.Mod.Word
  other-modules:
    Data.Mod.Compat
  default-language: Haskell2010
  ghc-options: -Wall -O2 -Wno-deprecations -Wcompat

  if(arch(aarch64))
    c-sources: cbits/aarch64.c
    include-dirs: cbits

test-suite mod-tests
  build-depends:
    base >=4.10 && <5,
    mod,
    quickcheck-classes-base,
    tasty >=0.10,
    tasty-quickcheck >=0.9 && <0.11
  if flag(semirings)
    build-depends:
      containers,
      quickcheck-classes >=0.6.3,
      semirings >= 0.5
  if flag(vector)
    build-depends:
      primitive,
      quickcheck-classes >=0.6.3,
      vector >= 0.12
  type: exitcode-stdio-1.0
  main-is: Test.hs
  default-language: Haskell2010
  hs-source-dirs: test
  ghc-options: -Wall -threaded -rtsopts -Wcompat

benchmark mod-bench
  build-depends:
    base,
    mod,
    -- finite-field >= 0.9,
    -- finite-typelits,
    -- modular,
    -- modular-arithmetic >= 2,
    tasty-bench >= 0.2.5
  type: exitcode-stdio-1.0
  main-is: Bench.hs
  default-language: Haskell2010
  hs-source-dirs: bench
  ghc-options: -Wall -O2 -Wcompat