Author: erans Date: Wed Aug 17 22:11:43 2011 New Revision: 1158937 URL: http://svn.apache.org/viewvc?rev=1158937&view=rev Log: MATH-621 Matrix/vector operators.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizer.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizer.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizer.java?rev=1158937&r1=1158936&r2=1158937&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizer.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/BOBYQAOptimizer.java Wed Aug 17 22:11:43 2011 @@ -31,6 +31,7 @@ import org.apache.commons.math.optimizat import org.apache.commons.math.optimization.MultivariateRealOptimizer; import org.apache.commons.math.optimization.RealPointValuePair; import org.apache.commons.math.util.MathUtils; +import org.apache.commons.math.linear.RealVector; import org.apache.commons.math.linear.ArrayRealVector; import org.apache.commons.math.linear.Array2DRowRealMatrix; @@ -2334,16 +2335,12 @@ public class BOBYQAOptimizer ih++; } } + final RealVector tmp = xpt.operate(s).ebeMultiply(pq); for (int k = 0; k < npt; k++) { if (pq.getEntry(k) != ZERO) { - temp = ZERO; - for (int j = 0; j < n; j++) { - temp += xpt.getEntry(k, j) * s.getEntry(j); - } - temp *= pq.getEntry(k); for (int i = 0; i < n; i++) { - hs.setEntry(i, hs.getEntry(i) + temp * xpt.getEntry(k, i)); - } + hs.setEntry(i, hs.getEntry(i) + tmp.getEntry(k) * xpt.getEntry(k, i)); + } } } if (crvmin != ZERO) {