name:              vector-algorithms
version:           0.7.0.1
license:           BSD3
license-file:      LICENSE
author:            Dan Doel
maintainer:        Dan Doel <dan.doel@gmail.com>
copyright:         (c) 2008,2009,2010,2011,2012,2013,2014,2015 Dan Doel
                   (c) 2015 Tim Baumann
homepage:          http://code.haskell.org/~dolio/
category:          Data
synopsis:          Efficient algorithms for vector arrays
description:       Efficient algorithms for vector arrays
build-type:        Simple
cabal-version:     >= 1.9.2

flag BoundsChecks
  description: Enable bounds checking
  default: True

flag UnsafeChecks
  description: Enable bounds checking in unsafe operations at the cost of a
               significant performance penalty.
  default: False

flag InternalChecks
  description: Enable internal consistency checks at the cost of a
               significant performance penalty.
  default: False

flag bench
  description: Build a benchmarking program to test vector-algorithms
               performance
  default: False

flag properties
  description: Enable the quickcheck tests
  default: True

source-repository head
  type:     darcs
  location: http://hub.darcs.net/dolio/vector-algorithms

library
  hs-source-dirs: src

  build-depends: base >= 4.5 && < 5,
                 vector >= 0.6 && < 0.12,
                 primitive >=0.3 && <0.7,
                 bytestring >= 0.9 && < 1.0

  exposed-modules:
    Data.Vector.Algorithms.Optimal
    Data.Vector.Algorithms.Insertion
    Data.Vector.Algorithms.Intro
    Data.Vector.Algorithms.Merge
    Data.Vector.Algorithms.Radix
    Data.Vector.Algorithms.Search
    Data.Vector.Algorithms.Heap
    Data.Vector.Algorithms.AmericanFlag
    Data.Vector.Algorithms.Tim

  other-modules:
    Data.Vector.Algorithms.Common

  ghc-options:
    -Odph
    -funbox-strict-fields

  include-dirs:
    include

  install-includes:
    vector.h

  if flag(BoundsChecks)
    cpp-options: -DVECTOR_BOUNDS_CHECKS

  if flag(UnsafeChecks)
    cpp-options: -DVECTOR_UNSAFE_CHECKS

  if flag(InternalChecks)
    cpp-options: -DVECTOR_INTERNAL_CHECKS

executable vector-algorithms-bench
  hs-source-dirs: bench

  if !flag(bench)
    buildable: False

  main-is: Main.hs

  other-modules:
    Blocks

  build-depends: base, mwc-random, vector, vector-algorithms, mtl
  ghc-options: -Wall -Odph

test-suite properties
  hs-source-dirs: tests/properties
  type: exitcode-stdio-1.0
  main-is: Tests.hs

  other-modules:
    Optimal
    Properties
    Util

  if !flag(properties)
    buildable: False
  else
    build-depends:
      base,
      bytestring,
      containers,
      QuickCheck >= 2,
      vector,
      vector-algorithms