camfort-0.902: CamFort - Cambridge Fortran infrastructure

Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Stencils.InferenceBackend

Synopsis

Documentation

type Span a = (a, a) Source #

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|

sequenceMaybes :: Eq a => [Maybe a] -> Maybe [a] Source #

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

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

Collapses the regions into a small set by looking for potential overlaps and eliminating those that overlap

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

Binary predicate on whether the first region containedWithin the second