org.simulator.sbml.astnode
Class ASTNodeInterpreter

java.lang.Object
  extended by org.simulator.sbml.astnode.ASTNodeInterpreter

public class ASTNodeInterpreter
extends Object

This class is an efficient ASTNodeInterpreter that takes the time of the calculation into account. It contains functions similar to the ASTNodeCompiler interface, which have the current time as additional argument.

Since:
1.0
Version:
$Rev: 203 $
Author:
Roland Keller

Field Summary
static Logger logger
          A logger.
 
Constructor Summary
ASTNodeInterpreter(SBMLValueHolder valueHolder)
           
 
Method Summary
 double abs(ASTNodeValue userObject, double time)
           
 boolean and(List<ASTNodeValue> nodes, int size, double time)
           
 double arccos(ASTNodeValue userObject, double time)
           
 double arccosh(ASTNodeValue userObject, double time)
           
 double arccot(ASTNodeValue userObject, double time)
           
 double arccoth(ASTNodeValue userObject, double time)
           
 double arccsc(ASTNodeValue userObject, double time)
           
 double arccsch(ASTNodeValue userObject, double time)
           
 double arcsec(ASTNodeValue userObject, double time)
           
 double arcsech(ASTNodeValue userObject, double time)
           
 double arcsin(ASTNodeValue userObject, double time)
           
 double arcsinh(ASTNodeValue userObject, double time)
           
 double arctan(ASTNodeValue userObject, double time)
           
 double arctanh(ASTNodeValue userObject, double time)
           
 double ceiling(ASTNodeValue userObject, double time)
           
 double compile(double mantissa, int exponent, String units)
           
 double compile(double value, String units)
           
 boolean compileBoolean(CallableSBase nsb, double time)
           
 double compileDouble(CallableSBase nsb, double time)
           
 double compileDouble(String name, double time)
           
 String compileString(ASTNode child)
           
 String compileString(ASTNodeValue child)
           
 double cos(ASTNodeValue userObject, double time)
           
 double cosh(ASTNodeValue userObject, double time)
           
 double cot(ASTNodeValue userObject, double time)
           
 double coth(ASTNodeValue userObject, double time)
           
 double csc(ASTNodeValue userObject, double time)
           
 double csch(ASTNodeValue userObject, double time)
           
 double delay(String delayName, ASTNodeValue x, ASTNodeValue delay, String timeUnits, double time)
           
 boolean eq(ASTNodeValue left, ASTNodeValue right, double time)
           
 double exp(ASTNodeValue userObject, double time)
           
 double factorial(ASTNodeValue userObject, double time)
           
 double floor(ASTNodeValue userObject, double time)
           
 double frac(ASTNodeValue left, ASTNodeValue right, double time)
           
 double frac(int numerator, int denominator)
           
 boolean functionBoolean(ASTNodeValue rightChild, List<String> variables, List<ASTNodeValue> arguments, double[] values, double time)
           
 boolean functionBoolean(String name, List<ASTNodeValue> children)
           
 double functionDouble(ASTNodeValue rightChild, List<String> variables, List<ASTNodeValue> arguments, int nArguments, double[] values, double time)
           
 double functionDouble(String functionDefinitionName, List<ASTNodeValue> args, double time)
           
 boolean geq(ASTNodeValue left, ASTNodeValue right, double time)
           
 boolean gt(ASTNodeValue left, ASTNodeValue right, double time)
           
 boolean lambdaBoolean(List<ASTNodeValue> nodes, double time)
           
 double lambdaDouble(List<ASTNodeValue> nodes, double time)
           
 boolean leq(ASTNodeValue left, ASTNodeValue right, double time)
           
 double ln(ASTNodeValue userObject, double time)
           
 double log(ASTNodeValue left, ASTNodeValue right, double time)
           
 double log(ASTNodeValue userObject, double time)
           
 boolean lt(ASTNodeValue left, ASTNodeValue right, double time)
           
 double minus(List<ASTNodeValue> nodes, int size, double time)
           
 boolean neq(ASTNodeValue left, ASTNodeValue right, double time)
           
 boolean not(ASTNodeValue node, double time)
           
 boolean or(List<ASTNodeValue> nodes, double time)
           
 double piecewise(List<ASTNodeValue> nodes, double time)
           
 double plus(List<ASTNodeValue> nodes, int size, double time)
           
 double pow(ASTNodeValue left, ASTNodeValue right, double time)
           
 double root(ASTNodeValue rootExponent, ASTNodeValue radiant, double time)
           
 double root(double rootExponent, ASTNodeValue userObject, double time)
           
 double sec(ASTNodeValue userObject, double time)
           
 double sech(ASTNodeValue userObject, double time)
           
 double sin(ASTNodeValue userObject, double time)
           
 double sinh(ASTNodeValue userObject, double time)
           
 double sqrt(ASTNodeValue userObject, double time)
           
 double symbolTime(String name)
           
 double tan(ASTNodeValue userObject, double time)
           
 double tanh(ASTNodeValue userObject, double time)
           
 double times(List<ASTNodeValue> nodes, int size, double time)
           
 String toString(ASTNode value)
           
 double uMinus(ASTNodeValue userObject, double time)
           
 boolean xor(List<ASTNodeValue> nodes, double time)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

