packages feed

massiv-0.3.2.0: massiv.cabal

name:                massiv
version:             0.3.2.0
synopsis:            Massiv (Массив) is an Array Library.
description:         Multi-dimensional Arrays with fusion, stencils and parallel computation.
homepage:            https://github.com/lehins/massiv
license:             BSD3
license-file:        LICENSE
author:              Alexey Kuleshevich
maintainer:          alexey@kuleshevi.ch
copyright:           2018-2019 Alexey Kuleshevich
category:            Data, Data Structures, Parallelism
build-type:          Custom
extra-source-files:  README.md
                   , CHANGELOG.md
cabal-version:       >=1.10

flag unsafe-checks
  description: Enable all the bounds checks for unsafe functions at the cost of
               significant performance penalty
  default: False
  manual: True

custom-setup
  setup-depends:
      base
    , Cabal
    , cabal-doctest >=1.0.6

library
  hs-source-dirs:      src
  exposed-modules:     Data.Massiv.Array
                     , Data.Massiv.Array.Delayed
                     , Data.Massiv.Array.Manifest
                     , Data.Massiv.Array.Manifest.Vector
                     , Data.Massiv.Array.Mutable
                     , Data.Massiv.Array.Mutable.Algorithms
                     , Data.Massiv.Array.Mutable.Atomic
                     , Data.Massiv.Array.Numeric
                     , Data.Massiv.Array.Numeric.Integral
                     , Data.Massiv.Array.Stencil
                     , Data.Massiv.Array.Stencil.Unsafe
                     , Data.Massiv.Array.Unsafe
                     , Data.Massiv.Core
                     , Data.Massiv.Core.Index

  other-modules:       Data.Massiv.Array.Delayed.Interleaved
                     , Data.Massiv.Array.Delayed.Pull
                     , Data.Massiv.Array.Delayed.Push
                     , Data.Massiv.Array.Delayed.Windowed
                     , Data.Massiv.Array.Manifest.Boxed
                     , Data.Massiv.Array.Manifest.Internal
                     , Data.Massiv.Array.Manifest.List
                     , Data.Massiv.Array.Manifest.Primitive
                     , Data.Massiv.Array.Manifest.Storable
                     , Data.Massiv.Array.Manifest.Unboxed
                     , Data.Massiv.Array.Ops.Construct
                     , Data.Massiv.Array.Ops.Fold
                     , Data.Massiv.Array.Ops.Fold.Internal
                     , Data.Massiv.Array.Ops.Map
                     , Data.Massiv.Array.Ops.Slice
                     , Data.Massiv.Array.Ops.Sort
                     , Data.Massiv.Array.Ops.Transform
                     , Data.Massiv.Array.Stencil.Convolution
                     , Data.Massiv.Array.Stencil.Internal
                     , Data.Massiv.Core.Common
                     , Data.Massiv.Core.Exception
                     , Data.Massiv.Core.Index.Internal
                     , Data.Massiv.Core.Index.Ix
                     , Data.Massiv.Core.Index.Stride
                     , Data.Massiv.Core.Index.Tuple
                     , Data.Massiv.Core.Iterator
                     , Data.Massiv.Core.List
  build-depends:       base >= 4.9 && < 5
                     , bytestring
                     , data-default-class
                     , deepseq
                     , exceptions
                     , scheduler >= 1.1.0
                     , primitive
                     , unliftio-core
                     , vector
  include-dirs: include
  install-includes: massiv.h

  if flag(unsafe-checks)
    cpp-options: -DMASSIV_UNSAFE_CHECKS

  default-language:    Haskell2010
  ghc-options:        -Wall
                      -Wincomplete-record-updates
                      -Wincomplete-uni-patterns
                      -Wredundant-constraints

test-suite tests
  type:               exitcode-stdio-1.0
  hs-source-dirs:     tests
  main-is:            Main.hs
  other-modules:      Data.Massiv.ArraySpec
                    , Data.Massiv.Array.DelayedSpec
                    , Data.Massiv.Array.Delayed.InterleavedSpec
                    , Data.Massiv.Array.Delayed.WindowedSpec
                    , Data.Massiv.Array.ManifestSpec
                    , Data.Massiv.Array.Manifest.VectorSpec
                    , Data.Massiv.Array.MutableSpec
                    , Data.Massiv.Array.Numeric.IntegralSpec
                    , Data.Massiv.Array.Ops.ConstructSpec
                    , Data.Massiv.Array.Ops.FoldSpec
                    , Data.Massiv.Array.Ops.SliceSpec
                    , Data.Massiv.Array.Ops.SortSpec
                    , Data.Massiv.Array.Ops.TransformSpec
                    , Data.Massiv.Array.Ops.MapSpec
                    , Data.Massiv.Array.StencilSpec
                    , Data.Massiv.CoreArbitrary
                    , Data.Massiv.Core.IndexSpec
                    , Data.Massiv.Core.SchedulerSpec
                    , Spec
  build-depends:      base
                    , async
                    , bytestring
                    , containers
                    , data-default
                    , deepseq
                    , massiv
                    , hspec
                    , QuickCheck
                    , unliftio
                    , vector

  default-language:   Haskell2010
  ghc-options:       -Wall
                     -Wincomplete-record-updates
                     -Wincomplete-uni-patterns
                     -Wredundant-constraints
                     -fno-warn-orphans
                     -threaded
                     -with-rtsopts=-N2

test-suite doctests
  type:             exitcode-stdio-1.0
  hs-source-dirs:   tests
  main-is:          doctests.hs
  build-depends: base
               , doctest >=0.15
               , QuickCheck
               , massiv
               , template-haskell
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/lehins/massiv