drasil-code-base-0.1.9.0: A framework for code and document generation for scientific software - Build System SubPackage
Safe HaskellNone
LanguageHaskell2010

Language.Drasil.CodeExpr

Description

Re-export CodeExpr constructors.

Synopsis

Documentation

data CodeExpr Source #

Expression language where all terms also denote a term in GOOL (i.e. translation is total and meaning preserving).

Instances

Instances details
ExprC CodeExpr Source # 
Instance details

Defined in Language.Drasil.Code.Expr

Methods

lit :: Literal -> CodeExpr #

($=) :: CodeExpr -> CodeExpr -> CodeExpr #

($!=) :: CodeExpr -> CodeExpr -> CodeExpr #

($<) :: CodeExpr -> CodeExpr -> CodeExpr #

($>) :: CodeExpr -> CodeExpr -> CodeExpr #

($<=) :: CodeExpr -> CodeExpr -> CodeExpr #

($>=) :: CodeExpr -> CodeExpr -> CodeExpr #

($.) :: CodeExpr -> CodeExpr -> CodeExpr #

addI :: CodeExpr -> CodeExpr -> CodeExpr #

addRe :: CodeExpr -> CodeExpr -> CodeExpr #

mulI :: CodeExpr -> CodeExpr -> CodeExpr #

mulRe :: CodeExpr -> CodeExpr -> CodeExpr #

($-) :: CodeExpr -> CodeExpr -> CodeExpr #

($/) :: CodeExpr -> CodeExpr -> CodeExpr #

($^) :: CodeExpr -> CodeExpr -> CodeExpr #

($=>) :: CodeExpr -> CodeExpr -> CodeExpr #

($<=>) :: CodeExpr -> CodeExpr -> CodeExpr #

($&&) :: CodeExpr -> CodeExpr -> CodeExpr #

($||) :: CodeExpr -> CodeExpr -> CodeExpr #

abs_ :: CodeExpr -> CodeExpr #

neg :: CodeExpr -> CodeExpr #

log :: CodeExpr -> CodeExpr #

ln :: CodeExpr -> CodeExpr #

sqrt :: CodeExpr -> CodeExpr #

sin :: CodeExpr -> CodeExpr #

cos :: CodeExpr -> CodeExpr #

tan :: CodeExpr -> CodeExpr #

sec :: CodeExpr -> CodeExpr #

csc :: CodeExpr -> CodeExpr #

cot :: CodeExpr -> CodeExpr #

arcsin :: CodeExpr -> CodeExpr #

arccos :: CodeExpr -> CodeExpr #

arctan :: CodeExpr -> CodeExpr #

exp :: CodeExpr -> CodeExpr #

dim :: CodeExpr -> CodeExpr #

norm :: CodeExpr -> CodeExpr #

negVec :: CodeExpr -> CodeExpr #

not_ :: CodeExpr -> CodeExpr #

idx :: CodeExpr -> CodeExpr -> CodeExpr #

defint :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

defsum :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

defprod :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

realInterval :: HasUID c => c -> RealInterval CodeExpr CodeExpr -> CodeExpr #

euclidean :: [CodeExpr] -> CodeExpr #

cross :: CodeExpr -> CodeExpr -> CodeExpr #

completeCase :: [(CodeExpr, CodeExpr)] -> CodeExpr #

incompleteCase :: [(CodeExpr, CodeExpr)] -> CodeExpr #

matrix :: [[CodeExpr]] -> CodeExpr #

m2x2 :: CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

vec2D :: CodeExpr -> CodeExpr -> CodeExpr #

dgnl2x2 :: CodeExpr -> CodeExpr -> CodeExpr #

apply :: (HasUID f, HasSymbol f) => f -> [CodeExpr] -> CodeExpr #

applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [CodeExpr] -> [(a, CodeExpr)] -> CodeExpr #

sy :: (HasUID c, HasSymbol c) => c -> CodeExpr #

LiteralC CodeExpr Source # 
Instance details

