package org.matheclipse.core.eval.interfaces;

import org.matheclipse.core.interfaces.IAST;
import org.matheclipse.core.interfaces.IEvaluator;
import org.matheclipse.core.interfaces.IExpr;

/**
 * Common interface for built-in Symja functions.
 * 
 */
public interface IFunctionEvaluator extends IEvaluator {
	/**
	 * Symbolic evaluation of a function. ast.get(0) contains the head (i.e. the function symbol) of this
	 * abstract syntax tree (AST). ast.get(1) to ast.get(n) contains the first to n-th argument of the
	 * function.
* 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 * null value without throwing an exception!
* * @param ast * the abstract syntax tree (AST) which should be evaluated * @return the evaluated object or null, if evaluation isn't possible * @see org.matheclipse.core.eval.exception.Validate */ public IExpr evaluate(IAST ast); /** * Numeric evaluation of a function. ast.get(0) contains the head (i.e. the function symbol) of this * abstract syntax tree (AST). ast.get(1) to ast.get(n) contains the first to n-th argument of the * function.
* If necessary use the methods from the Validate class to check the number or types of arguments in the evaluate * method. * * @param ast * the abstract syntax tree (AST) which should be evaluated * @return the evaluated object or null, if evaluation isn't possible * @see org.matheclipse.core.eval.exception.Validate */ public IExpr numericEval(IAST ast); }

Ads help maintain this website.