packages feed

simd-0.1.0.0: simd.cabal

-- Initial simd.cabal generated by cabal init.  For further documentation, 
-- see http://haskell.org/cabal/users-guide/

name:                simd
version:             0.1.0.0
synopsis:            simple interface to GHC's SIMD instructions
description:         
    SIMD (Single Instruction Multiple Data) CPU instructions provide a simple
    and fast way to parallelize numeric computations.   GHC 7.8 provides primops
    that let us access these instructions.  This package wraps thos primops in
    a more user friendly form.  
    .
    The API is in two parts.  First, it provides a thin wrapper around the primops
    in the same style as the "Data.Primitive" API.  Second, it provides an interface
    for working with vectors in parallel.  This interface consists of Unbox and
    Storable instances for the SIMD types, and efficient methods for converting
    between a SIMD Vector and a standard vector.    
    .
    At the github repository, there is <https://github.com/mikeizbicki/simd/blob/master/examples/criterion-distance.hs an example> 
    that uses criterion to measure the performance of calculating the l2 distance
    between vectors.  There are many different versions of this function in the example.
    Each is written in different styles that demonstrate correct (and incorrect!) use of the
    library.

homepage:            http://github.com/mikeizbicki/simd
license:             BSD3
license-file:        LICENSE
author:              Mike Izbicki
maintainer:          mike@izbicki.me
-- copyright:           
category:            Math
build-type:          Simple
extra-source-files:  README.md
cabal-version:       >=1.10

library
    exposed-modules:     
        Data.SIMD
        Data.SIMD.SIMD4
        Data.SIMD.SIMD8
        Data.SIMD.SIMD16

  -- other-modules:       
  -- other-extensions:    

    build-depends:       
        base        >=4.7 && <4.8, 
        ghc-prim    >=0.3 && <0.4,
        primitive   >=0.5 && <0.6,
        vector      >=0.10.9

    ghc-options:        
        -fllvm
        -O2
        -mavx
        -mavx2
        -mavx512f
        -funbox-strict-fields

    hs-source-dirs:      
        src

    default-language:    
        Haskell2010