camfort-0.900: CamFort - Cambridge Fortran infrastructure

Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Stencils.Syntax

Contents

Synopsis

Documentation

0. Representations

data Approximation a Source #

Constructors

Exact a 
Bound (Maybe a) (Maybe a) 

Instances

Functor Approximation Source # 

Methods

fmap :: (a -> b) -> Approximation a -> Approximation b #

(<$) :: a -> Approximation b -> Approximation a #

Eq a => Eq (Approximation a) Source # 
Data a => Data (Approximation a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Approximation a -> c (Approximation a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Approximation a) #

toConstr :: Approximation a -> Constr #

dataTypeOf :: Approximation a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Approximation a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Approximation a)) #

gmapT :: (forall b. Data b => b -> b) -> Approximation a -> Approximation a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Approximation a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Approximation a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Approximation a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Approximation a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Approximation a -> m (Approximation a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Approximation a -> m (Approximation a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Approximation a -> m (Approximation a) #

Show (Multiplicity (Approximation Spatial)) Source # 
Show a => Show (Approximation a) Source # 
Show (Approximation Spatial) Source # 
RegionRig (Approximation Spatial) Source # 
Model (Multiplicity (Approximation Spatial)) Source # 
Model (Approximation Spatial) Source # 
type Domain (Multiplicity (Approximation Spatial)) Source # 
type Domain (Approximation Spatial) Source # 

1 . Specification syntax

lookupAggregate :: Eq a => [([a], b)] -> a -> [b] Source #

data Specification Source #

Instances

Eq Specification Source # 
Data Specification Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Specification -> c Specification #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Specification #

toConstr :: Specification -> Constr #

dataTypeOf :: Specification -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Specification) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Specification) #

gmapT :: (forall b. Data b => b -> b) -> Specification -> Specification #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Specification -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Specification -> r #

gmapQ :: (forall d. Data d => d -> u) -> Specification -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Specification -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Specification -> m Specification #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Specification -> m Specification #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Specification -> m Specification #

Show Specification Source # 
Model Specification Source # 
SynToAst Spec Specification Source # 
SynToAst Specification (Either RegionEnv SpecDecls) Source # 
type Domain Specification Source # 

data Spatial Source #

Constructors

Spatial RegionSum 

Instances

Eq Spatial Source # 

Methods

(==) :: Spatial -> Spatial -> Bool #

(/=) :: Spatial -> Spatial -> Bool #

Data Spatial Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Spatial -> c Spatial #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Spatial #

toConstr :: Spatial -> Constr #

dataTypeOf :: Spatial -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Spatial) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Spatial) #

gmapT :: (forall b. Data b => b -> b) -> Spatial -> Spatial #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Spatial -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Spatial -> r #

gmapQ :: (forall d. Data d => d -> u) -> Spatial -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Spatial -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Spatial -> m Spatial #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Spatial -> m Spatial #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Spatial -> m Spatial #

Show Spatial Source # 
RegionRig Spatial Source # 
Model Spatial Source # 
Show (Multiplicity (Approximation Spatial)) Source # 
Show (Approximation Spatial) Source # 
RegionRig (Approximation Spatial) Source # 
Model (Multiplicity (Approximation Spatial)) Source # 
Model (Approximation Spatial) Source # 
type Domain Spatial Source # 
type Domain (Multiplicity (Approximation Spatial)) Source # 
type Domain (Approximation Spatial) Source # 

hasDuplicates :: Eq a => [a] -> ([a], Bool) Source #

data Linearity Source #

Constructors

Linear 
NonLinear 

Instances

Eq Linearity Source # 
Data Linearity Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Linearity -> c Linearity #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Linearity #

toConstr :: Linearity -> Constr #

dataTypeOf :: Linearity -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Linearity) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Linearity) #

gmapT :: (forall b. Data b => b -> b) -> Linearity -> Linearity #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Linearity -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Linearity -> r #

gmapQ :: (forall d. Data d => d -> u) -> Linearity -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Linearity -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Linearity -> m Linearity #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Linearity -> m Linearity #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Linearity -> m Linearity #

