camfort-1.2.0: CamFort - Cambridge Fortran infrastructure
Safe HaskellSafe-Inferred
LanguageHaskell2010

Camfort.Specification.Stencils.Model

Synopsis

Documentation

data Interval a where Source #

Interval data structure assumes the following: 1. The first num. param. is less than the second; 2. For holed intervals, first num. param. <= 0 <= second num. param.;

Instances

Instances details
Show (Interval 'Standard) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

PartialOrd (Interval 'Standard) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Eq (Interval a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

(==) :: Interval a -> Interval a -> Bool #

(/=) :: Interval a -> Interval a -> Bool #

BoundedJoinSemiLattice (Interval 'Standard) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

BoundedMeetSemiLattice (Interval 'Standard) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

top :: Interval 'Standard #

Lattice (Interval 'Standard) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

data Bound Source #

Constructors

Arbitrary 
Standard 

type UnionNF n a = NonEmpty (Vec n a) Source #

unfCompare :: forall a b n. (Container a, Container b, MemberTyp a ~ Int64, MemberTyp b ~ Int64, CompTyp a ~ SInt64, CompTyp b ~ SInt64) => UnionNF n a -> UnionNF n b -> Ordering Source #

data Approximation a Source #

Constructors

Exact a 
Bound (Maybe a) (Maybe a) 

Instances

Instances details
Foldable Approximation Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

fold :: Monoid m => Approximation m -> m #

foldMap :: Monoid m => (a -> m) -> Approximation a -> m #

foldMap' :: Monoid m => (a -> m) -> Approximation a -> m #

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

foldr' :: (a -> b -> b) -> b -> Approximation a -> b #

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

foldl' :: (b -> a -> b) -> b -> Approximation a -> b #

foldr1 :: (a -> a -> a) -> Approximation a -> a #

foldl1 :: (a -> a -> a) -> Approximation a -> a #

toList :: Approximation a -> [a] #

null :: Approximation a -> Bool #

length :: Approximation a -> Int #

elem :: Eq a => a -> Approximation a -> Bool #

maximum :: Ord a => Approximation a -> a #

minimum :: Ord a => Approximation a -> a #

sum :: Num a => Approximation a -> a #

product :: Num a => Approximation a -> a #

Traversable Approximation Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

traverse :: Applicative f => (a -> f b) -> Approximation a -> f (Approximation b) #

sequenceA :: Applicative f => Approximation (f a) -> f (Approximation a) #

mapM :: Monad m => (a -> m b) -> Approximation a -> m (Approximation b) #

sequence :: Monad m => Approximation (m a) -> m (Approximation a) #

Functor Approximation Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

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

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

Data a => Data (Approximation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

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 :: forall r r'. (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 (Approximation Spatial) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Syntax

Show a => Show (Approximation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Show (Multiplicity (Approximation Spatial)) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Syntax

Eq a => Eq (Approximation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

SynToAst (Approximation Region) (Approximation Spatial) Source # 
Instance details

Defined in Camfort.Specification.Stencils.CheckBackend

SynToAst (Multiplicity (Approximation Region)) (Multiplicity (Approximation Spatial)) Source # 
Instance details

Defined in Camfort.Specification.Stencils.CheckBackend

data Multiplicity a Source #

Constructors

Mult a 
Once a 

Instances

Instances details
Foldable Multiplicity Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

fold :: Monoid m => Multiplicity m -> m #

foldMap :: Monoid m => (a -> m) -> Multiplicity a -> m #

foldMap' :: Monoid m => (a -> m) -> Multiplicity a -> m #

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

foldr' :: (a -> b -> b) -> b -> Multiplicity a -> b #

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

foldl' :: (b -> a -> b) -> b -> Multiplicity a -> b #

foldr1 :: (a -> a -> a) -> Multiplicity a -> a #

foldl1 :: (a -> a -> a) -> Multiplicity a -> a #

toList :: Multiplicity a -> [a] #

null :: Multiplicity a -> Bool #

length :: Multiplicity a -> Int #

elem :: Eq a => a -> Multiplicity a -> Bool #

maximum :: Ord a => Multiplicity a -> a #

minimum :: Ord a => Multiplicity a -> a #

sum :: Num a => Multiplicity a -> a #

product :: Num a => Multiplicity a -> a #

Traversable Multiplicity Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

traverse :: Applicative f => (a -> f b) -> Multiplicity a -> f (Multiplicity b) #

sequenceA :: Applicative f => Multiplicity (f a) -> f (Multiplicity a) #

mapM :: Monad m => (a -> m b) -> Multiplicity a -> m (Multiplicity b) #

sequence :: Monad m => Multiplicity (m a) -> m (Multiplicity a) #

Functor Multiplicity Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Methods

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

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

Data a => Data (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

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 :: forall r r'. (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 (Multiplicity (Approximation Spatial)) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Syntax

Show a => Show (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Peelable (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Associated Types

type CoreTyp (Multiplicity a) Source #

Eq a => Eq (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

SynToAst (Multiplicity (Approximation Region)) (Multiplicity (Approximation Spatial)) Source # 
Instance details

Defined in Camfort.Specification.Stencils.CheckBackend

type CoreTyp (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

type CoreTyp (Multiplicity a) = a

class Peelable a where Source #

Associated Types

type CoreTyp a Source #

Methods

peel :: a -> CoreTyp a Source #

Instances

Instances details
Peelable (Multiplicity a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Model

Associated Types

type CoreTyp (Multiplicity a) Source #

Orphan instances

PartialOrd a => PartialOrd (Vec n a) Source # 
Instance details

Methods

(<=) :: Vec n a -> Vec n a -> Bool Source #

(>=) :: Vec n a -> Vec n a -> Bool Source #

(==) :: Vec n a -> Vec n a -> Bool Source #

(/=) :: Vec n a -> Vec n a -> Bool Source #

(<) :: Vec n a -> Vec n a -> Bool Source #

(>) :: Vec n a -> Vec n a -> Bool Source #

compare :: Vec n a -> Vec n a -> Maybe Ordering Source #

BoundedMeetSemiLattice a => Lattice (UnionNF n a) Source # 
Instance details

Methods

(\/) :: UnionNF n a -> UnionNF n a -> UnionNF n a #

(/\) :: UnionNF n a -> UnionNF n a -> UnionNF n a #