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) {


Reply via email to