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 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 #