27 #ifndef ROOT_Math_GSLSimAnnealing
28 #define ROOT_Math_GSLSimAnnealing
38 class GSLRandomEngine;
127 std::copy(x, x+
fX.size(),
fX.begin() );
132 std::copy(begin, end,
fX.begin() );
135 unsigned int NDim()
const {
return fX.size(); }
137 double X(
unsigned int i)
const {
return fX[i]; }
139 const std::vector<double> &
X()
const {
return fX; }
143 void SetX(
unsigned int i,
double x) {
fX[i] = x; }
149 std::vector<double>
fX;
219 if (
this == &rhs)
return *
this;
GSLSimAnFunc(const ROOT::Math::IMultiGenFunction &func, const double *x)
void SetX(IT begin, IT end)
double X(unsigned int i) const
double Scale(unsigned int i) const
virtual GSLSimAnFunc & FastCopy(const GSLSimAnFunc &f)
GSLSimAnFunc(const ROOT::Math::IMultiGenFunction &func, const double *x, const double *scale)
virtual GSLSimAnFunc * Clone() const
virtual ~GSLSimAnFunc()
virtual distructor (no operations)
virtual double Distance(const GSLSimAnFunc &func) const
const std::vector< double > & X() const
unsigned int NDim() const
void SetX(const double *x)
virtual void Step(const GSLRandomEngine &r, double maxstep)
void SetX(unsigned int i, double x)
std::vector< double > fScale
const ROOT::Math::IMultiGenFunction * fFunc
virtual double Energy() const
const GSLSimAnParams & Params() const
int Solve(const ROOT::Math::IMultiGenFunction &func, const double *x0, const double *scale, double *xmin, bool debug=false)
GSLSimAnParams & Params()
int Solve(GSLSimAnFunc &func, bool debug=false)
void SetParams(const GSLSimAnParams ¶ms)
GSLSimAnnealing(const GSLSimAnnealing &)
GSLSimAnnealing & operator=(const GSLSimAnnealing &rhs)
Various mathematical functions.
double k
parameters for the Boltzman distribution