camfort-0.904: CamFort - Cambridge Fortran infrastructure

Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Stencils.InferenceBackend

Synopsis

Documentation

coalesce :: Span (Vec n Int) -> Span (Vec n Int) -> Maybe (Span (Vec n Int)) Source #

Coalesce two intervals of vectors into one, if they are contiguous

containedWithin :: Span (Vec n Int) -> Span (Vec n Int) -> Bool Source #

Binary predicate on whether the first region containedWithin the second

inferFromIndicesWithoutLinearity :: VecList Int -> Specification Source #

From a list of vectors of integers, representing relative offsets, generate a specification (but does not do any linearity checking) (defaults to Mult). Instead let the front-end does the linearity check first as an optimimsation. Also defaults to the specification being for a stencil

inferMinimalVectorRegions :: [Vec n Int] -> [Span (Vec n Int)] Source #

|inferMinimalVectorRegions| a key part of the algorithm, from a list of n-dimensional relative indices it infers a list of (possibly overlapping) 1-dimensional spans (vectors) within the n-dimensional space. Built from |minimalise| and |allRegionPermutations|

type Span a = (a, a) Source #