Defined in Language.Drasil.Code.Expr

CodeExprC CodeExpr Source # 
Instance details

Defined in Language.Drasil.Code.Expr.Class

class CodeExprC r where Source #

Methods

new :: (Callable f, HasUID f, CodeIdea f) => f -> [r] -> r Source #

Constructs a CodeExpr for actor creation (constructor call)

newWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r Source #

Constructs a CodeExpr for actor creation (constructor call) that uses named arguments

message :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c) => c -> f -> [r] -> r Source #

Constructs a CodeExpr for actor messaging (method call)

msgWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c, HasUID a, IsArgumentName a) => c -> f -> [r] -> [(a, r)] -> r Source #

Constructs a CodeExpr for actor messaging (method call) that uses named arguments

field :: CodeVarChunk -> CodeVarChunk -> r Source #

Constructs a CodeExpr representing the field of an actor

Instances

Instances details
CodeExprC CodeExpr Source # 
Instance details

Defined in Language.Drasil.Code.Expr.Class

class ExprC r where #

Methods

lit :: Literal -> r #

($=) :: r -> r -> r infixr 4 #

($!=) :: r -> r -> r #

($<) :: r -> r -> r #

Smart constructor for ordering two equations.

($>) :: r -> r -> r #

Smart constructor for ordering two equations.

($<=) :: r -> r -> r #

Smart constructor for ordering two equations.

($>=) :: r -> r -> r #

Smart constructor for ordering two equations.

($.) :: r -> r -> r #

Smart constructor for the dot product of two equations.

addI :: r -> r -> r #

Add two expressions (Integers).

addRe :: r -> r -> r #

Add two expressions (Real numbers).

mulI :: r -> r -> r #

Multiply two expressions (Integers).

mulRe :: r -> r -> r #

Multiply two expressions (Real numbers).

($-) :: r -> r -> r #

($/) :: r -> r -> r infixl 7 #

($^) :: r -> r -> r infixr 8 #

($=>) :: r -> r -> r #

($<=>) :: r -> r -> r #

($&&) :: r -> r -> r infixr 9 #

($||) :: r -> r -> r infixr 9 #

abs_ :: r -> r #

Smart constructor for taking the absolute value of an expression.

neg :: r -> r #

Smart constructor for negating an expression.

log :: r -> r #

Smart constructor to take the log of an expression.

ln :: r -> r #

Smart constructor to take the ln of an expression.

sqrt :: r -> r #

Smart constructor to take the square root of an expression.

sin :: r -> r #

Smart constructor to apply sin to an expression.

cos :: r -> r #

Smart constructor to apply cos to an expression.

tan :: r -> r #

Smart constructor to apply tan to an expression.

sec :: r -> r #

Smart constructor to apply sec to an expression.

csc :: r -> r #

Smart constructor to apply csc to an expression.

cot :: r -> r #

Smart constructor to apply cot to an expression.

arcsin :: r -> r #

Smart constructor to apply arcsin to an expression.

arccos :: r -> r #

Smart constructor to apply arccos to an expression.

arctan :: r -> r #

Smart constructor to apply arctan to an expression.

exp :: r -> r #

Smart constructor for the exponential (base e) function.

dim :: r -> r #

Smart constructor for calculating the dimension of a vector.

norm :: r -> r #

Smart constructor for calculating the normal form of a vector.

negVec :: r -> r #

Smart constructor for negating vectors.

not_ :: r -> r #

Smart constructor for applying logical negation to an expression.

idx :: r -> r -> r #

Smart constructor for indexing.

defint :: Symbol -> r -> r -> r -> r #

Smart constructor for the summation, product, and integral functions over an interval.

defsum :: Symbol -> r -> r -> r -> r #

Smart constructor for the summation, product, and integral functions over an interval.

defprod :: Symbol -> r -> r -> r -> r #

Smart constructor for the summation, product, and integral functions over an interval.

realInterval :: HasUID c => c -> RealInterval r r -> r #

