Portability | requires multi-parameter type classes |
---|---|

Stability | provisional |

Maintainer | numericprelude@henning-thielemann.de |

Abstraction of bases of finite dimensional modules

# Documentation

class C a v => C a v whereSource

It must hold:

Module.linearComb (flatten v `asTypeOf` [a]) (basis a) == v dimension a v == length (flatten v `asTypeOf` [a])

basis of the module with respect to the scalar type,
the result must be independent of argument, `Prelude.undefined`

should suffice.

scale a vector by a scalar

dimension :: a -> v -> IntSource

the size of the basis, should also work for undefined argument,
the result must be independent of argument, `Prelude.undefined`

should suffice.

# Instances for atomic types

# Instances for composed types

# Properties

propFlatten :: (Eq v, C a v) => a -> v -> BoolSource

propDimension :: C a v => a -> v -> BoolSource