Package org.matheclipse.core.builtin
Class PatternMatching.OptionValue
- java.lang.Object
-
- org.matheclipse.core.eval.interfaces.AbstractCoreFunctionEvaluator
-
- org.matheclipse.core.builtin.PatternMatching.OptionValue
-
- All Implemented Interfaces:
ICoreFunctionEvaluator
,IFunctionEvaluator
,IEvaluator
- Enclosing class:
- PatternMatching
public static class PatternMatching.OptionValue extends AbstractCoreFunctionEvaluator
-
-
Field Summary
-
Fields inherited from interface org.matheclipse.core.eval.interfaces.ICoreFunctionEvaluator
ARGS_EVALUATOR
-
Fields inherited from interface org.matheclipse.core.eval.interfaces.IFunctionEvaluator
ARGS_0_0, ARGS_0_1, ARGS_0_1_0, ARGS_0_2, ARGS_0_2_0, ARGS_0_3, ARGS_0_INFINITY, ARGS_1_1, ARGS_1_2, ARGS_1_2_0, ARGS_1_2_1, ARGS_1_2_2, ARGS_1_3, ARGS_1_3_0, ARGS_1_3_1, ARGS_1_3_2, ARGS_1_4, ARGS_1_4_0, ARGS_1_4_1, ARGS_1_4_2, ARGS_1_5, ARGS_1_5_1, ARGS_1_INFINITY, ARGS_1_INFINITY_0, ARGS_1_INFINITY_1, ARGS_2_2, ARGS_2_2_1, ARGS_2_3, ARGS_2_3_0, ARGS_2_3_1, ARGS_2_3_2, ARGS_2_4, ARGS_2_4_1, ARGS_2_4_2, ARGS_2_INFINITY, ARGS_3_3, ARGS_3_4, ARGS_3_5, ARGS_3_6, ARGS_3_INFINITY, ARGS_4_4, ARGS_5_5, ARGS_6_6
-
-
Constructor Summary
Constructors Constructor Description OptionValue()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IExpr
evaluate(IAST ast, EvalEngine engine)
Symbolic evaluation of a function.int[]
expectedArgSize(IAST ast)
At index 0 return the "from", at index 1 return the "to" number of arguments, which are expected by this function.void
setUp(ISymbol newSymbol)
Evaluate built-in rules and define Attributes for a function.-
Methods inherited from class org.matheclipse.core.eval.interfaces.AbstractCoreFunctionEvaluator
numericEval
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.matheclipse.core.interfaces.IEvaluator
await, setOptions
-
Methods inherited from interface org.matheclipse.core.eval.interfaces.IFunctionEvaluator
getOptionSymbols, numericFunction, print, status
-
-
-
-
Method Detail
-
evaluate
public IExpr evaluate(IAST ast, EvalEngine engine)
Description copied from class:AbstractCoreFunctionEvaluator
Symbolic evaluation of a function. The methodIExpr.head()
contains the head (i.e. the function symbol) of this abstract syntax tree (AST).From
ast.get(1)
toast.get(n)
theast
contains the first to n-th argument of the function (alternatively you get the first to fifth argument with the methodsIAST.arg1()
,IAST.arg2()
,IAST.arg3()
...IAST.arg5()
.Example: the expression
Binomial(n,m)
is represented as AST withast.head() <=> F.Binomial
,ast.arg1() <=> n
andast.arg2() <=> m
If necessary use the methods from the
Validate
class to check the number or types of arguments in the evaluate method.Note: if the symbolic evaluation isn't possible or no result is found the evaluate method returns with a
F.NIL
value without throwing an exception!- Specified by:
evaluate
in interfaceIFunctionEvaluator
- Specified by:
evaluate
in classAbstractCoreFunctionEvaluator
- Parameters:
ast
- the abstract syntax tree (AST) which should be evaluatedengine
- the users current evaluation engine- Returns:
- the evaluated object or
F#NIL
, if evaluation isn't possible - See Also:
Validate
-
expectedArgSize
public int[] expectedArgSize(IAST ast)
Description copied from interface:IFunctionEvaluator
At index 0 return the "from", at index 1 return the "to" number of arguments, which are expected by this function. If the returnedint
array has length 3, the function allows headers unequal to the built-in function name (i.e. the function can be in "operator form").- Parameters:
ast
- the abstract syntax tree (AST) those arguments should be checked- Returns:
null
if no range for the number of arguments is specified.
-
setUp
public void setUp(ISymbol newSymbol)
Description copied from class:AbstractCoreFunctionEvaluator
Evaluate built-in rules and define Attributes for a function.- Specified by:
setUp
in interfaceIEvaluator
- Overrides:
setUp
in classAbstractCoreFunctionEvaluator
- Parameters:
newSymbol
- the symbol which should be set up
-
-