All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.math3.optim.univariate.SearchInterval Maven / Gradle / Ivy

There is a newer version: 2.12.15
Show newest version
/*
 * 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 */ public class SearchInterval implements OptimizationData { /** Lower bound. */ private final double lower; /** Upper bound. */ private final double upper; /** Start value. */ private final double start; /** * @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; } /** * @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. * * @return the lower bound. */ public double getMin() { return lower; } /** * Gets the upper bound. * * @return the upper bound. */ public double getMax() { return upper; } /** * Gets the start value. * * @return the start value. */ public double getStartValue() { return start; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy