Paraiso-0.3.1.5: a code generator for partial differential equations solvers.

Safe HaskellNone
LanguageHaskell2010

Language.Paraiso.OM.Value

Description

The Value is flowing through the OM dataflow graph. Value carries the type and homogeneity information about the dataflow as Type. Therefore, operation between Value with wrong type will raise type errors.

Synopsis

Documentation

data Value rea con Source

value type, with its realm and content type discriminated in type level

Constructors

FromNode

data obtained from the dataflow graph. realm carries a type-level realm information, content carries only type information and its ingredient is nonsignificant and can be undefined.

Fields

realm :: rea
 
content :: con
 
node :: Node
 
FromImm

data obtained as an immediate value. realm carries a type-level realm information, content is the immediate value to be stored.

Fields

realm :: rea
 
content :: con
 

Instances

(Eq rea, Eq con) => Eq (Value rea con) Source 
(Show rea, Show con) => Show (Value rea con) Source 
(TRealm rea, Typeable * con) => Realmable (Value rea con) Source 
(TRealm r, Typeable * c) => ToDynable (Value r c) Source

Convert Value to DynValue

(TRealm r, Typeable * c, C c, Fractional c) => Fractional (Builder v g a (Value r c))

you can convert GHC floating point immediates to Builder.

(TRealm r, Typeable * c, C c) => Num (Builder v g a (Value r c))

you can convert GHC numeric immediates to Builder.

(TRealm r, Typeable * c) => C (Builder v g a (Value r c))

choose the larger or the smaller of the two.

(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c)) 
(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c))

Builder is Algebraic C. You can use sqrt and so on.

(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c))

Builder is Field C. You can use /, recip.

(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c)) 
(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c))

Builder is Ring C. You can use div and mod.

(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c))

Builder is Ring C. You can use one, *.

(TRealm r, Typeable * c) => C (Builder v g a (Value r c)) 
(TRealm r, Typeable * c, C c) => C (Builder v g a (Value r c))

Builder is Additive C. You can use zero, +, -, negate.

TRealm r => Boolean (Builder v g a (Value r Bool)) Source

Builder is Boolean. You can use true, false, not, &&, ||.

data StaticValue rea con Source

static value type.

Constructors

StaticValue rea con 

Instances

(Eq rea, Eq con) => Eq (StaticValue rea con) Source 
(Show rea, Show con) => Show (StaticValue rea con) Source 
(TRealm r, Typeable * c) => ToDynable (StaticValue r c) Source

Convert StaticValue to DynValue