10 #ifndef ROOT_Minuit2_BasicMinimumParameters 
   11 #define ROOT_Minuit2_BasicMinimumParameters 
   24 class BasicMinimumParameters {
 
   28   BasicMinimumParameters(
unsigned int n, 
double fval) : fParameters(MnAlgebraicVector(n)), fStepSize(MnAlgebraicVector(n)), fFVal(fval), fValid(false), fHasStep(false) {}
 
   30   BasicMinimumParameters(
const MnAlgebraicVector& avec, 
double fval) :
 
   31     fParameters(avec), fStepSize(avec.size()), fFVal(fval), fValid(true), fHasStep(false) {}
 
   33   BasicMinimumParameters(
const MnAlgebraicVector& avec, 
const MnAlgebraicVector& dirin, 
double fval) : fParameters(avec), fStepSize(dirin), fFVal(fval), fValid(true), fHasStep(true) {}
 
   35   ~BasicMinimumParameters() {}
 
   37   BasicMinimumParameters(
const BasicMinimumParameters& par) : fParameters(par.fParameters), fStepSize(par.fStepSize), fFVal(par.fFVal), fValid(par.fValid), fHasStep(par.fHasStep) {}
 
   39   BasicMinimumParameters& operator=(
const BasicMinimumParameters& par) {
 
   40     fParameters = par.fParameters;
 
   41     fStepSize = par.fStepSize;
 
   44     fHasStep = par.fHasStep;
 
   48   void* 
operator new(
size_t nbytes) {
 
   49     return StackAllocatorHolder::Get().Allocate(nbytes);
 
   52   void operator delete(
void* p, 
size_t ) {
 
   53     StackAllocatorHolder::Get().Deallocate(p);
 
   56   const MnAlgebraicVector& Vec()
 const {
return fParameters;}
 
   57   const MnAlgebraicVector& Dirin()
 const {
return fStepSize;}
 
   58   double Fval()
 const {
return fFVal;}
 
   59   bool IsValid()
 const {
return fValid;}
 
   60   bool HasStepSize()
 const {
return fHasStep;}
 
   64   MnAlgebraicVector fParameters;
 
   65   MnAlgebraicVector fStepSize;
 
   75 #endif  // ROOT_Minuit2_BasicMinimumParameters