Smart constructor for 'real interval' membership.

euclidean :: [r] -> r #

Euclidean function : takes a vector and returns the sqrt of the sum-of-squares.

cross :: r -> r -> r #

Smart constructor to cross product two expressions.

completeCase :: [(r, r)] -> r #

Smart constructor for case statements with a complete set of cases.

incompleteCase :: [(r, r)] -> r #

Smart constructor for case statements with an incomplete set of cases.

matrix :: [[r]] -> r #

Create a matrix. TODO: Re-work later.

m2x2 :: r -> r -> r -> r -> r #

Create a two-by-two matrix from four given values. For example:

>>> m2x2 1 2 3 4
[ [1,2],
  [3,4] ]

vec2D :: r -> r -> r #

Create a 2D vector (a matrix with two rows, one column). First argument is placed above the second.

dgnl2x2 :: r -> r -> r #

Creates a diagonal two-by-two matrix. For example:

>>> dgnl2x2 1 2
[ [1, 0],
  [0, 2] ]

apply :: (HasUID f, HasSymbol f) => f -> [r] -> r #

Applies a given function with a list of parameters.

applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r #

Similar to apply, but takes a relation to apply to FCall.

sy :: (HasUID c, HasSymbol c) => c -> r #

Create an Expr from a Symbolic Chunk.

Instances

Instances details
ExprC ModelExpr 
Instance details

Defined in Language.Drasil.Expr.Class

Methods

lit :: Literal -> ModelExpr #

($=) :: ModelExpr -> ModelExpr -> ModelExpr #

($!=) :: ModelExpr -> ModelExpr -> ModelExpr #

($<) :: ModelExpr -> ModelExpr -> ModelExpr #

($>) :: ModelExpr -> ModelExpr -> ModelExpr #

($<=) :: ModelExpr -> ModelExpr -> ModelExpr #

($>=) :: ModelExpr -> ModelExpr -> ModelExpr #

($.) :: ModelExpr -> ModelExpr -> ModelExpr #

addI :: ModelExpr -> ModelExpr -> ModelExpr #

addRe :: ModelExpr -> ModelExpr -> ModelExpr #

mulI :: ModelExpr -> ModelExpr -> ModelExpr #

mulRe :: ModelExpr -> ModelExpr -> ModelExpr #

($-) :: ModelExpr -> ModelExpr -> ModelExpr #

($/) :: ModelExpr -> ModelExpr -> ModelExpr #

($^) :: ModelExpr -> ModelExpr -> ModelExpr #

($=>) :: ModelExpr -> ModelExpr -> ModelExpr #

($<=>) :: ModelExpr -> ModelExpr -> ModelExpr #

($&&) :: ModelExpr -> ModelExpr -> ModelExpr #

($||) :: ModelExpr -> ModelExpr -> ModelExpr #

abs_ :: ModelExpr -> ModelExpr #

neg :: ModelExpr -> ModelExpr #

log :: ModelExpr -> ModelExpr #

ln :: ModelExpr -> ModelExpr #

sqrt :: ModelExpr -> ModelExpr #

sin :: ModelExpr -> ModelExpr #

cos :: ModelExpr -> ModelExpr #

tan :: ModelExpr -> ModelExpr #

sec :: ModelExpr -> ModelExpr #

csc :: ModelExpr -> ModelExpr #

cot :: ModelExpr -> ModelExpr #

arcsin :: ModelExpr -> ModelExpr #

arccos :: ModelExpr -> ModelExpr #

arctan :: ModelExpr -> ModelExpr #

exp :: ModelExpr -> ModelExpr #

dim :: ModelExpr -> ModelExpr #

norm :: ModelExpr -> ModelExpr #

negVec :: ModelExpr -> ModelExpr #

not_ :: ModelExpr -> ModelExpr #

idx :: ModelExpr -> ModelExpr -> ModelExpr #

defint :: Symbol -> ModelExpr -> ModelExpr -> ModelExpr -> ModelExpr #

