Safe Haskell | None |
---|
- type IxRep = Sint32
- newtype Ix n = Ix {}
- fromIx :: SingI n => Ix n -> IxRep
- toIx :: (IvoryExpr a, Bounded a, SingI n) => a -> Ix n
- ixSize :: forall n. SingI n => Ix n -> Integer
- arrayLen :: forall s len area n ref. (Num n, SingI len, IvoryArea area, IvoryRef ref) => ref s (Array len area) -> n
- (!) :: forall s len area ref. (SingI len, IvoryArea area, IvoryRef ref, IvoryExpr (ref s (Array len area)), IvoryExpr (ref s area)) => ref s (Array len area) -> Ix len -> ref s area
- mkIx :: forall n. SingI n => Expr -> Ix n
- ixBinop :: SingI n => (Expr -> Expr -> Expr) -> Ix n -> Ix n -> Ix n
- ixUnary :: SingI n => (Expr -> Expr) -> Ix n -> Ix n
- rawIxVal :: SingI n => Ix n -> Expr
Documentation
Values in the range 0 .. n-1
.
SingI Nat n => Num (Ix n) | |
SingI Nat n => IvoryExpr (Ix n) | |
SingI Nat n => IvoryVar (Ix n) | |
SingI Nat n => IvoryType (Ix n) | |
SingI Nat n => IvoryOrd (Ix n) | |
SingI Nat n => IvoryEq (Ix n) | |
SingI Nat n => IvoryStore (Ix n) | |
SingI Nat len => IvoryInit (Ix len) | |
(SingI Nat n, IvoryIntegral to, Default to) => SafeCast (Ix n) to |
toIx :: (IvoryExpr a, Bounded a, SingI n) => a -> Ix nSource
Casting from a bounded Ivory expression to an index. This is safe, although the value may be truncated. Furthermore, indexes are always positive.
arrayLen :: forall s len area n ref. (Num n, SingI len, IvoryArea area, IvoryRef ref) => ref s (Array len area) -> nSource