31 mBestValue(std::numeric_limits<
C_FLOAT64 >::infinity()),
45 mIterations(src.mIterations),
46 mTolerance(src.mTolerance),
47 mContinue(src.mContinue),
48 mBestValue(src.mBestValue),
50 mVariableSize(src.mVariableSize),
51 mIndividual(src.mIndividual),
52 mGradient(src.mGradient),
54 mCurrentIteration(src.mCurrentIteration)
69 C_FLOAT64 tmp, x0, alpha, mn, mx, fmn, fmx;
76 const COptItem & OptItem = *(*mpOptItem)[i];
104 bool SolutionFound =
false;
120 if (fabs(
mGradient[i]) > std::numeric_limits< C_FLOAT64 >::epsilon())
124 tmp = *(*mpOptItem)[i]->getUpperBoundValue();
129 tmp = *(*mpOptItem)[i]->getLowerBoundValue();
136 if (tmp < x0) x0 = tmp;
144 mn = mx = alpha = 0.0;
146 for (k = 0, calc_grad =
false; (k < 9) && !calc_grad && !SolutionFound; k++)
177 SolutionFound =
true;
218 mBestValue = std::numeric_limits<C_FLOAT64>::infinity();
234 if ((x = *(*
mpOptItem)[i]->getObjectValue()) != 0.0)
236 (*(*mpSetCalculateVariable)[i])(x * 1.001);
242 (*(*mpSetCalculateVariable)[i])(1e-7);
246 (*(*mpSetCalculateVariable)[i])(x);
virtual C_INT32 checkConstraint() const
virtual bool initialize()
const C_FLOAT64 & evaluate()
virtual ~COptMethodSteepestDescent()
unsigned C_INT32 mCurrentIteration
void resize(size_t size, const bool ©=false)
COptProblem * mpOptProblem
virtual void output(const COutputInterface::Activity &activity)
unsigned C_INT32 mIterations
COptMethodSteepestDescent(const CCopasiContainer *pParent=NULL)
virtual bool initialize()
const std::vector< UpdateMethod * > * mpSetCalculateVariable
const Value & getValue() const
const C_FLOAT64 * getLowerBoundValue() const
CVector< C_FLOAT64 > mIndividual
virtual bool setSolution(const C_FLOAT64 &value, const CVector< C_FLOAT64 > &variables)
int FminBrent(double a, double b, FDescent *pF, double *min, double *fmin, double tol, int maxiter)
CVector< C_FLOAT64 > mGradient
virtual bool checkFunctionalConstraints()
const C_FLOAT64 & getStartValue() const
const std::vector< COptItem * > * mpOptItem
const C_FLOAT64 * getUpperBoundValue() const
bool addParameter(const CCopasiParameter ¶meter)
C_FLOAT64 descentLine(const C_FLOAT64 &x)
virtual bool checkParametricConstraints()
const C_FLOAT64 & getCalculateValue() const
CCopasiObject * addObjectReference(const std::string &name, CType &reference, const unsigned C_INT32 &flag=0)