/*
* 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.