* rational.c (nurat_expt): use Float#** when Rational ** Float.

This fixes Rational(3,1)**3.0=>26.99999999999999 on FreeBSD.

* complex.c (rb_fexpt): removed.
  Note that this function is not static but is private.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2010-02-25 02:26:22 +00:00
parent d3f73f45d8
commit c942417791
3 changed files with 9 additions and 11 deletions

View file

@ -825,14 +825,6 @@ m_exp(VALUE x)
f_mul(ere, m_sin_bang(im)));
}
VALUE
rb_fexpt(VALUE x, VALUE y)
{
if (f_zero_p(x) || (!k_float_p(x) && !k_float_p(y)))
return f_expt(x, y);
return m_exp(f_mul(m_log(x), y));
}
inline static VALUE
f_reciprocal(VALUE x)
{