packages feed

easytensor-0.3.2.0: easytensor.cabal

name: easytensor
version: 0.3.2.0
cabal-version: >=1.20
build-type: Simple
license: BSD3
license-file: LICENSE
copyright: (c) Artem Chirkin
maintainer: chirkin@arch.ethz.ch
homepage: https://github.com/achirkin/easytensor#readme
synopsis: Pure, type-indexed haskell vector, matrix, and tensor library.
description:
    Pure, type-indexed haskell vector, matrix, and tensor library.
    Features dimensionality type-checking for all operations.
    Generic n-dimensional versions are implemented using low-level prim ops.
    Allows ad-hoc replacement with fixed low-dimensionality vectors and matrices without changing user interface.
category: Math, Geometry
author: Artem Chirkin
extra-source-files:
    src-base/Numeric/Array/Family/Array.h

source-repository head
    type: git
    location: https://github.com/achirkin/easytensor.git
    subdir: easytensor


flag unsafeindices
    description:
        Disable bound checks when accessing elements of a tensor, matrix, or vector.
    default: False


library

    if flag(unsafeindices)
        cpp-options: -DUNSAFE_INDICES
    exposed-modules:
        Numeric.Commons
        Numeric.DataFrame
        Numeric.DataFrame.IO
        Numeric.DataFrame.ST
        Numeric.Matrix
        Numeric.Vector
        Numeric.Scalar
        Numeric.Quaternion
        Numeric.Semigroup
        Numeric.Semigroup.StrictTuple
    build-depends:
        base >=4.9 && <5,
        ghc-prim >=0.5,
        dimensions -any
    if impl(ghcjs)
      build-depends:
        ghcjs-base >= 0.2.0.0
    default-language: Haskell2010
    hs-source-dirs: src
    if impl(ghcjs)
        hs-source-dirs: src-ghcjs
    else
        hs-source-dirs: src-base
    other-modules:
        Numeric.Array.Family
        Numeric.Array.ElementWise
        Numeric.Array
        Numeric.DataFrame.SubSpace
        Numeric.DataFrame.Contraction
        Numeric.DataFrame.Mutable
        Numeric.DataFrame.Type
        Numeric.DataFrame.Inference
        Numeric.DataFrame.Shape
        Numeric.Matrix.Class
        Numeric.Matrix.Mat44d
        Numeric.Matrix.Mat44f
        Numeric.Quaternion.Class
        Numeric.Quaternion.QDouble
        Numeric.Quaternion.QFloat
    if impl(ghcjs)
      other-modules:
        Numeric.Array.Family.ArrayT
    else
      other-modules:
        Numeric.Array.Family.ArrayF
        Numeric.Array.Family.ArrayD
        Numeric.Array.Family.ArrayI
        Numeric.Array.Family.ArrayI8
        Numeric.Array.Family.ArrayI16
        Numeric.Array.Family.ArrayI32
        Numeric.Array.Family.ArrayI64
        Numeric.Array.Family.ArrayW
        Numeric.Array.Family.ArrayW8
        Numeric.Array.Family.ArrayW16
        Numeric.Array.Family.ArrayW32
        Numeric.Array.Family.ArrayW64
        Numeric.Array.Family.FloatX2
        Numeric.Array.Family.FloatX3
        Numeric.Array.Family.FloatX4
        Numeric.Array.Family.DoubleX2
        Numeric.Array.Family.DoubleX3
        Numeric.Array.Family.DoubleX4
    js-sources:
        src-ghcjs/Numeric/Array/Family/ArrayT.js
        src-ghcjs/Numeric/Quaternion/Quaternion.js
        src-ghcjs/Numeric/Matrix/Mat44.js
    ghc-options: -Wall -fwarn-tabs -fwarn-unused-do-bind -fwarn-monomorphism-restriction -O2

test-suite et-test

    type: exitcode-stdio-1.0
    main-is: Spec.hs
    other-modules:
        Numeric.DataFrame.Arbitraries
        Numeric.DataFrame.SubSpaceTest
        Numeric.DataFrame.BasicTest
        Numeric.QuaternionTest
    build-depends:
        base -any,
        Cabal >=1.20,
        QuickCheck -any,
        easytensor -any,
        dimensions -any
    default-language: Haskell2010
    hs-source-dirs: test
    ghc-options: -Wall -fwarn-tabs -O2



benchmark et-bench-misc

    type: exitcode-stdio-1.0
    main-is: misc.hs
    build-depends:
        base -any,
        easytensor -any,
        dimensions -any
    default-language: Haskell2010
    hs-source-dirs: bench
    ghc-options: -Wall -fwarn-tabs -O2



benchmark et-bench-spfolds

    type: exitcode-stdio-1.0
    main-is: subspacefolds.hs
    build-depends:
        base -any,
        easytensor -any,
        dimensions -any,
        time -any
    default-language: Haskell2010
    hs-source-dirs: bench
    ghc-options: -Wall -fwarn-tabs -O2