public static final Logger logger
A logger.

Constructor Detail

ASTNodeInterpreter

public ASTNodeInterpreter(SBMLValueHolder valueHolder)
Parameters:
valueHolder -
Method Detail

toString

public final String toString(ASTNode value)
Parameters:
value -
Returns:

compileDouble

public double compileDouble(String name,
                            double time)
Parameters:
name -
time -
Returns:

compileDouble

public double compileDouble(CallableSBase nsb,
                            double time)
Parameters:
nsb -
time -
Returns:

compileBoolean

public boolean compileBoolean(CallableSBase nsb,
                              double time)
Parameters:
nsb -
time -
Returns:

functionDouble

public double functionDouble(ASTNodeValue rightChild,
                             List<String> variables,
                             List<ASTNodeValue> arguments,
                             int nArguments,
                             double[] values,
                             double time)
Parameters:
rightChild -
variables -
arguments -
nArguments -
values -
time -
Returns:

compileString

public String compileString(ASTNodeValue child)
Parameters:
child -
Returns:

compileString

public String compileString(ASTNode child)
Parameters:
child -
Returns:

lambdaDouble

public double lambdaDouble(List<ASTNodeValue> nodes,
                           double time)
Parameters:
nodes -
time -
Returns:

lambdaBoolean

public boolean lambdaBoolean(List<ASTNodeValue> nodes,
                             double time)
Parameters:
nodes -
time -
Returns:

piecewise

public double piecewise(List<ASTNodeValue> nodes,
                        double time)
Parameters:
nodes -
time -
Returns:

log

