numeric-prelude-0.4.2: An experimental alternative hierarchy of numeric type classes

Copyright(c) Henning Thielemann 2004-2005
Maintainernumericprelude@henning-thielemann.de
Stabilityprovisional
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Algebra.Vector

Contents

Description

Abstraction of vectors

Synopsis

Documentation

class C v where Source

A Module over a ring satisfies:

  a *> (b + c) === a *> b + a *> c
  (a * b) *> c === a *> (b *> c)
  (a + b) *> c === a *> c + b *> c

Methods

zero :: C a => v a Source

zero element of the vector space

(<+>) :: C a => v a -> v a -> v a infixl 6 Source

add and subtract elements

(*>) :: C a => a -> v a -> v a infixr 7 Source

scale a vector by a scalar

Instances

C [] 
C T 
C T 
C T 
C T 
C T 
C T 
C T 
C ((->) b) 
Ord i => C (Map i) 
Ord a => C (T a) 
Ord i => C (T i) 
C (T a) 

class Eq v where Source

We need a Haskell 98 type class which provides equality test for Vector type constructors.

Methods

eq :: Eq a => v a -> v a -> Bool infix 4 Source

Instances

Eq [] 

Instances for standard type constructors

functorScale :: (Functor v, C a) => a -> v a -> v a Source

Related functions

linearComb :: (C a, C v) => [a] -> [v a] -> v a Source

Compute the linear combination of a list of vectors.

Properties

propCascade :: (C v, Eq v, C a, Eq a) => a -> a -> v a -> Bool Source

propRightDistributive :: (C v, Eq v, C a, Eq a) => a -> v a -> v a -> Bool Source

propLeftDistributive :: (C v, Eq v, C a, Eq a) => a -> a -> v a -> Bool Source