packages feed

vector-0.7.1: vector.cabal

Name:           vector
Version:        0.7.1
License:        BSD3
License-File:   LICENSE
Author:         Roman Leshchinskiy <rl@cse.unsw.edu.au>
Maintainer:     Roman Leshchinskiy <rl@cse.unsw.edu.au>
Copyright:      (c) Roman Leshchinskiy 2008-2011
Homepage:       http://code.haskell.org/vector
Bug-Reports:    http://trac.haskell.org/vector
Category:       Data, Data Structures
Synopsis:       Efficient Arrays
Description:
        .
        An efficient implementation of Int-indexed arrays (both mutable
        and immutable), with a powerful loop fusion optimization framework .
        .
        It is structured as follows:
        .
        [@Data.Vector@] Boxed vectors of arbitrary types.
        .
        [@Data.Vector.Unboxed@] Unboxed vectors with an adaptive
        representation based on data type families.
        .
        [@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.
        .
        [@Data.Vector.Primitive@] Unboxed vectors of primitive types as
        defined by the @primitive@ package. @Data.Vector.Unboxed@ is more
        flexible at no performance cost.
        .
        [@Data.Vector.Generic@] Generic interface to the vector types.
        .
        There is also a (draft) tutorial on common uses of vector.
        .
        * <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>
        .
        Please use the project trac to submit bug reports and feature
        requests.
        .
        * <http://trac.haskell.org/vector>
        .
        Changes in version 0.7.1
        .
        * New functions: @iterateN@, @splitAt@
        .
        * New monadic operations: @generateM@, @sequence@, @foldM_@ and
          variants
        .
        * New functions for copying potentially overlapping arrays: @move@,
          @unsafeMove@
        .
        * Specialisations of various monadic operations for primitive monads
        .
        * Unsafe casts for Storable vectors
        .
        * Efficiency improvements
        .
        Changes in version 0.7.0.1
        .
        * Dependency on package ghc removed
        .
        Changes in version 0.7
        .
        * New functions for freezing, copying and thawing vectors: @freeze@,
          @thaw@, @unsafeThaw@ and @clone@
        .
        * @newWith@ and @newUnsafeWith@ on mutable vectors replaced by
          @replicate@
        .
        * New function: @concat@
        .
        * New function for safe indexing: @(!?)@
        .
        * @Monoid@ instances for all vector types
        .
        * Significant recycling and fusion improvements
        .
        * Bug fixes
        .
        * Support for GHC 7.0
        .

Cabal-Version:  >= 1.2.3
Build-Type:     Simple

Extra-Source-Files:
      tests/vector-tests.cabal
      tests/LICENSE
      tests/Setup.hs
      tests/Main.hs
      tests/Boilerplater.hs
      tests/Utilities.hs
      tests/Tests/Stream.hs
      tests/Tests/Vector.hs
      benchmarks/vector-benchmarks.cabal
      benchmarks/LICENSE
      benchmarks/Setup.hs
      benchmarks/Main.hs
      benchmarks/Algo/AwShCC.hs
      benchmarks/Algo/HybCC.hs
      benchmarks/Algo/Leaffix.hs
      benchmarks/Algo/ListRank.hs
      benchmarks/Algo/Quickhull.hs
      benchmarks/Algo/Rootfix.hs
      benchmarks/Algo/Spectral.hs
      benchmarks/Algo/Tridiag.hs
      benchmarks/TestData/Graph.hs
      benchmarks/TestData/ParenTree.hs
      benchmarks/TestData/Random.hs
      internal/GenUnboxTuple.hs
      internal/unbox-tuple-instances
      Changelog

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


Library
  Extensions: CPP, DeriveDataTypeable
  Exposed-Modules:
        Data.Vector.Internal.Check

        Data.Vector.Fusion.Util
        Data.Vector.Fusion.Stream.Size
        Data.Vector.Fusion.Stream.Monadic
        Data.Vector.Fusion.Stream

        Data.Vector.Generic.Mutable
        Data.Vector.Generic.Base
        Data.Vector.Generic.New
        Data.Vector.Generic

        Data.Vector.Primitive.Mutable
        Data.Vector.Primitive

        Data.Vector.Storable.Internal
        Data.Vector.Storable.Mutable
        Data.Vector.Storable

        Data.Vector.Unboxed.Base
        Data.Vector.Unboxed.Mutable
        Data.Vector.Unboxed

        Data.Vector.Mutable
        Data.Vector

  Include-Dirs:
        include, internal

  Install-Includes:
        vector.h

  Build-Depends: base >= 4 && < 5, primitive >= 0.3.1 && < 0.4

  if impl(ghc<6.13)
    Ghc-Options: -finline-if-enough-args -fno-method-sharing
  
  Ghc-Options: -O2

  if flag(BoundsChecks)
    cpp-options: -DVECTOR_BOUNDS_CHECKS

  if flag(UnsafeChecks)
    cpp-options: -DVECTOR_UNSAFE_CHECKS

  if flag(InternalChecks)
    cpp-options: -DVECTOR_INTERNAL_CHECKS