summaryrefslogtreecommitdiff
path: root/integer-logarithms.cabal
blob: 384e6f27d736ab178b4f016e94480c77309dbfcc (plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name:               integer-logarithms
version:            1.0.3.1
x-revision:         4
cabal-version:      >=1.10
author:             Daniel Fischer
copyright:
  (c) 2011 Daniel Fischer, 2017-2020 Oleg Grenrus, Andrew Lelechenko

license:            MIT
license-file:       LICENSE
maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
build-type:         Simple
stability:          Provisional
homepage:           https://github.com/haskellari/integer-logarithms
bug-reports:        https://github.com/haskellari/integer-logarithms/issues
synopsis:           Integer logarithms.
description:
  "Math.NumberTheory.Logarithms" and "Math.NumberTheory.Powers.Integer"
  from the arithmoi package.
  .
  Also provides "GHC.Integer.Logarithms.Compat" and
  "Math.NumberTheory.Power.Natural" modules, as well as some
  additional functions in migrated modules.

category:           Math, Algorithms, Number Theory
tested-with:
    GHC ==7.0.4
     || ==7.2.2
     || ==7.4.2
     || ==7.6.3
     || ==7.8.4
     || ==7.10.3
     || ==8.0.2
     || ==8.2.2
     || ==8.4.4
     || ==8.6.4
     || ==8.8.4
     || ==8.10.4
     || ==9.0.2
     || ==9.2.5
     || ==9.4.4
     || ==9.6.1
  , GHCJS ==8.4

extra-source-files:
  changelog.md
  readme.md

flag integer-gmp
  description: integer-gmp or integer-simple
  default:     True
  manual:      False

flag check-bounds
  description: Replace unsafe array operations with safe ones
  default:     False
  manual:      True

library
  default-language: Haskell2010
  hs-source-dirs:   src
  build-depends:
      array     >=0.3 && <0.6
    , base      >=4.3 && <4.19
    , ghc-prim  <0.11

  if !impl(ghc >=7.10)
    build-depends: nats >=1.1.2 && <1.2

  if impl(ghc >=9.0)
    build-depends:
        base        >=4.15
      , ghc-bignum  >=1.0  && <1.4

    if !flag(integer-gmp)
      build-depends: invalid-cabal-flag-settings <0

  else
    build-depends: base <4.15

    if flag(integer-gmp)
      build-depends: integer-gmp <1.1

    else
      build-depends: integer-simple

  exposed-modules:
    Math.NumberTheory.Logarithms
    Math.NumberTheory.Powers.Integer
    Math.NumberTheory.Powers.Natural

  -- compat module
  exposed-modules:  GHC.Integer.Logarithms.Compat
  other-extensions:
    BangPatterns
    CPP
    MagicHash

  ghc-options:      -O2 -Wall

  if flag(check-bounds)
    cpp-options: -DCheckBounds

source-repository head
  type:     git
  location: https://github.com/haskellari/integer-logarithms

test-suite spec
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test-suite
  ghc-options:      -Wall
  main-is:          Test.hs
  default-language: Haskell2010
  other-extensions:
    FlexibleContexts
    FlexibleInstances
    GeneralizedNewtypeDeriving
    MultiParamTypeClasses
    StandaloneDeriving

  build-depends:
      base
    , integer-logarithms
    , QuickCheck          >=2.14.1 && <2.15
    , smallcheck          >=1.2    && <1.3
    , tasty               >=0.10   && <1.5
    , tasty-hunit         >=0.9    && <0.11
    , tasty-quickcheck    >=0.8    && <0.11
    , tasty-smallcheck    >=0.8    && <0.9

  if !impl(ghc >=7.10)
    build-depends: nats ==1.1.*

  other-modules:
    Math.NumberTheory.LogarithmsTests
    Math.NumberTheory.TestUtils
    Orphans