defsum :: Symbol -> ModelExpr -> ModelExpr -> ModelExpr -> ModelExpr #

defprod :: Symbol -> ModelExpr -> ModelExpr -> ModelExpr -> ModelExpr #

realInterval :: HasUID c => c -> RealInterval ModelExpr ModelExpr -> ModelExpr #

euclidean :: [ModelExpr] -> ModelExpr #

cross :: ModelExpr -> ModelExpr -> ModelExpr #

completeCase :: [(ModelExpr, ModelExpr)] -> ModelExpr #

incompleteCase :: [(ModelExpr, ModelExpr)] -> ModelExpr #

matrix :: [[ModelExpr]] -> ModelExpr #

m2x2 :: ModelExpr -> ModelExpr -> ModelExpr -> ModelExpr -> ModelExpr #

vec2D :: ModelExpr -> ModelExpr -> ModelExpr #

dgnl2x2 :: ModelExpr -> ModelExpr -> ModelExpr #

apply :: (HasUID f, HasSymbol f) => f -> [ModelExpr] -> ModelExpr #

applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [ModelExpr] -> [(a, ModelExpr)] -> ModelExpr #

sy :: (HasUID c, HasSymbol c) => c -> ModelExpr #

ExprC Expr 
Instance details

Defined in Language.Drasil.Expr.Class

Methods

lit :: Literal -> Expr #

($=) :: Expr -> Expr -> Expr #

($!=) :: Expr -> Expr -> Expr #

($<) :: Expr -> Expr -> Expr #

($>) :: Expr -> Expr -> Expr #

($<=) :: Expr -> Expr -> Expr #

($>=) :: Expr -> Expr -> Expr #

($.) :: Expr -> Expr -> Expr #

addI :: Expr -> Expr -> Expr #

addRe :: Expr -> Expr -> Expr #

mulI :: Expr -> Expr -> Expr #

mulRe :: Expr -> Expr -> Expr #

($-) :: Expr -> Expr -> Expr #

($/) :: Expr -> Expr -> Expr #

($^) :: Expr -> Expr -> Expr #

($=>) :: Expr -> Expr -> Expr #

($<=>) :: Expr -> Expr -> Expr #

($&&) :: Expr -> Expr -> Expr #

($||) :: Expr -> Expr -> Expr #

abs_ :: Expr -> Expr #

neg :: Expr -> Expr #

log :: Expr -> Expr #

ln :: Expr -> Expr #

sqrt :: Expr -> Expr #

sin :: Expr -> Expr #

cos :: Expr -> Expr #

tan :: Expr -> Expr #

sec :: Expr -> Expr #

csc :: Expr -> Expr #

cot :: Expr -> Expr #

arcsin :: Expr -> Expr #

arccos :: Expr -> Expr #

arctan :: Expr -> Expr #

exp :: Expr -> Expr #

dim :: Expr -> Expr #

norm :: Expr -> Expr #

negVec :: Expr -> Expr #

not_ :: Expr -> Expr #

idx :: Expr -> Expr -> Expr #

defint :: Symbol -> Expr -> Expr -> Expr -> Expr #

defsum :: Symbol -> Expr -> Expr -> Expr -> Expr #

defprod :: Symbol -> Expr -> Expr -> Expr -> Expr #

realInterval :: HasUID c => c -> RealInterval Expr Expr -> Expr #

euclidean :: [Expr] -> Expr #

cross :: Expr -> Expr -> Expr #

completeCase :: [(Expr, Expr)] -> Expr #

incompleteCase :: [(Expr, Expr)] -> Expr #

matrix :: [[Expr]] -> Expr #

m2x2 :: Expr -> Expr -> Expr -> Expr -> Expr #

vec2D :: Expr -> Expr -> Expr #

dgnl2x2 :: Expr -> Expr -> Expr #

apply :: (HasUID f, HasSymbol f) => f -> [Expr] -> Expr #

applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [Expr] -> [(a, Expr)] -> Expr #

sy :: (HasUID c, HasSymbol c) => c -> Expr #

ExprC CodeExpr Source # 
Instance details

Defined in Language.Drasil.Code.Expr

Methods

lit :: Literal -> CodeExpr #

($=) :: CodeExpr -> CodeExpr -> CodeExpr #

($!=) :: CodeExpr -> CodeExpr -> CodeExpr #

($<) :: CodeExpr -> CodeExpr -> CodeExpr #

($>) :: CodeExpr -> CodeExpr -> CodeExpr #

($<=) :: CodeExpr -> CodeExpr -> CodeExpr #

($>=) :: CodeExpr -> CodeExpr -> CodeExpr #

($.) :: CodeExpr -> CodeExpr -> CodeExpr #

addI :: CodeExpr -> CodeExpr -> CodeExpr #

addRe :: CodeExpr -> CodeExpr -> CodeExpr #

mulI :: CodeExpr -> CodeExpr -> CodeExpr #

mulRe :: CodeExpr -> CodeExpr -> CodeExpr #

($-) :: CodeExpr -> CodeExpr -> CodeExpr #

($/) :: CodeExpr -> CodeExpr -> CodeExpr #

($^) :: CodeExpr -> CodeExpr -> CodeExpr #

($=>) :: CodeExpr -> CodeExpr -> CodeExpr #

($<=>) :: CodeExpr -> CodeExpr -> CodeExpr #

($&&) :: CodeExpr -> CodeExpr -> CodeExpr #

($||) :: CodeExpr -> CodeExpr -> CodeExpr #

abs_ :: CodeExpr -> CodeExpr #

neg :: CodeExpr -> CodeExpr #

log :: CodeExpr -> CodeExpr #

ln :: CodeExpr -> CodeExpr #

sqrt :: CodeExpr -> CodeExpr #

sin :: CodeExpr -> CodeExpr #

cos :: CodeExpr -> CodeExpr #

tan :: CodeExpr -> CodeExpr #

sec :: CodeExpr -> CodeExpr #

csc :: CodeExpr -> CodeExpr #

cot :: CodeExpr -> CodeExpr #

arcsin :: CodeExpr -> CodeExpr #

arccos :: CodeExpr -> CodeExpr #

arctan :: CodeExpr -> CodeExpr #

exp :: CodeExpr -> CodeExpr #

dim :: CodeExpr -> CodeExpr #

norm :: CodeExpr -> CodeExpr #

negVec :: CodeExpr -> CodeExpr #

not_ :: CodeExpr -> CodeExpr #

idx :: CodeExpr -> CodeExpr -> CodeExpr #

defint :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

defsum :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

defprod :: Symbol -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

realInterval :: HasUID c => c -> RealInterval CodeExpr CodeExpr -> CodeExpr #

euclidean :: [CodeExpr] -> CodeExpr #

cross :: CodeExpr -> CodeExpr -> CodeExpr #

completeCase :: [(CodeExpr, CodeExpr)] -> CodeExpr #

incompleteCase :: [(CodeExpr, CodeExpr)] -> CodeExpr #

matrix :: [[CodeExpr]] -> CodeExpr #

m2x2 :: CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr -> CodeExpr #

vec2D :: CodeExpr -> CodeExpr -> CodeExpr #

dgnl2x2 :: CodeExpr -> CodeExpr -> CodeExpr #

apply :: (HasUID f, HasSymbol f) => f -> [CodeExpr] -> CodeExpr #

applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [CodeExpr] -> [(a, CodeExpr)] -> CodeExpr #

sy :: (HasUID c, HasSymbol c) => c -> CodeExpr #

class LiteralC r where #

Methods

int :: Integer -> r #

str :: String -> r #

dbl :: Double -> r #

exactDbl :: Integer -> r #

perc :: Integer -> Integer -> r #

expr :: Expr -> CodeExpr Source #

Render an algebraic expression into our code expression language.