// Multi-start loop.
for (int i = 0; i < starts; i++) {
// CHECKSTYLE: stop IllegalCatch
try {
// Decrease number of allowed evaluations.
optimData[maxEvalIndex] = new MaxEval(maxEval - totalEvaluations);
// New start value.
final double s = (i == 0) ?
startValue :
min + generator.nextDouble() * (max - min);
optimData[searchIntervalIndex] = new SearchInterval(min, max, s);