Copyright | (c) Artem Chirkin |
---|---|
License | BSD3 |
Maintainer | chirkin@arch.ethz.ch |
Safe Haskell | None |
Language | Haskell2010 |
Provides a set of data types to define and traverse through multiple dimensions. The core types are `Dim ds` and `Idx ds`, which fix dimension sizes at compile time.
Lower indices go first, i.e. assumed enumeration is i = i1 + i2*n1 + i3*n1*n2 + ... + ik*n1*n2*...*n(k-1). This is also to encourage column-first matrix enumeration and array layout.
- module Numeric.Dimensions.List
- module Numeric.Dimensions.Dim
- module Numeric.Dimensions.Idx
- data Evidence :: Constraint -> Type where
- withEvidence :: Evidence a -> (a => r) -> r
- sumEvs :: Evidence a -> Evidence b -> Evidence (a, b)
- (+!+) :: Evidence a -> Evidence b -> Evidence (a, b)
Documentation
module Numeric.Dimensions.List
module Numeric.Dimensions.Dim
module Numeric.Dimensions.Idx
data Evidence :: Constraint -> Type where Source #
Bring an instance of certain class or constaint satisfaction evidence into scope.
withEvidence :: Evidence a -> (a => r) -> r Source #