[#56965] [ruby-trunk - Bug #8852][Open] Synology build of ruby-2.0.0-p247 is failing — "barbecuesteve (Steve Sparks)" <sparks@...>

12 messages 2013/09/02

[#57051] [ruby-trunk - Bug #8872][Open] Case statements do not honor a refinement of the '===' method — "jconley88 (Jon Conley)" <schnozberries@...>

21 messages 2013/09/07

[#57058] [ruby-trunk - Bug #8875][Open] Select is not usable with SSLSocket — "headius (Charles Nutter)" <headius@...>

11 messages 2013/09/07

[#57074] [ruby-trunk - Bug #8879][Open] String#to_r fails after moving ruby to other OSX system — "mpapis (Michal Papis)" <mpapis@...>

12 messages 2013/09/08

[#57092] [ruby-trunk - Bug #8883][Open] Rational canonicalization unexpectedly converts to Fixnum — "melquiades (Paul Cantrell)" <cantrell@...>

16 messages 2013/09/09

[#57109] [ruby-trunk - Bug #8886][Open] TracePoint API inconsistence when raise used — deivid (David Rodríguez) <deivid.rodriguez@...>

14 messages 2013/09/10

[#57111] [ruby-trunk - Feature #8887][Open] min(n), max(n), min_by(n), max_by(n) — "akr (Akira Tanaka)" <akr@...>

13 messages 2013/09/10

[#57131] [ruby-trunk - Feature #8895][Open] Destructuring Assignment for Hash — "chendo (Jack Chen)" <ruby-lang@...>

19 messages 2013/09/11

[#57186] [ruby-trunk - Feature #8909][Open] Expand "f" frozen suffix to literal arrays and hashes — "headius (Charles Nutter)" <headius@...>

37 messages 2013/09/14

[#57262] [ruby-trunk - Feature #8921][Open] Allow select, reject, etc to accept a regex — "kyledecot (Kyle Decot)" <kyle.decot@...>

13 messages 2013/09/18

[#57273] [ruby-trunk - Feature #8923][Open] Frozen nil/true/false — "ko1 (Koichi Sasada)" <redmine@...>

13 messages 2013/09/19

[#57353] [ruby-trunk - Feature #8948][Open] Frozen regex — "sawa (Tsuyoshi Sawada)" <sawadatsuyoshi@...>

19 messages 2013/09/24

[#57385] [ruby-trunk - Bug #8953][Open] `str =~ /pattern/` does not call =~ method if (1) str is a String, (2) /pattern/ is a Regexp literal — "gfx (Goro Fuji)" <gfuji@...>

12 messages 2013/09/26

[#57396] [ruby-trunk - Feature #8956][Open] Allow hash members delimited by \n inside of {} — "adamdunson (Adam Dunson)" <adam@...>

20 messages 2013/09/26

[ruby-core:57128] Re: [ruby-trunk - Bug #8883] Rational canonicalization unexpectedly converts to Fixnum

From: David MacMahon <davidm@...>
Date: 2013-09-11 04:26:02 UTC
List: ruby-core #57128
On Sep 10, 2013, at 9:09 PM, marcandre (Marc-Andre Lafortune) wrote:

> 
> Issue #8883 has been updated by marcandre (Marc-Andre Lafortune).
> 
> 
> david_macmahon (David MacMahon) wrote:
>> While playing around with this, I see that integer Floats also have some special handling:
> 
> Right. Floats are inexact while Integers & Rational are exact, and so are Complex with exact components. Rational(1/1) and 1 should yield the same mathematical result, but with floats that can be tricky.  For example there are infinitely many different bigdecimals that will map to 1.0 (say 1.000....1 and 1.000...2 with enough zeros), but they don't behave exactly the same way, for example if you substract 1), so we can't freely map them.

That's all fine from a numerical/mathematical point of view, but it still seems like there is something missing from the duck typing:

$ ruby -e 'p (1/1.0).nan?'
false

$ ruby -r mathn -e 'p (1/1.1).nan?'
false

$ ruby -r mathn -e 'p (1/1.0).nan?'
-e:1:in `<main>': undefined method `nan?' for (1/1):Rational (NoMethodError)

Though admittedly this is getting a bit far from the OP.

> 
>> Oddly though, this can result in non-reduced Rationals:
>> 
>> $ ruby -r mathn -e 'p [2/2.0, 2/2.5]'
>> [(2/2), 0.8]
> 
> Oh oh, that's a bug. It's not even related to 'mathn'. I opened a new issue about this: https://bugs.ruby-lang.org/issues/8894

Thanks!

Dave

In This Thread