fix bignum expt (PR 10690); also fixed a doc typo

svn: r17614
This commit is contained in:
Matthew Flatt 2010-01-12 02:16:12 +00:00
parent e9165f30fe
commit 331c6d2f5f
3 changed files with 4 additions and 3 deletions

View File

@ -22,7 +22,7 @@ See @secref["eventspaceinfo"] for more information about event
priorities.
@defconstructor[([notify-callback (-> any) @scheme[void]]
@defconstructor[([notify-callback (-> any) void]
[interval (or/c (integer-in 0 1000000000) false/c) #f]
[just-once? any/c #f])]{

View File

@ -591,6 +591,7 @@
(test 2 expt 4 1/2)
(test 2.0 expt 4 0.5)
(test (sqrt 5) expt 5 1/2)
(test 18446744073709551616 expt (expt 2 32) 2)
(arity-test expt 2 2)
(test 31525197391593472 inexact->exact 31525197391593473.0)

View File

@ -2166,8 +2166,8 @@ Scheme_Object *int_sqrt_rem (int argc, Scheme_Object *argv[])
static Scheme_Object *fixnum_expt(long x, long y)
{
int orig_x = x;
int orig_y = y;
long orig_x = x;
long orig_y = y;
if ((x == 2) && (y <= MAX_SHIFT_TRY))
return scheme_make_integer((long)1 << y);