commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From er...@apache.org
Subject svn commit: r1167252 - in /commons/proper/math/trunk/src/main/java/org/apache/commons/math: exception/util/LocalizedFormats.java linear/CholeskyDecompositionImpl.java linear/NonPositiveDefiniteMatrixException.java
Date Fri, 09 Sep 2011 15:44:58 GMT
Author: erans
Date: Fri Sep  9 15:44:57 2011
New Revision: 1167252

URL: http://svn.apache.org/viewvc?rev=1167252&view=rev
Log:
NonPositiveDefiniteMatrixException": Changed base class, and modified message so
that it is (a little) less misleading (it is closer to the actual check which can
only report that it detects non-definite-positiveness at some point of the
transformation).
Changed test in "CholeskyDecompositionImpl" to allow "O" for the threshold while
keeping the requirement that the element must be strictly positive.

Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/CholeskyDecompositionImpl.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/NonPositiveDefiniteMatrixException.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java?rev=1167252&r1=1167251&r2=1167252&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
Fri Sep  9 15:44:57 2011
@@ -185,8 +185,8 @@ public enum LocalizedFormats implements 
     ALPHA("alpha"), /* keep */
     BETA("beta"), /* keep */
     NOT_POSITIVE_COLUMNDIMENSION("invalid column dimension: {0} (must be positive)"),
-    NOT_POSITIVE_DEFINITE_MATRIX("not positive definite matrix"),
-    NON_POSITIVE_DEFINITE_MATRIX("not positive definite matrix: diagonal element at ({1},{1})
is smaller than {2} ({0})"), /* keep */
+    NOT_POSITIVE_DEFINITE_MATRIX("not positive definite matrix"), /* keep */
+    NON_POSITIVE_DEFINITE_MATRIX("not positive definite matrix: diagonal element at ({1},{1})
is smaller than {2} ({0})"),
     NON_POSITIVE_DEFINITE_LINEAR_OPERATOR("non positive definite linear operator"), /* keep
*/
     NON_SELF_ADJOINT_LINEAR_OPERATOR("non self-adjoint linear operator"), /* keep */
     NON_SQUARE_LINEAR_OPERATOR("non square ({0}x{1}) linear operator"), /* keep */

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/CholeskyDecompositionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/CholeskyDecompositionImpl.java?rev=1167252&r1=1167251&r2=1167252&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/CholeskyDecompositionImpl.java
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/CholeskyDecompositionImpl.java
Fri Sep  9 15:44:57 2011
@@ -125,7 +125,7 @@ public class CholeskyDecompositionImpl i
             final double[] ltI = lTData[i];
 
             // check diagonal element
-            if (ltI[i] < absolutePositivityThreshold) {
+            if (ltI[i] <= absolutePositivityThreshold) {
                 throw new NonPositiveDefiniteMatrixException(ltI[i], i, absolutePositivityThreshold);
             }
 

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/NonPositiveDefiniteMatrixException.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/NonPositiveDefiniteMatrixException.java?rev=1167252&r1=1167251&r2=1167252&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/NonPositiveDefiniteMatrixException.java
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/NonPositiveDefiniteMatrixException.java
Fri Sep  9 15:44:57 2011
@@ -16,8 +16,9 @@
  */
 package org.apache.commons.math.linear;
 
-import org.apache.commons.math.exception.MathIllegalNumberException;
+import org.apache.commons.math.exception.NumberIsTooSmallException;
 import org.apache.commons.math.exception.util.LocalizedFormats;
+import org.apache.commons.math.exception.util.ExceptionContext;
 
 /**
  * Exception to be thrown when a positive definite matrix is expected.
@@ -25,7 +26,7 @@ import org.apache.commons.math.exception
  * @since 3.0
  * @version $Id$
  */
-public class NonPositiveDefiniteMatrixException extends MathIllegalNumberException {
+public class NonPositiveDefiniteMatrixException extends NumberIsTooSmallException {
     /** Serializable version Id. */
     private static final long serialVersionUID = 1641613838113738061L;
     /** Index (diagonal element). */
@@ -43,9 +44,13 @@ public class NonPositiveDefiniteMatrixEx
     public NonPositiveDefiniteMatrixException(double wrong,
                                               int index,
                                               double threshold) {
-        super(LocalizedFormats.NON_POSITIVE_DEFINITE_MATRIX, wrong, index, threshold);
+        super(wrong, threshold, false);
         this.index = index;
         this.threshold = threshold;
+
+        final ExceptionContext context = getContext();
+        context.addMessage(LocalizedFormats.NOT_POSITIVE_DEFINITE_MATRIX);
+        context.addMessage(LocalizedFormats.ARRAY_ELEMENT, wrong, index);
     }
 
     /**



Mime
View raw message