#1042: BigMath::log and BigMath:exp are broken -------------------------------------+-------------------------------------- Reporter: hghoehne@… | Owner: lsansonetti@… Type: defect | Status: new Priority: blocker | Milestone: Component: MacRuby | Keywords: -------------------------------------+-------------------------------------- Comment(by watson1978@…): as follow changing, It seems that MacRuby returns same result when change a SIZEOF_BDIGITS. Will it be a problem of the calculation precision? I cannot yet understand a problem definitely. {{{ #!diff diff --git a/include/ruby/defines.h b/include/ruby/defines.h index c5b144b..b88820e 100644 --- a/include/ruby/defines.h +++ b/include/ruby/defines.h @@ -83,7 +83,7 @@ void xfree(void*); #if defined(__LP64__) && (MAC_OS_X_VERSION_MAX_ALLOWED >= 1060) # define BDIGIT uint64_t -# define SIZEOF_BDIGITS 8 +# define SIZEOF_BDIGITS 4 # define BDIGIT_DBL __uint128_t # define BDIGIT_DBL_SIGNED __int128_t #elif SIZEOF_INT*2 <= SIZEOF_LONG_LONG }}} {{{ $ macruby -ve 'require "bigdecimal/math"; include BigMath; p exp(log(BigDecimal("20.0"), 200), 200).to_f' MacRuby 0.9 (ruby 1.9.2) [universal-darwin10.0, x86_64] 20.0 }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1042#comment:2> MacRuby <http://macruby.org/>