/*
 * FunctionCore.java
 *
 * Created on September 4, 2002, 6:15 AM
 */

package hep.aida.ref.function;


/**
 *
 * @author  serbo
 */

// Creates FunctionCore from a String expression
public  class JELFunctionCore extends FunctionCore {

    private String expression;
    private boolean providesGradient;

    private JELCompiledExpression compExpression;
    private JELCompiledExpression[] compGradient;

    public JELFunctionCore(int dim, int nPar, String expr, String[] pNames, String[] gradient) {
	super(dim, nPar);

	if (expr != null && !expr.equals("")) expression = expr;
	else
	    throw new IllegalArgumentException("Can not create function from an empty script!");

	// Check parameter names
	if (pNames!= null && nPar != pNames.length)
	    throw new IllegalArgumentException("Number of parameters ("+nPar+
					       ") is different from number of parameter names ("+pNames.length+")");
	// Create JEL compiled expression
	compExpression = new JELCompiledExpression(dimension, numberOfParameters, expression, pNames);

	// Setup and compile gradients
	compGradient = null;
	if (gradient != null && gradient.length > 0) { 
	    providesGradient = true; 
	    compGradient = new JELCompiledExpression[dim];
	    for (int i=0; i 

Ads help maintain this website.