futhark-0.25.32: An optimising compiler for a functional, array-oriented language.

Safe Haskell | None
Language | GHC2021

Futhark.IR.Mem.IxFun.Alg

Description

A simple index operation representation. Every operation corresponds to a constructor.

# Documentation

data IxFun num Source #

Constructors

Direct (Shape num) |
Permute (IxFun num) Permutation |
Index (IxFun num) (Slice num) |
FlatIndex (IxFun num) (FlatSlice num) |
Reshape (IxFun num) (Shape num) |
Coerce (IxFun num) (Shape num) |
OffsetIndex (IxFun num) num |
Expand num num (IxFun num) |

#### Instances

Instances details

Show num => Show (IxFun num) Source # |
Instance details Defined in Futhark.IR.Mem.IxFun.Alg Methods showsPrec :: Int -> IxFun num -> ShowS Source # show :: IxFun num -> String Source # showList :: [IxFun num] -> ShowS Source #
Eq num => Eq (IxFun num) Source # |
Instance details Defined in Futhark.IR.Mem.IxFun.Alg Methods (==) :: IxFun num -> IxFun num -> Bool Source # (/=) :: IxFun num -> IxFun num -> Bool Source #
Pretty num => Pretty (IxFun num) Source # |
Instance details Defined in Futhark.IR.Mem.IxFun.Alg Methods pretty :: IxFun num -> Doc ann Source # prettyList :: [IxFun num] -> Doc ann Source #

iota :: Shape num -> IxFun num Source #

offsetIndex :: IxFun num -> num -> IxFun num Source #

permute :: IxFun num -> Permutation -> IxFun num Source #

reshape :: IxFun num -> Shape num -> IxFun num Source #

coerce :: IxFun num -> Shape num -> IxFun num Source #

slice :: IxFun num -> Slice num -> IxFun num Source #

flatSlice :: IxFun num -> FlatSlice num -> IxFun num Source #

expand :: num -> num -> IxFun num -> IxFun num Source #

shape :: IntegralExp num => IxFun num -> Shape num Source #

index :: (Eq num, IntegralExp num) => IxFun num -> Indices num -> num Source #

disjoint :: (IntegralExp num, Ord num, Enum num) => IxFun num -> IxFun num -> Bool Source #