public double log(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

log

public double log(ASTNodeValue left,
                  ASTNodeValue right,
                  double time)
Parameters:
left -
right -
time -
Returns:

functionDouble

public double functionDouble(String functionDefinitionName,
                             List<ASTNodeValue> args,
                             double time)
Parameters:
functionDefinitionName -
args -
time -
Returns:

tanh

public double tanh(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

tan

public double tan(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

sinh

public double sinh(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

sin

public double sin(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

sech

public double sech(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

sec

public double sec(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

root

public double root(ASTNodeValue rootExponent,
                   ASTNodeValue radiant,
                   double time)
Parameters:
rootExponent -
radiant -
time -
Returns:

root

public double root(double rootExponent,
                   ASTNodeValue userObject,
                   double time)
Parameters:
rootExponent -
userObject -
time -
Returns:

ln

public double ln(ASTNodeValue userObject,
                 double time)
Parameters:
userObject -
time -
Returns:

floor

public double floor(ASTNodeValue userObject,
                    double time)
Parameters:
userObject -
time -
Returns:

factorial

public double factorial(ASTNodeValue userObject,
                        double time)
Parameters:
userObject -
time -
Returns:

exp

public double exp(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

csch

public double csch(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

csc

public double csc(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

coth

public double coth(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

cot

public double cot(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

cosh

public double cosh(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

cos

public double cos(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

ceiling

public double ceiling(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arctanh

public double arctanh(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

functionBoolean

public boolean functionBoolean(String name,
                               List<ASTNodeValue> children)
Parameters:
name -
children -
Returns:

functionBoolean

public boolean functionBoolean(ASTNodeValue rightChild,
                               List<String> variables,
                               List<ASTNodeValue> arguments,
                               double[] values,
                               double time)
Parameters:
rightChild -
variables -
arguments -
values -
time -
Returns:

lt

public boolean lt(ASTNodeValue left,
                  ASTNodeValue right,
                  double time)
Parameters:
left -
right -
time -
Returns:

leq

public boolean leq(ASTNodeValue left,
                   ASTNodeValue right,
                   double time)
Parameters:
left -
right -
time -
Returns:

neq

public boolean neq(ASTNodeValue left,
                   ASTNodeValue right,
                   double time)
Parameters:
left -
right -
time -
Returns:

gt

public boolean gt(ASTNodeValue left,
                  ASTNodeValue right,
                  double time)
Parameters:
left -
right -
time -
Returns:

geq

public boolean geq(ASTNodeValue left,
                   ASTNodeValue right,
                   double time)
Parameters:
left -
right -
time -
Returns:

eq

public boolean eq(ASTNodeValue left,
                  ASTNodeValue right,
                  double time)
Parameters:
left -
right -
time -
Returns:

not

public boolean not(ASTNodeValue node,
                   double time)
Parameters:
node -
time -
Returns:

or

public boolean or(List<ASTNodeValue> nodes,
                  double time)
Parameters:
nodes -
time -
Returns:

xor

public boolean xor(List<ASTNodeValue> nodes,
                   double time)
Parameters:
nodes -
time -
Returns:

and

public boolean and(List<ASTNodeValue> nodes,
                   int size,
                   double time)
Parameters:
nodes -
time -
Returns:

arctan

public double arctan(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

arcsinh

public double arcsinh(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arcsin

public double arcsin(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

arcsech

public double arcsech(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arcsec

public double arcsec(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

arccsch

public double arccsch(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arccsc

public double arccsc(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

arccoth

public double arccoth(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arccot

public double arccot(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

arccosh

public double arccosh(ASTNodeValue userObject,
                      double time)
Parameters:
userObject -
time -
Returns:

arccos

public double arccos(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns:

abs

public double abs(ASTNodeValue userObject,
                  double time)
Parameters:
userObject -
time -
Returns:

compile

public double compile(double mantissa,
                      int exponent,
                      String units)
Parameters:
mantissa -
exponent -
units -
Returns:

delay

public final double delay(String delayName,
                          ASTNodeValue x,
                          ASTNodeValue delay,
                          String timeUnits,
                          double time)
Parameters:
delayName -
x -
delay -
timeUnits -
time -
Returns:

symbolTime

public double symbolTime(String name)
Parameters:
name -
Returns:

frac

public double frac(int numerator,
                   int denominator)
Parameters:
numerator -
denominator -
Returns:

frac

public double frac(ASTNodeValue left,
                   ASTNodeValue right,
                   double time)
Parameters:
left -
right -
time -
Returns:

times

public double times(List<ASTNodeValue> nodes,
                    int size,
                    double time)
Parameters:
nodes -
size -
time -
Returns:

minus

public double minus(List<ASTNodeValue> nodes,
                    int size,
                    double time)
Parameters:
nodes -
size -
time -
Returns:

plus

public double plus(List<ASTNodeValue> nodes,
                   int size,
                   double time)
Parameters:
nodes -
size -
time -
Returns:

pow

public double pow(ASTNodeValue left,
                  ASTNodeValue right,
                  double time)
Parameters:
left -
right -
time -
Returns:

compile

public double compile(double value,
                      String units)
Parameters:
value -
units -
Returns:

sqrt

public double sqrt(ASTNodeValue userObject,
                   double time)
Parameters:
userObject -
time -
Returns:

uMinus

public double uMinus(ASTNodeValue userObject,
                     double time)
Parameters:
userObject -
time -
Returns: