camfort-0.904: CamFort - Cambridge Fortran infrastructure

Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Stencils.Syntax

Contents

Synopsis

Datatypes and Aliases

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 #

data Region where Source #

Constructors

Forward :: Depth -> Dimension -> IsRefl -> Region 
Backward :: Depth -> Dimension -> IsRefl -> Region 
Centered :: Depth -> Dimension -> IsRefl -> Region 

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 # 

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 # 

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 # 
SynToAst Region RegionSum Source # 
SynToAst Specification (Either RegionDecl SpecDecl) Source # 
SynToAst (Maybe Region) (Maybe RegionSum) 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 # 
Show (Multiplicity (Approximation Spatial)) Source # 
Show (Approximation Spatial) Source # 
SynToAst (Multiplicity (Approximation Region)) (Multiplicity (Approximation Spatial)) Source # 
SynToAst (Approximation Region) (Approximation Spatial) 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 # 
SynToAst SpecInner Specification Source # 
SynToAst Specification (Either RegionDecl SpecDecl) Source # 

type IsStencil = Bool Source #

isStencil is used to mark whether a specification is associated | with a stencil computation, or a general array computation

Functions

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

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

isUnit :: RegionRig t => t -> Bool Source #