Copyright | (c) Artem Chirkin |
---|---|
License | BSD3 |
Maintainer | chirkin@arch.ethz.ch |
Safe Haskell | None |
Language | Haskell2010 |
Provides a data type Idx that enumerates through multiple dimensions. 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.
Data types
Type-level dimensional indexing with arbitrary Int values inside
Z :: Idx '[] | Zero-rank dimensionality - scalar |
(:!) :: !Int -> !(Idx ds) -> Idx (d ': ds) infixr 5 | List-like concatenation of indices |
IsList (Idx ds) Source # | |
Dimensions ds => Bounded (Idx ds) Source # | |
Dimensions ds => Enum (Idx ds) Source # | |
Eq (Idx ds) Source # | |
Num (Idx ((:) Nat n ([] Nat))) Source # | With this instance we can slightly reduce indexing expressions e.g. x ! (1 :! 2 :! 4) == x ! (1 :! 2 :! 4 :! Z) |
Ord (Idx ds) Source # | |
Show (Idx ds) Source # | |
type Item (Idx ds) Source # | |