/*
 * 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;

import java.util.Arrays;

Simple optimization constraints: lower and upper bounds. The valid range of the parameters is an interval that can be infinite (in one or both directions).
Immutable class.
Since:3.1
/** * Simple optimization constraints: lower and upper bounds. * The valid range of the parameters is an interval that can be infinite * (in one or both directions). * <br/> * Immutable class. * * @since 3.1 */
public class SimpleBounds implements OptimizationData {
Lower bounds.
/** Lower bounds. */
private final double[] lower;
Upper bounds.
/** Upper bounds. */
private final double[] upper;
Params:
  • lB – Lower bounds.
  • uB – Upper bounds.
/** * @param lB Lower bounds. * @param uB Upper bounds. */
public SimpleBounds(double[] lB, double[] uB) { lower = lB.clone(); upper = uB.clone(); }
Gets the lower bounds.
Returns:the lower bounds.
/** * Gets the lower bounds. * * @return the lower bounds. */
public double[] getLower() { return lower.clone(); }
Gets the upper bounds.
Returns:the upper bounds.
/** * Gets the upper bounds. * * @return the upper bounds. */
public double[] getUpper() { return upper.clone(); }
Factory method that creates instance of this class that represents unbounded ranges.
Params:
  • dim – Number of parameters.
Returns:a new instance suitable for passing to an optimizer that requires bounds specification.
/** * Factory method that creates instance of this class that represents * unbounded ranges. * * @param dim Number of parameters. * @return a new instance suitable for passing to an optimizer that * requires bounds specification. */
public static SimpleBounds unbounded(int dim) { final double[] lB = new double[dim]; Arrays.fill(lB, Double.NEGATIVE_INFINITY); final double[] uB = new double[dim]; Arrays.fill(uB, Double.POSITIVE_INFINITY); return new SimpleBounds(lB, uB); } }