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

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 #

show :: IxFun num -> String #

showList :: [IxFun num] -> ShowS #

Eq num => Eq (IxFun num) Source # 
Instance details

Defined in Futhark.IR.Mem.IxFun.Alg

Methods

(==) :: IxFun num -> IxFun num -> Bool #

(/=) :: IxFun num -> IxFun num -> Bool #

Pretty num => Pretty (IxFun num) Source # 
Instance details

Defined in Futhark.IR.Mem.IxFun.Alg

Methods

pretty :: IxFun num -> Doc ann #

prettyList :: [IxFun num] -> Doc ann #

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 #