Algebra.Module
 Portability requires multi-parameter type classes Stability provisional Maintainer numericprelude@henning-thielemann.de
 Contents Instances for atomic types Instances for composed types Related functions Properties
Description
Abstraction of modules
Synopsis
class (C b, C a) => C a b where
 (*>) :: a -> b -> b
linearComb :: C a b => [a] -> [b] -> b
integerMultiply :: (C a, C b) => a -> b -> b
propCascade :: (Eq b, C a b) => b -> a -> a -> Bool
propRightDistributive :: (Eq b, C a b) => a -> b -> b -> Bool
propLeftDistributive :: (Eq b, C a b) => b -> a -> a -> Bool
Documentation
 class (C b, C a) => C a b 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
 (*>) :: a -> b -> b Source
scale a vector by a scalar Instances
 C Double Double C Float Float C Int Int C Integer Integer C a => C Integer (T a) C a => C Integer (T a) C a b => C a ([] b) C a b => C a (T b) C a b => C a (T b) C a b => C a (T b) (C a v, C v) => C a (T v) C a b => C a (T b) C a b => C a (T b) C a b => C a (T b) C a b => C a (c -> b) (C a b0, C a b1) => C a ((,) b0 b1) (Ord i, Eq a, Eq v, C a v) => C a (Map i v) (C u, C a b) => C a (T u b) (Ord i, C a v) => C a (T i v) C a v => C a (T b v) (C a b0, C a b1, C a b2) => C a ((,,) b0 b1 b2) C a => C (T a) (T a)
Instances for atomic types
Instances for composed types
Related functions
 linearComb :: C a b => [a] -> [b] -> b Source

Compute the linear combination of a list of vectors.

ToDo: Should it use NumericPrelude.List.zipWithMatch ?

 integerMultiply :: (C a, C b) => a -> b -> b Source

This function can be used to define any C as a module over Integer.