hep.aida
Interface IFunction

All Known Subinterfaces:
IManagedFunction, IModelFunction
All Known Implementing Classes:
AbstractDevModelFunction, AbstractIFunction, BaseModelFunction, BreitWigner, Exponent, ExponentModelFunction, Gauss, InternalFitFunction, JELBaseModelFunction, Landau, NegativeBinomial, NonParametricFunction, P0, P1, P2, P3, P4, P5, P6, Poisson, PolynomialModelFunction, Pow, PowModified, SumOfFunctions, UserFunction

public interface IFunction

Principal user-level function interface. Function is a self contained object, which remembers the current value of its parameters which are simple doubles. IFunction may be directly plotted or fitted. The standard convention of referring to variables by name: "x[0]" corresponds to variable number 0 etc.


Method Summary
 IAnnotation annotation()
           
 String codeletString()
          String describing the metatype and implementation of the function.
 int dimension()
          Dimensionality of the domain space.
 double[] gradient(double[] x)
          Gradient of the function.
 int indexOfParameter(String name)
          Return -1 if parameter not found (name undefined).
 boolean isEqual(IFunction f)
          Compare if functions are the same.
 String normalizationParameter()
          Returns the name of the normalization parameter if the function has one.
 int numberOfParameters()
          Number of parameters.
 double parameter(String name)
           
 String[] parameterNames()
          Names of paramaters.
 double[] parameters()
          Retrieve current vector of parameters.
 boolean providesGradient()
          Determine whether function is able to compute gradient.
 void setParameter(String name, double x)
          Set parameter's value by name.
 void setParameters(double[] params)
          Set new vector of parameters.
 void setTitle(String title)
          Set the histogram title.
 String title()
          Get the Function's title.
 double value(double[] x)
          Scalar value of the function.
 String variableName(int i)
          Get the symbolic name of i-th variable.
 String[] variableNames()
          Get all the names in a vector.
 

Method Detail

title

String title()
Get the Function's title.

Returns:
The Function's title.

setTitle

void setTitle(String title)
              throws IllegalArgumentException
Set the histogram title.

Parameters:
title - The title.
Throws:
IllegalArgumentEception - If title cannot be changed.
IllegalArgumentException

value

double value(double[] x)
Scalar value of the function.


dimension

int dimension()
Dimensionality of the domain space.


isEqual

boolean isEqual(IFunction f)
Compare if functions are the same. PENDING: define exactly what it means ;)


gradient

double[] gradient(double[] x)
Gradient of the function. The result is valid only if providesGradient()==true. Otherwise the result is some default (empty) vector.


providesGradient

boolean providesGradient()
Determine whether function is able to compute gradient.


variableName

String variableName(int i)
Get the symbolic name of i-th variable.


variableNames

String[] variableNames()
Get all the names in a vector.


setParameters

void setParameters(double[] params)
                   throws IllegalArgumentException
Set new vector of parameters.

Throws:
IllegalArgumentException

parameters

double[] parameters()
Retrieve current vector of parameters.


numberOfParameters

int numberOfParameters()
Number of parameters.


parameterNames

String[] parameterNames()
Names of paramaters. Names should be unique. Case-insensitive for comparison. Case-sensitive for storage and output. All or several names may be left blank "" if the implementation does not want to provide them.


setParameter

void setParameter(String name,
                  double x)
                  throws IllegalArgumentException
Set parameter's value by name.

Parameters:
name - The name of the parameter.
x - The new value of the parameter.
Throws:
IllegalArgumentException - If name does not correspond to a parameter.

parameter

double parameter(String name)

indexOfParameter

int indexOfParameter(String name)
Return -1 if parameter not found (name undefined). Leave it because there are use cases - some users prefer to use numbers.


annotation

IAnnotation annotation()

codeletString

String codeletString()
String describing the metatype and implementation of the function. Generic format of the string: codelet:TYPE:LOCATION TYPE part contains only a 'typename' string which is a metatype identifier (used in plugins and catalogues) LOCATION may be: 'file', 'verbatim', or 'catalogue' Detailed description: codelet:typename - no location specified (using 'catalogue') codelet:typename:file:/filename.cpp - a c++ source file codelet:typename:file:/filename.py - a python source file codelet:typename:file:/filename.so - a shared library codelet:typename:catalogue - entry in a catalogue repository codelet:typename:verbatim:cpp \n - c++ source file included verbatim after \n codelet:typename:verbatim:py \n - python source file included verbatim aftern \n Comments: file:/filename is a relative path to $AIDA_FUNCTION_DEFAULT_DIR file://filename is an absolute path Examples: codelet:G:catalogue codelet:userSinus:verbatim:cpp \n { return sin(x); }


normalizationParameter

String normalizationParameter()
Returns the name of the normalization parameter if the function has one.

Returns:
The name of the normalization parameter.null if no such parameter is available


jHepWork 3.2 © jWork.org