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