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

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 (TRealm rea, Typeable con) => 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`. Fieldsrealm :: 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. Fieldsrealm :: rea content :: con

Instances

 (Eq rea, Eq con, Typeable con, TRealm rea) => Eq (Value rea con) (Show rea, Show con, Typeable con, TRealm rea) => Show (Value rea con) (TRealm rea, Typeable con) => Realmable (Value rea con) (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)) Builder is `Boolean`. You can use `true`, `false`, `not`, `&&`, `||`.