AIDA API
Version 3.3

hep.aida
Interface IModelFunction

All Superinterfaces:
IFunction

public interface IModelFunction
extends IFunction

The IModelFunction interface extends a basic IFunction with methods needed to obtain high performance fitting. By providing analytical values for the parameter's gradient and the function's normalization, such quantities will not be evaluated numerically. A user implementing a function should impmenent an IModelFunction when higher performance fitting is required. OPEN QUESTIONS: How to treat normalization at user level? Two possibilities: - we have "Gauss" and "NormalizedGauss", the first one user cannot use for ML fit - we have only one "Gauss" function, but it's smart and when normalized, gets rid of one of its parameters Normalization range might be set directly on the function by the user? Now we set it in the data pipe, Victor thinks that it is not very clear and should be on the function ;)

Author:
The AIDA team (http://aida.freehep.org/)

Method Summary
 void excludeNormalizationAll()
          Set empty range in all axes.
 void includeNormalizationAll()
          Set full range in all axes.
 boolean isNormalized()
          Return true if normalization is currently switched on.
 IRangeSet normalizationRange(int iAxis)
          Set the normalization range from -inf to +inf in the i-th axis (dimension).
 void normalize(boolean on)
          Normalize by internally adjusting some of the parameters.
 double[] parameterGradient(double[] x)
          Compute gradient with respect to parameters.
 boolean providesNormalization()
           
 boolean providesParameterGradient()
          Return true if provides parameter gradient.
 
Methods inherited from interface hep.aida.IFunction
annotation, codeletString, dimension, gradient, indexOfParameter, isEqual, normalizationParameter, numberOfParameters, parameter, parameterNames, parameters, providesGradient, setParameter, setParameters, setTitle, title, value, variableName, variableNames
 

Method Detail

providesNormalization

public boolean providesNormalization()

normalize

public void normalize(boolean on)
Normalize by internally adjusting some of the parameters. When normalization is on then integral of the function in the normalization range equals to 1.


isNormalized

public boolean isNormalized()
Return true if normalization is currently switched on.


parameterGradient

public double[] parameterGradient(double[] x)
Compute gradient with respect to parameters.


providesParameterGradient

public boolean providesParameterGradient()
Return true if provides parameter gradient.


normalizationRange

public IRangeSet normalizationRange(int iAxis)
Set the normalization range from -inf to +inf in the i-th axis (dimension). Full range is the default if not set otherwise. It is still possible to evaluate function outside of the normalization range. PENDING: no methods to retrieve current range!


includeNormalizationAll

public void includeNormalizationAll()
Set full range in all axes.


excludeNormalizationAll

public void excludeNormalizationAll()
Set empty range in all axes.


AIDA API
Version 3.3

Copyright © 2000-2004 AIDA Team, All Rights Reserved.