| Copyright | (c) Artem Chirkin |
|---|---|
| License | BSD3 |
| Maintainer | chirkin@arch.ethz.ch |
| Safe Haskell | None |
| Language | Haskell2010 |
Numeric.Dimensions.Idx
Contents
Description
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
Constructors
| Z :: Idx '[] | Zero-rank dimensionality - scalar |
| (:!) :: !Int -> !(Idx ds) -> Idx (d ': ds) infixr 5 | List-like concatenation of indices |
Instances
| 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 # | |