homepage: https://github.com/leftaroundabout/free-vector-spaces
changelog-type: ''
hash: 9009df1de185dcb510b7b01c3e60a3db0992628328847eebc17bad0dbc9ef8df
test-bench-deps: {}
maintainer: (@) sagemueller $ geo.uni-koeln.de
synopsis: Instantiate the classes from the vector-space package with types from linear
changelog: ''
basic-deps:
  base: ! '>=4.6 && <5.1'
  vector-space: ! '>=0.8 && <0.13'
  lens: ! '>=4 && <5'
  linear: ! '>=1.18 && <1.23'
  MemoTrie: -any
all-versions:
- '0.1.0.0'
author: Justus Sagemüller
latest: '0.1.0.0'
description-type: haddock
description: ! 'The <http://hackage.haskell.org/package/linear/ linear> package offers
  efficient

  vector types — where vector means /element of a free vector space/, i.e.

  fixed-length arrays of numbers. The entire interface of that library is based on

  this  concept of free vectors with a canonical coordinate representation.


  While this is practically speaking often useful, it is also

  * Questionable in terms of conceptual elegance. The idea of a vector has

  originally not much to do with number-arrays; in physics a vector is just

  a quantity with /magnitude and direction/. Only by fixing a basis can

  a coordinate representation arise from that.

  * Not as safe as we''d like. The typical linear-algebra languages like Matlab

  or Fortran are notorious for hard-to spot mistakes that often arise from the

  total reliance on coordinate representations (every vector/linear map is just

  a matrix of number). @linear@ already avoids most of these problems because

  it can at least check dimensions at compile-time and usually doesn''t need

  any indices, but some trouble still remains. E.g., two different 3-dimensional

  spaces are indistinguishable by the type system (unless you wrap one of them

  in a @newtype@, however that also needs to be parameterised on the coordinate

  type to work with the rest of the library).


  The <http://hackage.haskell.org/package/vector-space/ vector-space> library

  has arguably a better (albeit less complete) interface. To gain access to

  that interface with the more efficient types from @linear@, we here provide

  the necessary orphan instances.'
license-name: BSD3

Update from Hackage at 2016-08-02T23:33:28+0000
Update from Hackage at 2016-08-02T23:33:28+0000
