You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by pi...@apache.org on 2005/08/25 00:06:57 UTC

svn commit: r239949 - /jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java

Author: pietsch
Date: Wed Aug 24 15:06:52 2005
New Revision: 239949

URL: http://svn.apache.org/viewcvs?rev=239949&view=rev
Log:
Fix complex square root for zero (#36266)
Contributed by: Xiaogang Zhang

Modified:
    jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java

Modified: jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java?rev=239949&r1=239948&r2=239949&view=diff
==============================================================================
--- jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java (original)
+++ jakarta/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/ComplexUtils.java Wed Aug 24 15:06:52 2005
@@ -216,12 +216,15 @@
         
         double a = z.getReal();
         double b = z.getImaginary();
+        if (a == 0.0 && b == 0.0) {
+            return new Complex(0.0, 0.0);
+        }
         
         double t = Math.sqrt((Math.abs(a) + z.abs()) / 2.0);
         if (a >= 0.0) {
             return new Complex(t, b / (2.0 * t));
         } else {
-            return new Complex(Math.abs(z.getImaginary()) / (2.0 * t),
+            return new Complex(Math.abs(b) / (2.0 * t),
                 MathUtils.indicator(b) * t);
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org