Parent Directory
|
Revision Log
import changes from math development branches for subdirectory math. List of changes in detail:
mathcore:
---------
MinimizerOptions:
new class for storing Minimizer option, with static default values that can be
changed by the user
FitConfig:
- use default values from MinimizerOption class
- rename method to create parameter settings from a function
FitUtil.cxx:
improve the derivative calculations used in the effective chi2 and in Fumili and
fix a bug for evaluation of likelihood or chi2 terms.
In EvaluatePdf() work and return the log of the pdf.
FitResult:
- improve the class by adding extra information like, num. of free parameters,
minimizer status, global correlation coefficients, information about fixed
and bound parameters.
- add method for getting fit confidence intervals
- improve print method
DataRange:
add method SetRange to distinguish from AddRange. SetRange deletes the existing
ranges.
ParamsSettings: make few methods const
FCN functions (Chi2FCN, LogLikelihoodFCN, etc..)
move some common methods and data members in base class (FitMethodFunction)
RootFinder: add template Solve() for any callable function.
mathmore:
--------
minimizer classes: fill status information
GSLNLSMinimizer: return error and covariance matrix
minuit2:
-------
Minuit2Minimizer: fill status information
DavidonErrorUpdator: check that delgam or gvg are not zero ( can happen when dg = 0)
FumiliFCNAdapter: work on the log of pdf
minuit:
-------
TLinearMinimizer: add support for robust fitting
TMinuitMinimizer: fill status information and fix a bug in filling the correlation matrix.
fumili:
------
add TFumiliMinimizer:
wrapper class for TFumili using Minimizer interface
// @(#)root/minuit2:$Id$
// Author: L. Moneta 10/2006
/**********************************************************************
* *
* Copyright (c) 2006 ROOT Foundation, CERN/PH-SFT *
* *
**********************************************************************/
#ifndef ROOT_Minuit2_FCNGradAdapter
#define ROOT_Minuit2_FCNGradAdapter
#ifndef ROOT_Minuit2_FCNGradientBase
#include "Minuit2/FCNGradientBase.h"
#endif
//#define DEBUG
#ifdef DEBUG
#include <iostream>
#endif
namespace ROOT {
namespace Minuit2 {
/**
template wrapped class for adapting to FCNBase signature a IGradFunction
@author Lorenzo Moneta
@ingroup Minuit
*/
template< class Function>
class FCNGradAdapter : public FCNGradientBase {
public:
FCNGradAdapter(const Function & f, double up = 1.) :
fFunc(f) ,
fUp (up) ,
fGrad(std::vector<double>(fFunc.NDim() ) )
{}
~FCNGradAdapter() {}
double operator()(const std::vector<double>& v) const {
return fFunc.operator()(&v[0]);
}
double operator()(const double * v) const {
return fFunc.operator()(v);
}
double Up() const {return fUp;}
std::vector<double> Gradient(const std::vector<double>& v) const {
fFunc.Gradient(&v[0], &fGrad[0]);
#ifdef DEBUG
std::cout << " gradient in FCNAdapter = { " ;
for (unsigned int i = 0; i < fGrad.size(); ++i)
std::cout << fGrad[i] << "\t";
std::cout << "}" << std::endl;
#endif
return fGrad;
}
// forward interface
//virtual double operator()(int npar, double* params,int iflag = 4) const;
bool CheckGradient() const { return false; }
private:
const Function & fFunc;
double fUp;
mutable std::vector<double> fGrad;
};
} // end namespace Minuit2
} // end namespace ROOT
#endif //ROOT_Minuit2_FCNGradAdapter
| Subversion Admin | ViewVC Help |
| Powered by ViewVC 1.0.9 |