[
https://issues.apache.org/jira/browse/MATH-402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896344#action_12896344
]
Phil Steitz commented on MATH-402:
----------------------------------
Thanks for reporting this. If we do make the suggested change, we need to
change the formulas in the javadoc to reflect the changed definition. The
value returned is a consequence of how we have defined complex exponentiation,
which is spelled out in the javadoc for pow, exp and log. I am open to
changing the definition, but we should make sure that the javadoc is modified
to reflect whatever change we make. Interested in what others think the
definition should be.
> Complex.ZERO.pow(Complex.ONE) gives NaN in unit tests
> -----------------------------------------------------
>
> Key: MATH-402
> URL: https://issues.apache.org/jira/browse/MATH-402
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 2.2
> Environment: Issue 15
> http://code.google.com/p/symja/issues/detail?id=15
> Reporter: Axel Kramer
>
> Why does this unit test in ComplexTest.java gives NaN?
> I expected to get Complex.ZERO as the result?
> {code:java}
> public void testPowZero() {
> TestUtils.assertSame(Complex.NaN,
> Complex.ZERO.pow(Complex.ONE));
> ...
> }
> {code}
> I would suggest something like this for the Complex#pow() method:
> {code:java}
> public Complex pow(Complex x) {
> if (x == null) {
> throw new NullPointerException();
> }
> if (x.imaginary == 0.0) {
> if (real == 0.0 && imaginary == 0.0) {
> if (x.real == 0.0){
> return Complex.ZERO;
> }
> }
> if (x.real == 1.0) {
> return this;
> }
> }
> return this.log().multiply(x).exp();
> }
> {code}
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.