h2. Introduction
The purpose of this document is to illustrate the use of functions and to provide some fitting use cases using the [JAIDA|http://java.freehep.org/jaida], our java implementation of the [AIDA|http://aida.freehep.org] interfaces.
JAIDA can be used either as a standalone package or within [JAS3|http://jas.freehep.org/jas3]; for this reason all the scripts or java programs presented in this document can be run either inside JAS3 or outside of it. When running JAS3 the user has the added feature of being able to perfom fits using the GUI; part of this document will focus on GUI fitting within JAS3.
Finally details of our implementation will be provided to allow the user to advanced fitting/function operations that are currently not possible through the AIDA interfaces.
* [Function Creation]
** [Pre-defined Functions|Function Creation# Pre-defined Functions]
** [User Defined Functions|Function Creation#User Defined Functions]
*** [Scripted Functions|Function Creation#Scripted Functions]
*** [Coded Functions|Function Creation#Coded Functions]
* [Function Normalization]
* [Function Catalog]
** [Registering User Defined Functions|Function Catalog#Registering User Defined Functions]
** [Codelet|Function Catalog#Codelet]
* [Fitter]
** [Controlling The Parameters|Fitter#Controlling The Parameters]
** [Setting Constraints|Fitter#Setting Constraints]
* [Fitting]
** [Cloning When Fitting|Fitting#Cloning When Fitting]
** [Fit Result|Fitting#Fit Result]
* [Performing Simple Binned Fits]
** [Gaussian Fit To An Histogram|Performing Simple Binned Fits#Gaussian Fit To An Histogram]
** [Fit To A Data Point Set|Performing Simple Binned Fits#Fit To A Data Point Set]
* [Performing Simple Unbinned Fits]
* [Fitting Through The GUI]
** [Configuring The Fit|Fitting Through The GUI#Configuring The Fit]
* [Advanced Fitting]
** [Correlations]
** [Constraints]
** [Simultenous Fits]
* [Model Building]