SynToAst [Mod] (Linearity, Maybe Mod) Source # 

data Multiplicity a Source #

Constructors

Multiple a 
Single a 

Instances

Functor Multiplicity Source # 

Methods

fmap :: (a -> b) -> Multiplicity a -> Multiplicity b #

(<$) :: a -> Multiplicity b -> Multiplicity a #

Eq a => Eq (Multiplicity a) Source # 
Data a => Data (Multiplicity a) Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Multiplicity a -> c (Multiplicity a) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Multiplicity a) #

toConstr :: Multiplicity a -> Constr #

dataTypeOf :: Multiplicity a -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c (Multiplicity a)) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Multiplicity a)) #

gmapT :: (forall b. Data b => b -> b) -> Multiplicity a -> Multiplicity a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Multiplicity a -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Multiplicity a -> r #

gmapQ :: (forall d. Data d => d -> u) -> Multiplicity a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Multiplicity a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Multiplicity a -> m (Multiplicity a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Multiplicity a -> m (Multiplicity a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Multiplicity a -> m (Multiplicity a) #

Show a => Show (Multiplicity a) Source # 
Show (Multiplicity (Approximation Spatial)) Source # 
Model (Multiplicity (Approximation Spatial)) Source # 
type Domain (Multiplicity (Approximation Spatial)) Source # 

type Depth = Int Source #

data Region where Source #

Instances

Eq Region Source # 

Methods

(==) :: Region -> Region -> Bool #

(/=) :: Region -> Region -> Bool #

Data Region Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Region -> c Region #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Region #

toConstr :: Region -> Constr #

dataTypeOf :: Region -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Region) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Region) #

gmapT :: (forall b. Data b => b -> b) -> Region -> Region #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Region -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Region -> r #

gmapQ :: (forall d. Data d => d -> u) -> Region -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Region -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Region -> m Region #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Region -> m Region #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Region -> m Region #

Ord Region Source # 
Show Region Source # 
Model Region Source # 
type Domain Region Source # 
type Domain Region = Set [Int]

newtype RegionProd Source #

Constructors

Product 

Fields

Instances

Eq RegionProd Source # 
Data RegionProd Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RegionProd -> c RegionProd #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RegionProd #

toConstr :: RegionProd -> Constr #

dataTypeOf :: RegionProd -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c RegionProd) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RegionProd) #

gmapT :: (forall b. Data b => b -> b) -> RegionProd -> RegionProd #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RegionProd -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RegionProd -> r #

gmapQ :: (forall d. Data d => d -> u) -> RegionProd -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RegionProd -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RegionProd -> m RegionProd #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RegionProd -> m RegionProd #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RegionProd -> m RegionProd #

Ord RegionProd Source # 
Show RegionProd Source # 
PartialMonoid RegionProd Source # 
Model RegionProd Source # 
type Domain RegionProd Source # 

newtype RegionSum Source #

Constructors

Sum 

Fields

Instances

Eq RegionSum Source # 
Data RegionSum Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RegionSum -> c RegionSum #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RegionSum #

toConstr :: RegionSum -> Constr #

dataTypeOf :: RegionSum -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c RegionSum) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RegionSum) #

gmapT :: (forall b. Data b => b -> b) -> RegionSum -> RegionSum #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RegionSum -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RegionSum -> r #

gmapQ :: (forall d. Data d => d -> u) -> RegionSum -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RegionSum -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RegionSum -> m RegionSum #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RegionSum -> m RegionSum #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RegionSum -> m RegionSum #

Show RegionSum Source # 
RegionRig RegionSum Source # 
Model RegionSum Source # 
SynToAst Region RegionSum Source # 
SynToAst Specification (Either RegionEnv SpecDecls) Source # 
type Domain RegionSum Source # 

showL :: Show a => [a] -> String Source #

showRegion :: (Show a1, Show a) => [Char] -> a -> a1 -> Bool -> [Char] Source #

groupKeyBy :: Eq b => [(a, b)] -> [([a], b)] Source #