packages feed

easytensor-1.0.0.0: easytensor.cabal

name: easytensor
version: 1.0.0.0
cabal-version: >=1.22
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

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.DataFrame
        Numeric.DataFrame.IO
        Numeric.DataFrame.ST
        Numeric.Matrix
        Numeric.Matrix.Class
        Numeric.Vector
        Numeric.Scalar
        Numeric.Quaternion
        Numeric.Semigroup
        Numeric.PrimBytes
        Numeric.DataFrame.Type
        Numeric.DataFrame.Family
        Numeric.DataFrame.Shape
        Numeric.DataFrame.SubSpace
        Numeric.DataFrame.Contraction
        Numeric.DataFrame.Internal.Mutable
        Numeric.DataFrame.Internal.Array
        Numeric.DataFrame.Internal.Array.Class
        Numeric.DataFrame.Internal.Array.Family
        Numeric.DataFrame.Internal.Array.Family.ArrayBase
        Numeric.DataFrame.Internal.Array.Family.ScalarBase
        Numeric.DataFrame.Internal.Array.Family.FloatX2
        Numeric.DataFrame.Internal.Array.Family.FloatX3
        Numeric.DataFrame.Internal.Array.Family.FloatX4
        Numeric.DataFrame.Internal.Array.Family.DoubleX2
        Numeric.DataFrame.Internal.Array.Family.DoubleX3
        Numeric.DataFrame.Internal.Array.Family.DoubleX4
        Numeric.DataFrame.Internal.Array.PrimOps
    build-depends:
        base >=4.10 && <5,
        dimensions >=1.0.0.0
    default-language: Haskell2010
    hs-source-dirs: src
    other-modules:
        Numeric.Quaternion.Class
        Numeric.Quaternion.QDouble
        Numeric.Quaternion.QFloat
    ghc-options: -Wall -fwarn-tabs -fwarn-unused-do-bind -fwarn-monomorphism-restriction


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.MatrixTest
        Numeric.QuaternionTest
    build-depends:
        base -any,
        Cabal -any,
        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