[#97319] [Ruby master Feature#16667] Allow parameters to Symbol#to_proc and Method#to_proc — jgomo3@...

Issue #16667 has been reported by jgomo3 (Jes=FAs G=F3mez).

10 messages 2020/03/01

[#97344] [Ruby master Feature#16670] Reverse order of `expression` in `pattern` for 1-line pattern matching while it's still experimental — ttilberg@...

Issue #16670 has been reported by ttilberg (Tim Tilberg).

9 messages 2020/03/03

[#97355] [Ruby master Misc#16671] BASERUBY version policy — ko1@...

Issue #16671 has been reported by ko1 (Koichi Sasada).

10 messages 2020/03/04

[#97359] [Ruby master Bug#16672] net/http leaves original content-length header intact after inflating response — justin.reid@...

Issue #16672 has been reported by jmreid (Justin Reid).

15 messages 2020/03/04

[#97390] [Ruby master Bug#16677] Negative integer powered (**) to a float number results in a complex — camille.drapier@...

Issue #16677 has been reported by CamilleDrapier (Camille Drapier).

25 messages 2020/03/07

[#97410] [Ruby master Bug#16680] [Breaking Change] Ruby 2.7 not support symlinks folder in $LOAD_PATH to work with autoload. — vil963@...

SXNzdWUgIzE2NjgwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp3OTYzIChXZWkgWmhlbmcpLg0KDQot

8 messages 2020/03/07

[#97416] [Ruby master Bug#16682] Ruby 2.7.0p0 crash on exit if there is an active RUBY_INTERNAL_EVENT_GC_EXIT tracepoint — jean.boussier@...

Issue #16682 has been reported by byroot (Jean Boussier).

16 messages 2020/03/09

[#97448] [Ruby master Feature#16688] Allow #to_path object as argument to system() — daniel@...42.com

Issue #16688 has been reported by Dan0042 (Daniel DeLorme).

12 messages 2020/03/11

[#97528] [Ruby master Misc#16693] DevelopersMeeting20200410Japan — mame@...

Issue #16693 has been reported by mame (Yusuke Endoh).

12 messages 2020/03/16

[#97536] [Ruby master Bug#16694] JIT vs hardened GCC with PCH — v.ondruch@...

Issue #16694 has been reported by vo.x (Vit Ondruch).

11 messages 2020/03/18

[#97538] [Ruby master Bug#16695] Stack consistency error when using the return value — s.wakeup31@...

Issue #16695 has been reported by s4ichi (takamasa saichi).

10 messages 2020/03/18

[#97554] [Ruby master Bug#16697] Hash.ruby2_keywords_hash?(value) should support any object — eregontp@...

Issue #16697 has been reported by Eregon (Benoit Daloze).

12 messages 2020/03/19

[#97588] [Ruby master Feature#16739] Allow Hash#keys and Hash#values to accept a block for filtering output — jacobevelyn@...

SXNzdWUgIzE2NzM5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGphY29iZXZlbHluIChKYWNvYiBFdmVs

7 messages 2020/03/24

[#97609] [Ruby master Bug#16740] Deprecating and removing the broken Process.clock_getres — eregontp@...

Issue #16740 has been reported by Eregon (Benoit Daloze).

14 messages 2020/03/28

[#97621] [Ruby master Bug#16743] problem with multi threading [BUG] Segmentation fault — pauloo.jansen@...

Issue #16743 has been reported by paulorja (paulo jansen).

12 messages 2020/03/29

[#97629] [Ruby master Feature#16744] Flag to load current bundle without using bundle exec — headius@...

Issue #16744 has been reported by headius (Charles Nutter).

11 messages 2020/03/30

[ruby-core:97501] [Ruby master Bug#16677] Negative integer powered (**) to a float number results in a complex

From: sawadatsuyoshi@...
Date: 2020-03-15 04:59:52 UTC
List: ruby-core #97501
Issue #16677 has been updated by sawa (Tsuyoshi Sawada).


The most confusing part of the current behaviour is that (it superficially looks like) the precedence relation between the three operations (i) `-`, (ii) typical method call (using a period), and (iii) `**` do not follow transitivity, but is rather in a rock-paper-scissors relation.

(a) `-` has priority over a typical method call: `-2.itself # => (-2).itself`,
(b) a typical method call has priority over `**`: `2.itself ** 2 # => (2.itself) ** 2`, and yet
(c) `**` has priority over `-`: `-2 ** 2 # => -(2 ** 2)`

After close examination, we can tell that this is only superficial, and actually not due to precedence relation. (a) is due to the fact that `-` as a part of a literal works differently from the unary method `-@`. (c) is due to the fact that `2.(itself ** 2)` does not make sense.

What is problematic is that we have to do close examination whenever we get lost using them. (b) is inevitable, and (c) matches our convention in mathematics. What has room of improvement is (a).

----------------------------------------
Bug #16677: Negative integer powered (**) to a float number results in a complex 
https://bugs.ruby-lang.org/issues/16677#change-84649

* Author: CamilleDrapier (Camille Drapier)
* Status: Closed
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* ruby -v: 2.5.7, 2.6.5, 2.7.0
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Not sure if this is an unexpected behavior.

This works as I expect:

```
-2 ** 2.2 # => -4.59479341998814
```

But when I change the code a bit, it gives me a complex:

```ruby
-2.to_i ** 2.2 # => (3.717265962412589+2.7007518095995273i)

a = -2; a ** 2.2 # => (3.717265962412589+2.7007518095995273i)
```

This seems to happen only with negative numbers and float powers. I think it might be related to how `Fixnum` is treated differently from other classes by the power function.



-- 
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>

In This Thread