Issue #17318 has been updated by mame (Yusuke Endoh).

Status changed from Open to Rejected

It is due to precedence of operators unary minus and `**`.

`x**y` calculates `(-0.4790529833050308)**0.9918032786885246`, and `-0.4790529833050308**0.9918032786885246` calculates `-(0.4790529833050308**0.9918032786885246)`.

```
irb(main):001:0> -(0.4790529833050308**0.9918032786885246)
=> -0.4819515219418196
irb(main):002:0> (-0.4790529833050308)**0.9918032786885246
=> (-0.48179173935576963+0.012409246172848266i)
```

----------------------------------------
Bug #17318: Raising float to the power of other issue
https://bugs.ruby-lang.org/issues/17318#change-88432

* Author: deXterbed (Manoj Mishra)
* Status: Rejected
* Priority: Normal
* ruby -v: 2.6.3
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Raising a negative float to another float results in a complex number. Interestingly, doing the same thing without using variables works fine!

Sample Snippet:

$ irb
2.6.3 :001 > x=-0.4790529833050308
 => -0.4790529833050308
2.6.3 :002 > y=0.9918032786885246
 => 0.9918032786885246
2.6.3 :003 > x**y
 => (-0.48179173935576963+0.012409246172848264i)
2.6.3 :004 > -0.4790529833050308**0.9918032786885246
 => -0.4819515219418196



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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>