packages feed

linearmap-category-0.6.0.0: linearmap-category.cabal

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

name:                linearmap-category
version:             0.6.0.0
synopsis:            Native, complete-ish, matrix-free linear algebra.
description:         The term /numerical linear algebra/ is often used almost
                     synonymous with /matrix modifications/. However, what's interesting
                     for most applications are really just /points in some vector space/
                     and linear mappings between them, not matrices (which represent
                     points or mappings, but inherently depend on a particular choice
                     of basis / coordinate system).
                     .
                     This library implements the crucial LA operations like solving
                     linear equations and eigenvalue problems, without requiring
                     that the vectors are represented in some particular basis.
                     This appoach offers:
                     1. conceptual elegance (only operations that are actually
                     geometrically sensible will typecheck – this is far stronger than
                     just confirming that the dimensions match, as some other libraries
                     do)
                     2. opportunity to type tensors more expressively. E.g. instead of
                     having a tensor with many dimensions that can easily be confused,
                     one can have e.g. a space of images and take the tensor product
                     with a linear batch space, etc..
                     3. it opens up optimisation possibilities: the vectors can be
                     unboxed, use dedicated sparse compression, possibly carry out the
                     computations on accelerated hardware (GPU etc.). The spaces can in
                     principle even be infinite-dimensional (e.g. function spaces).
                     .
                     The linear algebra algorithms in this package only require the
                     vectors to support fundamental operations like addition, scalar
                     products, double-dual-space coercion and tensor products. These
                     are expressed by a hierarchy of type classes, none of which requires
                     a basis representation.
                     Basis representations are optional to allow storage in matrix-based
                     backends, but this too is done in a way that allows e.g. taking the
                     tensor product of a lazy function space with a static-dimensional
                     matrix space with a low-dimensional channels space, and then only
                     the inner dimensions will be stored in a packed format.
homepage:            https://github.com/leftaroundabout/linearmap-family
license:             GPL-3
license-file:        LICENSE
author:              Justus Sagemüller
maintainer:          (@) jsag $ hvl.no
-- copyright:           
category:            Math
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

flag singletons3
  description: Whether to use a version of the singletons package after its split in a core- and base part
  default: True
  manual: False

library
  exposed-modules:     Math.LinearMap.Category
                       Math.LinearMap.Category.Instances.Deriving
                       Math.LinearMap.Coercion
                       Math.VectorSpace.ZeroDimensional
                       Math.VectorSpace.Dual
                       Math.VectorSpace.MiscUtil.MultiConstraints
                       Math.LinearMap.Category.Derivatives
                       Math.VectorSpace.DimensionAware.Theorems.MaybeNat
                       Math.VectorSpace.DimensionAware
  other-modules:       Math.LinearMap.Category.Class
                       Math.LinearMap.Asserted
                       Math.LinearMap.Category.TensorQuot
                       Math.LinearMap.Category.Instances
                       Math.VectorSpace.Docile
  other-extensions:    FlexibleInstances, UndecidableInstances, FunctionalDependencies, TypeOperators, TypeFamilies
  build-depends:       base >=4.8 && <5,
                       vector-space >=0.11 && <0.18, MemoTrie,
                       constrained-categories >=0.3 && <0.5,
                       containers,
                       vector >=0.12 && <0.14,
                       tagged,
                       free-vector-spaces >= 0.1.4 && < 0.3,
                       linear, lens, transformers,
                       manifolds-core >= 0.5.1.0 && < 0.7,
                       semigroups, hashable,
                       data-default-class,
                       ieee754 >= 0.7 && < 0.9,
                       call-stack,
                       template-haskell >=2.12 && <2.20,
                       th-abstraction >=0.4 && <0.5,
                       ghc-typelits-natnormalise >=0.7 && <0.8,
                       type-natural >=1.0 && <1.2,
                       QuickCheck >=2.11 && <2.15
  if flag(singletons3)
    build-depends:
                       singletons >=3.0 && <3.1,
                       singletons-base >=3.0 && <3.1
  else
    build-depends:
                       singletons >=2.7 && <3.0
  -- hs-source-dirs:      
  default-language:    Haskell2010

test-suite tasty
  main-is:         test.hs
  type:            exitcode-stdio-1.0
  hs-source-dirs:  test/tasty
  build-depends:   base, linearmap-category, vector-space
                   , QuickCheck
                   , manifolds-core
                   , linear, vector
                   , constrained-categories
                   , tasty, tasty-quickcheck
  ghc-options: -threaded "-with-rtsopts -N8 -M2G"
  default-language:    Haskell2010