| 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 |