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