I just tried this (on 0.2.1): julia> (10//1)^(-2//1) 0.01
Is this expected? -- mb On Sun, Jun 8, 2014 at 6:36 PM, 'Stéphane Laurent' via julia-users < [email protected]> wrote: > julia> (10//1)^(-2) > > 1//100 > > > Would it be problematic to return a rational > for (a::Integer)^(b::Integer) ? > > > > Le dimanche 8 juin 2014 21:53:45 UTC+2, Stefan Karpinski a écrit : >> >> There are three obvious options for (a::Integer)^(b::Integer): >> >> 1. Always return an integer ⟹ fails for negative b. >> 2. Always return a float ⟹ a^2 is not the same as a*a. >> 3. Return float for negative b, integer otherwise ⟹ not type-stable. >> >> As you can see, all of these choices are problematic. The first one, >> which is what we currently do, seems to be the least problematic. One >> somewhat crazier option that has been proposed is making ^- as in a^-b >> parse as a different operator and have a^b return an integer for integer >> arguments but a^-b return a float for integer arguments. This would have >> the unfortunate effect of making a^-b different from a^(-b). >> >> >> On Sat, Jun 7, 2014 at 12:41 PM, Daniel Jones <[email protected]> >> wrote: >> >>> I'd definitely be in favor of '^' converting to float, like '/', >>> having fallen for than recently >>> <https://github.com/JuliaLang/Color.jl/commit/c3d05dd2b94f0d38b64ef86022accdfec886a673> >>> . >>> >>> On Sat, Jun 7, 2014, at 12:53 AM, Ivar Nesje wrote: >>> > >>> > There has also been discussion on whether ^(a::Integer,b::Integer) >>> should >>> > return a Float64 by default, and defer to pow() like /(a::Integer, >>> > b::Integer) defers to div(). The problem is that many people like the >>> > 10^45 vs 1e45 notation for large integers vs float constants, and we >>> can >>> > make it a clean error instead of a silent bug. >>> >>> >> >>
