packages feed

accelerate-0.12.0.0: accelerate.cabal

Name:                   accelerate
Version:                0.12.0.0
Cabal-version:          >= 1.6
Tested-with:            GHC >= 7.0.3
Build-type:             Simple

Synopsis:               An embedded language for accelerated array processing
Description:            This library defines an embedded language for
                        regular, multi-dimensional array computations with
                        multiple backends to facilitate high-performance
                        implementations.  Currently, there are two backends:
                        (1) an interpreter that serves as a reference
                        implementation of the intended semantics of the
                        language and (2) a CUDA backend generating code for
                        CUDA-capable NVIDIA GPUs.
                        .
                        To use the CUDA backend, you need to have CUDA version 3.x
                        installed.  The CUDA backend currently doesn't support 'Char'
                        and 'Bool' arrays.
                        .
                        An experimental OpenCL backend is available at <https://github.com/HIPERFIT/accelerate-opencl>
                        and an experimental multicore CPU backend building on the Repa array library
                        is available at <https://github.com/blambo/accelerate-repa>.
                        .
                        Known bugs: <https://github.com/AccelerateHS/accelerate/issues>
                        .
                        * New in 0.12.0.0: Full sharing recovery in scalar expressions and array
                            computations. Two new example applications in package accelerate-examples:
                            Real-time Canny edge detection and fluid flow simulator (both including a
                            graphical frontend). Bug fixes.
                        .
                        * New in 0.11.0.0: New functions zip3, zip4, unzip3, unzip4, fill,
                            enumFromN, enumFromStepN, tail, init, drop, take, slit, gather,
                            gatherIf, scatter, scatterIf, and shapeSize.  New simplified AST
                            (in package accelerate-backend-kit) for backend writers who want to
                            avoid the complexities of the type-safe AST.

                        * New in 0.10.0.0: Complete sharing recovery for scalar expressions (but
                            currently disabled by default). Also bug fixes in array sharing recovery
                            and a few new convenience functions.
                        .
                        * New in 0.9.0.0: Streaming, precompilation, Repa-style indices, stencils, 
                            more scans, rank-polymorphic fold, generate, block I/O & many bug fixes
                        .
                        * New in 0.8.1.0: Bug fixes and some performance tweaks
                        .
                        * New in 0.8.0.0: 'replicate', 'slice' and 'foldSeg' supported in the
                            CUDA backend; frontend and interpreter support for 'stencil'; bug fixes
                        .
                        * New in 0.7.1.0: the CUDA backend and a number of scalar functions
                        .
                        For documentation, see the homepage and <https://github.com/AccelerateHS/accelerate/wiki>.
License:                BSD3
License-file:           LICENSE
Author:                 Manuel M T Chakravarty,
                        Gabriele Keller,
                        Sean Lee,
                        Ben Lever,
                        Trevor L. McDonell,
                        Ryan Newtown,
                        Sean Seefried
Maintainer:             Manuel M T Chakravarty <chak@cse.unsw.edu.au>
Homepage:               https://github.com/AccelerateHS/accelerate/
Bug-reports:            https://github.com/AccelerateHS/accelerate/issues

Category:               Compilers/Interpreters, Concurrency, Data, Parallelism
Stability:              Experimental

Extra-source-files:     INSTALL
                        include/accelerate.h

Flag llvm
  Description:          Enable the LLVM backend (sequential)
  Default:              False

Flag more-pp
  Description:          Enable HTML and Graphviz pretty printing.
  Default:              False

Flag bounds-checks
  Description:          Enable bounds checking
  Default:              True

Flag unsafe-checks
  Description:          Enable bounds checking in unsafe operations
  Default:              False

Flag internal-checks
  Description:          Enable internal consistency checks
  Default:              False

Library
  Include-Dirs:         include
  Build-depends:        array           >= 0.3 && < 0.5,
                        base            == 4.*,
                        containers      >= 0.3 && < 0.5,
                        ghc-prim        == 0.2.*,
                        pretty          >= 1.0 && < 1.2

  if flag(more-pp)
    Build-depends:      bytestring      == 0.9.*,
                        blaze-html      == 0.3.*,
                        text            == 0.10.*

  Exposed-modules:      Data.Array.Accelerate
                        Data.Array.Accelerate.AST
                        Data.Array.Accelerate.Analysis.Shape
                        Data.Array.Accelerate.Analysis.Stencil
                        Data.Array.Accelerate.Analysis.Type
                        Data.Array.Accelerate.Array.Data
                        Data.Array.Accelerate.Array.Representation
                        Data.Array.Accelerate.Array.Sugar
                        Data.Array.Accelerate.Interpreter
                        Data.Array.Accelerate.Pretty
                        Data.Array.Accelerate.Smart
                        Data.Array.Accelerate.Tuple
                        Data.Array.Accelerate.Type

  Other-modules:        Data.Array.Accelerate.Internal.Check
                        Data.Array.Accelerate.Array.Delayed
                        Data.Array.Accelerate.Debug
                        Data.Array.Accelerate.Language
                        Data.Array.Accelerate.Prelude
                        Data.Array.Accelerate.Pretty.Print
                        Data.Array.Accelerate.Pretty.Traverse

  if flag(more-pp)
    Other-modules:      Data.Array.Accelerate.Pretty.HTML
                        Data.Array.Accelerate.Pretty.Graphviz

  if flag(bounds-checks)
    cpp-options:        -DACCELERATE_BOUNDS_CHECKS

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

  if flag(internal-checks)
    cpp-options:        -DACCELERATE_INTERNAL_CHECKS

  ghc-options:          -O2 -Wall -funbox-strict-fields -fno-warn-name-shadowing

  if impl(ghc >= 7.0)
    ghc-options:        -fspec-constr-count=25

  Extensions:           BangPatterns, CPP, DeriveDataTypeable, EmptyDataDecls,
                        FlexibleContexts, FlexibleInstances, GADTs, MagicHash,
                        MultiParamTypeClasses, PatternGuards, RankNTypes,
                        ScopedTypeVariables, StandaloneDeriving,
                        TemplateHaskell, TupleSections, TypeFamilies,
                        TypeOperators, TypeSynonymInstances, UnboxedTuples

Source-repository head
  Type:                 git
  Location:             git://github.com/AccelerateHS/accelerate.git