ArraysCompiler
, ConfigurableLogicalFormulaCompiler
, FindUnitsCompiler
, FormulaCompiler
, FormulaCompilerLibSBML
, FormulaCompilerNoPiecewise
, HTMLFormula
, LaTeXCompiler
, LibSBMLFormulaCompiler
, MathMLCompiler
, StaticallyComputableCompiler
, UnitsCompiler
, ValidationUnitsCompiler
, VectorCompiler
public interface ASTNodeCompiler
ASTNode
s. It defines how to perform mathematical or
other operations on these data types. Recursion can be performed as follows:
public ASTNodeValue doSomeThing(ASTNode ast) { ... ASTNodeValue child = ast.compile(this); ... return new ASTNodeValue(doSomeThing(child), this); }
Modifier and Type | Method | Description |
---|---|---|
ASTNodeValue |
abs(ASTNode value) |
The absolute value represented by the given
ASTNode . |
ASTNodeValue |
and(java.util.List<ASTNode> values) |
|
ASTNodeValue |
arccos(ASTNode value) |
|
ASTNodeValue |
arccosh(ASTNode value) |
|
ASTNodeValue |
arccot(ASTNode value) |
|
ASTNodeValue |
arccoth(ASTNode value) |
|
ASTNodeValue |
arccsc(ASTNode value) |
|
ASTNodeValue |
arccsch(ASTNode value) |
|
ASTNodeValue |
arcsec(ASTNode value) |
|
ASTNodeValue |
arcsech(ASTNode value) |
|
ASTNodeValue |
arcsin(ASTNode value) |
|
ASTNodeValue |
arcsinh(ASTNode value) |
|
ASTNodeValue |
arctan(ASTNode value) |
|
ASTNodeValue |
arctanh(ASTNode value) |
|
ASTNodeValue |
ceiling(ASTNode value) |
|
ASTNodeValue |
compile(double mantissa,
int exponent,
java.lang.String units) |
Creates an
ASTNodeValue that represents a real number in
scientific notation, i.e., mantissa * 10^exponent, and the given units. |
ASTNodeValue |
compile(double real,
java.lang.String units) |
|
ASTNodeValue |
compile(int integer,
java.lang.String units) |
|
ASTNodeValue |
compile(java.lang.String name) |
A compiler will also have to deal with a name.
|
ASTNodeValue |
compile(CallableSBase variable) |
|
ASTNodeValue |
compile(Compartment c) |
|
ASTNodeValue |
cos(ASTNode value) |
|
ASTNodeValue |
cosh(ASTNode value) |
|
ASTNodeValue |
cot(ASTNode value) |
|
ASTNodeValue |
coth(ASTNode value) |
|
ASTNodeValue |
csc(ASTNode value) |
|
ASTNodeValue |
csch(ASTNode value) |
|
ASTNodeValue |
delay(java.lang.String delayName,
ASTNode x,
ASTNode delay,
java.lang.String timeUnits) |
Evaluates delay functions.
|
ASTNodeValue |
eq(ASTNode left,
ASTNode right) |
Equal.
|
ASTNodeValue |
exp(ASTNode value) |
|
ASTNodeValue |
factorial(ASTNode value) |
|
ASTNodeValue |
floor(ASTNode value) |
|
ASTNodeValue |
frac(int numerator,
int denominator) |
A fraction of two int values.
|
ASTNodeValue |
frac(ASTNode numerator,
ASTNode denominator) |
Fraction of two
ASTNode s |
ASTNodeValue |
function(java.lang.String functionDefinitionName,
java.util.List<ASTNode> args) |
|
ASTNodeValue |
function(FunctionDefinition functionDefinition,
java.util.List<ASTNode> args) |
|
ASTNodeValue |
functionCsymbol(ASTNode csymbol) |
Process an ASTNode that contain an extended csymbol function.
|
ASTNodeValue |
geq(ASTNode left,
ASTNode right) |
Greater equal.
|
ASTNodeValue |
getConstantAvogadro(java.lang.String name) |
Creates an
ASTNodeValue that represent's Avogadro's number. |
ASTNodeValue |
getConstantE() |
|
ASTNodeValue |
getConstantFalse() |
|
ASTNodeValue |
getConstantPi() |
|
ASTNodeValue |
getConstantTrue() |
|
ASTNodeValue |
getNegativeInfinity() |
|
ASTNodeValue |
getPositiveInfinity() |
|
ASTNodeValue |
getRateOf(ASTNode astNode) |
Returns the instantaneous rate of change, with respect to time, of an entity in the model.
|
ASTNodeValue |
gt(ASTNode left,
ASTNode right) |
Greater than.
|
ASTNodeValue |
implies(java.util.List<ASTNode> values) |
Returns the logical implies between two
ASTNode . |
ASTNodeValue |
lambda(java.util.List<ASTNode> values) |
The body of a
FunctionDefinition . |
ASTNodeValue |
leq(ASTNode left,
ASTNode right) |
Less equal.
|
ASTNodeValue |
ln(ASTNode value) |
Natural logarithm.
|
ASTNodeValue |
log(ASTNode value) |
Logarithm of the given value to base 10.
|
ASTNodeValue |
log(ASTNode base,
ASTNode value) |
Logarithm of the given value to the given base.
|
ASTNodeValue |
lt(ASTNode left,
ASTNode right) |
Less than.
|
ASTNodeValue |
max(java.util.List<ASTNode> values) |
Returns the maximum of the values.
|
ASTNodeValue |
min(java.util.List<ASTNode> values) |
Returns the minimum of the values.
|
ASTNodeValue |
minus(java.util.List<ASTNode> values) |
Subtraction.
|
ASTNodeValue |
neq(ASTNode left,
ASTNode right) |
Not equal.
|
ASTNodeValue |
not(ASTNode value) |
|
ASTNodeValue |
or(java.util.List<ASTNode> values) |
|
ASTNodeValue |
piecewise(java.util.List<ASTNode> values) |
|
ASTNodeValue |
plus(java.util.List<ASTNode> values) |
|
ASTNodeValue |
pow(ASTNode base,
ASTNode exponent) |
|
ASTNodeValue |
quotient(java.util.List<ASTNode> values) |
Returns the quotient of the division of the values.
|
ASTNodeValue |
rem(java.util.List<ASTNode> values) |
Returns the remainder of the division of the values.
|
ASTNodeValue |
root(double rootExponent,
ASTNode radiant) |
|
ASTNodeValue |
root(ASTNode rootExponent,
ASTNode radiant) |
|
ASTNodeValue |
sec(ASTNode value) |
|
ASTNodeValue |
sech(ASTNode value) |
|
ASTNodeValue |
selector(java.util.List<ASTNode> nodes) |
|
ASTNodeValue |
sin(ASTNode value) |
|
ASTNodeValue |
sinh(ASTNode value) |
|
ASTNodeValue |
sqrt(ASTNode radiant) |
Square root.
|
ASTNodeValue |
symbolTime(java.lang.String time) |
The simulation time.
|
ASTNodeValue |
tan(ASTNode value) |
|
ASTNodeValue |
tanh(ASTNode value) |
|
ASTNodeValue |
times(java.util.List<ASTNode> values) |
Product of all given
ASTNode s. |
ASTNodeValue |
uMinus(ASTNode value) |
Unary minus, i.e., negation of the given
ASTNode . |
ASTNodeValue |
unknownValue() |
Dealing with a malformed
ASTNode . |
ASTNodeValue |
vector(java.util.List<ASTNode> nodes) |
Dealing with a vector.
|
ASTNodeValue |
xor(java.util.List<ASTNode> values) |
Exclusive or.
|
ASTNodeValue abs(ASTNode value) throws SBMLException
ASTNode
.value
- Must be interpretable as a Number
.SBMLException
ASTNodeValue and(java.util.List<ASTNode> values) throws SBMLException
values
- SBMLException
ASTNodeValue arccos(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arccosh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arccot(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arccoth(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arccsc(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arccsch(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arcsec(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arcsech(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arcsin(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arcsinh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arctan(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue arctanh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue ceiling(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue compile(Compartment c)
c
- ASTNodeValue compile(double mantissa, int exponent, java.lang.String units)
ASTNodeValue
that represents a real number in
scientific notation, i.e., mantissa * 10^exponent, and the given units.mantissa
- The number to be multiplied with ten to the power of the given
exponent.exponent
- The exponent for the multiplier ten.units
- The identifier of the units object associated with the number
represented by this element. Can be null if no units have been
defined.ASTNodeValue compile(double real, java.lang.String units)
real
- units
- A String representing the Unit
of the given number.
This can be the identifier of a UnitDefinition
in the
model or a literal in Unit.Kind
. Can be null if no units
have been defined.ASTNodeValue compile(int integer, java.lang.String units)
integer
- units
- A String representing the Unit
of the given number.
This can be the identifier of a UnitDefinition
in the
model or a literal in Unit.Kind
. Can be null if no units
have been defined.ASTNodeValue compile(CallableSBase variable) throws SBMLException
variable
- SBMLException
ASTNodeValue compile(java.lang.String name)
Species
in the
system. In case of numerical computation, the ASTNodeCompiler
must create an ASTNodeValue
representing the current value of
this Species
.name
- ASTNodeValue cos(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue cosh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue cot(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue coth(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue csc(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue csch(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue delay(java.lang.String delayName, ASTNode x, ASTNode delay, java.lang.String timeUnits) throws SBMLException
delayName
- the name of this delay function.x
- delay
- an expression of a positive duration time (the amoutn of
delay)timeUnits
- the units for the delay.SBMLException
ASTNodeValue eq(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue exp(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue factorial(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue floor(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue frac(ASTNode numerator, ASTNode denominator) throws SBMLException
ASTNode
snumerator
- denominator
- SBMLException
ASTNodeValue frac(int numerator, int denominator) throws SBMLException
numerator
- denominator
- SBMLException
ASTNodeValue function(FunctionDefinition functionDefinition, java.util.List<ASTNode> args) throws SBMLException
functionDefinition
- args
- Values to be inserted into the parameter list of the
function.SBMLException
ASTNodeValue function(java.lang.String functionDefinitionName, java.util.List<ASTNode> args) throws SBMLException
functionDefinitionName
- args
- Values to be inserted into the parameter list of the
function.SBMLException
ASTNodeValue functionCsymbol(ASTNode csymbol) throws SBMLException
csymbol
- SBMLException
ASTNodeValue geq(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue getConstantAvogadro(java.lang.String name)
ASTNodeValue
that represent's Avogadro's number.
Optionally, the compiler may associate the given name with this number.name
- An optional name for Avogadro's number.ASTNodeValue getConstantE()
ASTNodeValue getConstantFalse()
ASTNodeValue getConstantPi()
ASTNodeValue getConstantTrue()
ASTNodeValue getNegativeInfinity() throws SBMLException
SBMLException
ASTNodeValue getPositiveInfinity()
ASTNodeValue gt(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue lambda(java.util.List<ASTNode> values) throws SBMLException
FunctionDefinition
.values
- Place holders for arguments.SBMLException
ASTNodeValue leq(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue ln(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue log(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue log(ASTNode base, ASTNode value) throws SBMLException
base
- value
- SBMLException
ASTNodeValue lt(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue minus(java.util.List<ASTNode> values) throws SBMLException
values
- SBMLException
ASTNodeValue neq(ASTNode left, ASTNode right) throws SBMLException
left
- right
- SBMLException
ASTNodeValue not(ASTNode value) throws SBMLException
value
- This value must be interpretable as a Boolean
.SBMLException
ASTNodeValue or(java.util.List<ASTNode> values) throws SBMLException
values
- These values must be interpretable as a Boolean
.SBMLException
ASTNodeValue piecewise(java.util.List<ASTNode> values) throws SBMLException
values
- SBMLException
ASTNodeValue plus(java.util.List<ASTNode> values) throws SBMLException
values
- SBMLException
ASTNodeValue pow(ASTNode base, ASTNode exponent) throws SBMLException
base
- exponent
- SBMLException
ASTNodeValue root(ASTNode rootExponent, ASTNode radiant) throws SBMLException
rootExponent
- radiant
- SBMLException
ASTNodeValue root(double rootExponent, ASTNode radiant) throws SBMLException
rootExponent
- radiant
- SBMLException
ASTNodeValue sec(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue sech(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue selector(java.util.List<ASTNode> nodes) throws SBMLException
nodes
- SBMLException
ASTNodeValue sin(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue sinh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue sqrt(ASTNode radiant) throws SBMLException
radiant
- This value must be interpretable as a Number
.SBMLException
ASTNodeValue symbolTime(java.lang.String time)
time
- The name of the time symbol.ASTNodeValue
that represents the current time.ASTNodeValue tan(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue tanh(ASTNode value) throws SBMLException
value
- SBMLException
ASTNodeValue times(java.util.List<ASTNode> values) throws SBMLException
ASTNode
s.values
- These values must be interpretable to Number
.SBMLException
ASTNodeValue uMinus(ASTNode value) throws SBMLException
ASTNode
.value
- SBMLException
ASTNodeValue unknownValue() throws SBMLException
ASTNode
.SBMLException
ASTNodeValue vector(java.util.List<ASTNode> nodes) throws SBMLException
nodes
- SBMLException
ASTNodeValue xor(java.util.List<ASTNode> values) throws SBMLException
values
- It must be possible to evaluate the given values to
Boolean
.SBMLException
ASTNodeValue max(java.util.List<ASTNode> values)
values
- ASTNodeValue min(java.util.List<ASTNode> values)
values
- ASTNodeValue quotient(java.util.List<ASTNode> values)
values
- SBMLException
- if there are not two and only two arguments
and it is a problem for the ASTNodeCompiler
.ASTNodeValue rem(java.util.List<ASTNode> values)
values
- SBMLException
- if there are not two and only two arguments
and it is a problem for the ASTNodeCompiler
.ASTNodeValue implies(java.util.List<ASTNode> values)
children
- ASTNode
.SBMLException
- if there are not two and only two arguments
and it is a problem for the ASTNodeCompiler
.ASTNodeValue getRateOf(ASTNode astNode)
It is a function that takes a single argument, an identifier of
type SId . The allowable identifiers for use with rateOf in SBML Level 3 Version 2 Core are restricted
to those of Compartment
, LocalParameter
, Parameter
, Species
, and SpeciesReference
objects in the
enclosing model; in addition, SBML Level 3 packages may define entities with mathematical meaning
whose rateOf 's can be referenced. Note that rateOf is not allowed for Reaction
objects, because their
identifiers already represent the rate of change of the reaction, and calculating second derivatives is
beyond the scope of this construct. Likewise, there is no sensible meaning to be given to the rateOf of
a FunctionDefinition, Event, Priority, Delay, or other SBML entities.
astNode
- an ASTNode representing an identifier