/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.math3.optim.univariate;

import org.apache.commons.math3.optim.OptimizationData;
import org.apache.commons.math3.exception.NumberIsTooLargeException;
import org.apache.commons.math3.exception.OutOfRangeException;

Search interval and (optional) start value.
Immutable class.
Since:3.1
/** * Search interval and (optional) start value. * <br/> * Immutable class. * * @since 3.1 */
public class SearchInterval implements OptimizationData {
Lower bound.
/** Lower bound. */
private final double lower;
Upper bound.
/** Upper bound. */
private final double upper;
Start value.
/** Start value. */
private final double start;
Params:
  • lo – Lower bound.
  • hi – Upper bound.
  • init – Start value.
Throws:
/** * @param lo Lower bound. * @param hi Upper bound. * @param init Start value. * @throws NumberIsTooLargeException if {@code lo >= hi}. * @throws OutOfRangeException if {@code init < lo} or {@code init > hi}. */
public SearchInterval(double lo, double hi, double init) { if (lo >= hi) { throw new NumberIsTooLargeException(lo, hi, false); } if (init < lo || init > hi) { throw new OutOfRangeException(init, lo, hi); } lower = lo; upper = hi; start = init; }
Params:
  • lo – Lower bound.
  • hi – Upper bound.
Throws:
/** * @param lo Lower bound. * @param hi Upper bound. * @throws NumberIsTooLargeException if {@code lo >= hi}. */
public SearchInterval(double lo, double hi) { this(lo, hi, 0.5 * (lo + hi)); }
Gets the lower bound.
Returns:the lower bound.
/** * Gets the lower bound. * * @return the lower bound. */
public double getMin() { return lower; }
Gets the upper bound.
Returns:the upper bound.
/** * Gets the upper bound. * * @return the upper bound. */
public double getMax() { return upper; }
Gets the start value.
Returns:the start value.
/** * Gets the start value. * * @return the start value. */
public double getStartValue() { return start; } }