Hacker News new | ask | show | jobs
by TwistedWave 4895 days ago
It boils down to:

> (* 4294967296 4294967296)

$1 = 0

My guess is that guile uses the native int type to store small numbers, and then switches to a bignums, backed by GNU MP when the native ints are too small. Maybe in that particular case, the check fails, and the computation overflows the native int.

1 comments

Then why 2^488 works correctly but nothing in 2^(64..487) ?