ivory-0.1.0.8: Safe embedded C programming.

Safe HaskellNone
LanguageHaskell2010

Ivory.Language.Array

Synopsis

Documentation

data Ix (n :: Nat) Source #

Values in the range 0 .. n-1.

Instances
ANat n => Bounded (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

minBound :: Ix n #

maxBound :: Ix n #

ANat n => Num (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

(+) :: Ix n -> Ix n -> Ix n #

(-) :: Ix n -> Ix n -> Ix n #

(*) :: Ix n -> Ix n -> Ix n #

negate :: Ix n -> Ix n #

abs :: Ix n -> Ix n #

signum :: Ix n -> Ix n #

fromInteger :: Integer -> Ix n #

ANat n => IvoryExpr (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

wrapExpr :: Expr -> Ix n Source #

ANat n => IvoryVar (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

wrapVar :: Var -> Ix n Source #

unwrapExpr :: Ix n -> Expr Source #

ANat n => IvoryType (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

ivoryType :: Proxy (Ix n) -> Type Source #

ANat n => IvoryOrd (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

(>?) :: Ix n -> Ix n -> IBool Source #

(>=?) :: Ix n -> Ix n -> IBool Source #

(<?) :: Ix n -> Ix n -> IBool Source #

(<=?) :: Ix n -> Ix n -> IBool Source #

ANat n => IvoryEq (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

Methods

(==?) :: Ix n -> Ix n -> IBool Source #

(/=?) :: Ix n -> Ix n -> IBool Source #

ANat n => IvoryStore (Ix n) Source # 
Instance details

Defined in Ivory.Language.Array

ANat n => IvoryZeroVal (Ix n) Source # 
Instance details

Defined in Ivory.Language.Init

Methods

izeroval :: Init (Stored (Ix n)) Source #

ANat len => IvoryInit (Ix len) Source # 
Instance details

Defined in Ivory.Language.Init

Methods

ival :: Ix len -> Init (Stored (Ix len)) Source #

(ANat n, IvoryIntegral to, Default to) => SafeCast (Ix n) to Source # 
Instance details

Defined in Ivory.Language.Array

Methods

safeCast :: Ix n -> to Source #

ixRep :: Type Source #

The representation type of a TyIndex, this is fixed to Int32 for the time being.

fromIx :: ANat n => Ix n -> IxRep Source #

toIx :: forall a n. (SafeCast a IxRep, ANat n) => a -> Ix n Source #

Casting from a bounded Ivory expression to an index. This is safe, although the value may be truncated. Furthermore, indexes are always positive.

ixSize :: forall n. ANat n => Ix n -> Integer Source #

The number of elements that an index covers.

arrayLen :: forall s len area n ref. (Num n, ANat len, IvoryArea area, IvoryRef ref) => ref s (Array len area) -> n Source #

(!) :: forall s len area ref. (ANat 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 Source #

Array indexing.