18 |
|
curX = getCoor(); |
19 |
|
curG.resize(ndim); |
20 |
|
|
21 |
+ |
preMove(); |
22 |
|
} |
23 |
|
|
24 |
|
OOPSEMinimizer::~OOPSEMinimizer(){ |
518 |
|
double mu; |
519 |
|
double eta; |
520 |
|
double ftol; |
521 |
+ |
double lsTol; |
522 |
|
|
523 |
|
xa.resize(ndim); |
524 |
|
xb.resize(ndim); |
534 |
|
ga = curG; |
535 |
|
c = a + stepSize; |
536 |
|
ftol = paramSet->getFTol(); |
537 |
+ |
lsTol = paramSet->getLineSearchTol(); |
538 |
|
|
539 |
|
//calculate the derivative at a = 0 |
540 |
|
for (size_t i = 0; i < ndim; i++) |
601 |
|
eta = 3 *(fa -fc) /(c - a) + slopeA + slopeC; |
602 |
|
mu = sqrt(eta * eta - slopeA * slopeC); |
603 |
|
b = a + (c - a) * (1 - (slopeC + mu - eta) /(slopeC - slopeA + 2 * mu)); |
604 |
+ |
|
605 |
+ |
if (b < lsTol){ |
606 |
+ |
if (bVerbose) |
607 |
+ |
cout << "stepSize is less than line search tolerance" << endl; |
608 |
+ |
break; |
609 |
+ |
} |
610 |
|
//} |
611 |
|
|
612 |
|
// Take a trial step to this new point - new coords in xb |