public abstract class AbstractArgMultiple extends AbstractArg2
Constructor and Description |
---|
AbstractArgMultiple() |
Modifier and Type | Method and Description |
---|---|
IExpr |
binaryOperator(IExpr o0,
IExpr o1) |
void |
defineHashRule(IExpr lhs1,
IExpr lhs2,
IExpr rhs,
IExpr condition)
Define the rule for the
Orderless operator OP. |
abstract IExpr |
e2IntArg(IInteger i0,
IInteger i1) |
IExpr |
evaluate(IAST ast,
EvalEngine engine)
Symbolic evaluation of a function.
|
IAST |
evaluateHashs(IAST ast) |
HashedOrderlessMatcher |
getHashRuleMap() |
void |
setUpHashRule(java.lang.String lhs1Str,
java.lang.String lhs2Str,
java.lang.String rhsStr) |
void |
setUpHashRule(java.lang.String lhs1Str,
java.lang.String lhs2Str,
java.lang.String rhsStr,
java.lang.String conditionStr) |
void |
setUpHashRule2(IExpr lhs1,
IExpr lhs2,
IExpr rhs,
IExpr condition) |
e2ApcomplexArg, e2ApfloatArg, e2ComArg, e2DblArg, e2DblComArg, e2FraArg, e2FunArg, e2ObjArg, e2SymArg, eComFraArg, eComIntArg, eFunIntArg
createRuleFromMethod, getNormalizedNegativeExpression, getNormalizedNegativeExpression, getPeriodicParts, getPureImaginaryPart, getRuleAST, initSerializedRules, isNegativeExpression, setUp
numericEval
public IExpr evaluate(IAST ast, EvalEngine engine)
AbstractFunctionEvaluator
ast.get(0)
(or alternatively ast.head()
) contains the
head (i.e. the function symbol) of this abstract syntax tree (AST). ast.arg1()
to ast.get(n)
the ast
contains the first to n-th argument of the
function (alternatively you get the first to fifth argument with the methods arg1()
, arg2()
,...
arg5()
).Validate
class to check the number or types of arguments in the evaluate
method.null
value without throwing an exception!evaluate
in interface IFunctionEvaluator
evaluate
in class AbstractArg2
ast
- the abstract syntax tree (AST) which should be evaluatedengine
- the users current evaluation enginenull
, if evaluation isn't possibleValidate
,
IExpr.head()
,
IAST.arg1()
,
IAST.arg2()
,
IAST.arg3()
public HashedOrderlessMatcher getHashRuleMap()
public void defineHashRule(IExpr lhs1, IExpr lhs2, IExpr rhs, IExpr condition)
Orderless
operator OP.
OP[lhs1, lhs2, ...] := OP[rhs, ...] /; condition
lhs1
- lhs2
- rhs
- condition
- HashedOrderlessMatcher.defineHashRule(org.matheclipse.core.interfaces.IExpr,
org.matheclipse.core.interfaces.IExpr, org.matheclipse.core.interfaces.IExpr, org.matheclipse.core.interfaces.IExpr)
public void setUpHashRule2(IExpr lhs1, IExpr lhs2, IExpr rhs, IExpr condition)
lhs1
- lhs2
- rhs
- condition
- HashedOrderlessMatcher.defineHashRule(org.matheclipse.core.interfaces.IExpr,
org.matheclipse.core.interfaces.IExpr, org.matheclipse.core.interfaces.IExpr, org.matheclipse.core.interfaces.IExpr)
public void setUpHashRule(java.lang.String lhs1Str, java.lang.String lhs2Str, java.lang.String rhsStr, java.lang.String conditionStr) throws SyntaxError
lhs1Str
- lhs2Str
- rhsStr
- conditionStr
- SyntaxError
HashedOrderlessMatcher.defineHashRule(java.lang.String, java.lang.String,
java.lang.String, java.lang.String)
public void setUpHashRule(java.lang.String lhs1Str, java.lang.String lhs2Str, java.lang.String rhsStr) throws SyntaxError
lhs1Str
- lhs2Str
- rhsStr
- SyntaxError
HashedOrderlessMatcher.defineHashRule(java.lang.String, java.lang.String,
java.lang.String)
public IExpr binaryOperator(IExpr o0, IExpr o1)
binaryOperator
in class AbstractArg2
public abstract IExpr e2IntArg(IInteger i0, IInteger i1)
e2IntArg
in class AbstractArg2