private void checkParameters() {
if (start != null) {
final int dim = start.length;
if (lowerBound != null) {
if (lowerBound.length != dim) {
throw new DimensionMismatchException(lowerBound.length, dim);
}
for (int i = 0; i < dim; i++) {
final double v = start[i];
final double lo = lowerBound[i];
if (v < lo) {
throw new NumberIsTooSmallException(v, lo, true);
}
}
}
if (upperBound != null) {
if (upperBound.length != dim) {
throw new DimensionMismatchException(upperBound.length, dim);
}
for (int i = 0; i < dim; i++) {
final double v = start[i];
final double hi = upperBound[i];
if (v > hi) {