josdejong/mathjs

power returns invalid complex number for negative base and Infinity as exponent

Open

#804 ouverte le 28 févr. 2017

Voir sur GitHub
 (25 commentaires) (0 réactions) (0 assignés)JavaScript (1 298 forks)batch import
bugdependencieshelp wanted

Métriques du dépôt

Stars
 (13 832 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

Following inputs return NaN - aNi in Notepad. Seems like all negative bases yield the same:

(-0.5)^Infinity (-1)^Infinity (-2)^Infinty

probably the underlying function pow() returns a Complex with both Real and Imaginary part set to NaN. (haven't checked).

Definitely, NaN + aNi is wrong. But whether this is simply an issue with the rendering, or the underlying logic, is to be analyzed. Some thoughts:

  • Whether the result should be a Complex with both Real and Imaginary parts set to NaN, is questionable (after all there is a NaN already, no need to introduce a "second, complex NaN" value maybe).

  • for -1 < a < 0, the result should probably be zero, as in javascript, this one converges: Math.pow(-0.5,Infinity) // 0

  • for a < -1 the result should not be Infinity (so, unlike javascript), because this is clearly divergent. (I don't understand javascript behavior: Math.pow(-2,Infinity) // Infinity

  • -Infinity as exponent should also be considered (currently these cases also return incorrect NaN + aNi, but convergence / divergence should also be considered separately for -Infinity)

Guide contributeur