2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
9
* http://www.apache.org/licenses/LICENSE-2.0
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
18
package org.apache.commons.math.optimization;
20
import java.io.Serializable;
22
import org.apache.commons.math.analysis.MultivariateVectorialFunction;
25
* This class holds a point and the vectorial value of an objective function at this point.
26
* <p>This is a simple immutable container.</p>
27
* @see RealPointValuePair
28
* @see MultivariateVectorialFunction
29
* @version $Revision: 758049 $ $Date: 2009-03-24 18:09:34 -0400 (Tue, 24 Mar 2009) $
32
public class VectorialPointValuePair implements Serializable {
34
/** Serializable version identifier. */
35
private static final long serialVersionUID = 1003888396256744753L;
37
/** Point coordinates. */
38
private final double[] point;
40
/** Vectorial value of the objective function at the point. */
41
private final double[] value;
43
/** Build a point/objective function value pair.
44
* @param point point coordinates (the built instance will store
45
* a copy of the array, not the array passed as argument)
46
* @param value value of an objective function at the point
48
public VectorialPointValuePair(final double[] point, final double[] value) {
49
this.point = point.clone();
50
this.value = value.clone();
53
/** Build a point/objective function value pair.
54
* @param point point coordinates (the built instance will store
55
* a copy of the array, not the array passed as argument)
56
* @param value value of an objective function at the point
57
* @param copyArray if true, the input arrays will be copied, otherwise
58
* they will be referenced
60
public VectorialPointValuePair(final double[] point, final double[] value,
61
final boolean copyArray) {
62
this.point = copyArray ? point.clone() : point;
63
this.value = copyArray ? value.clone() : value;
67
* @return a copy of the stored point
69
public double[] getPoint() {
73
/** Get a reference to the point.
74
* <p>This method is provided as a convenience to avoid copying
75
* the array, the elements of the array should <em>not</em> be modified.</p>
76
* @return a reference to the internal array storing the point
78
public double[] getPointRef() {
82
/** Get the value of the objective function.
83
* @return a copy of the stored value of the objective function
85
public double[] getValue() {
89
/** Get a reference to the value of the objective function.
90
* <p>This method is provided as a convenience to avoid copying
91
* the array, the elements of the array should <em>not</em> be modified.</p>
92
* @return a reference to the internal array storing the value of the objective function
94
public double[] getValueRef() {