Issue #11582 has been updated by Nobuyoshi Nakada.


Does `0.0 ** -1` return `-Infinity` too?
It isn't a problem?

----------------------------------------
Bug #11582: On Solaris, Rational#** returns -Infinity for Rational(0) when passed a negative Float
https://bugs.ruby-lang.org/issues/11582#change-54418

* Author: Benoit Daloze
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
For instance,

> Rational(0, 1) ** -1.0
=> +Infinity on most platforms, -Infinity on Solaris by default.

The Rational is implicitly converted to the Float value 0.0, and the libm function pow(0.0, -1.0) is called.

Should this kind of behavior be made consistent by Ruby or should we accept this as dependent on the libm/libc used?

They are likely other edges cases for pow() which might differ, and I think in general
Ruby should try to unify these cases so the behavior is consistent across platforms at least for arithmetic.

For more details, please see https://github.com/ruby/rubyspec/issues/134 reported by ngoto.



-- 
https://bugs.ruby-lang.org/