29 const RealType t_ini) {
34 RealType qtold, t = t_ini;
35 size_t loopNumber = 0;
37 RealType q0 = P.functionValue();
38 RealType qp0 = P.gradientNormValue();
45 gradient_ = DynamicVector<RealType>(P.currentValue().size());
47 xtd_ = P.currentValue();
53 if ((
qt_ - q0) > -alpha_ * t * qpt_) {
61 xtd_ = P.currentValue();
66 P.gradient(gradient_,
xtd_);
68 maxIter = endCriteria.checkMaxIterations(loopNumber, ecType);
69 }
while ((((
qt_ - q0) > (-alpha_ * t * qpt_)) ||
70 ((qtold - q0) <= (-alpha_ * t * qpt_ / beta_))) &&
77 P.gradient(gradient_,
xtd_);
80 qpt_ = P.DotProduct(gradient_, gradient_);