Subject: bug#13031: closed (Re: bug#13031: large numbers)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 07 Dec 2012 17:08:02 +0000

Your bug report

#13031: large numbers

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
13031: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13031
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#13031: large numbers
From: Mark H Weaver <[email-masked]>
To: Jozef Chraplewski <[email-masked]>
Cc: [email-masked]
Date: Fri, 07 Dec 2012 12:06:41 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Jozef,

Jozef Chraplewski <[email-masked]> writes:
> Yes, I use 64-bit machine and (* (expt 2 32) (expt 2 32)) produces 0 (without the patch).
>
> I've applied your fix and it works perfectly.

Excellent!  Thanks for bringing this problem to our attention,
and for helping us track it down :)

> I suppose that you will add the patch to the next stable version (2.0.8 ??)

Yes.

   Thanks again,
       Mark

Subject: large numbers
From: Jozef Chraplewski <[email-masked]>
To: [email-masked]
Date: Thu, 29 Nov 2012 09:42:09 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

It looks that guile returns incorrect results when it works with really big numbers.

I've found it during resolving problem 48 from Project Euler:

http://projecteuler.net/problem=48

The solution is trivial:

(define (problem-48 limit)
 (define (F)
   (let loop ((n 1)
              (sum 0))
     (if (<= n limit)
         (loop (+ n 1) (+ sum (expt n n)))
         sum)))

 (let* ((str (number->string (F)))
          (len (string-length str)))
   (substring str (- len 10) len)))

(display (problem-48 1000))
(newline)

The proper answer is 9110846700 but guile returns 6457854188

I've tested solution under other scheme implementations (MIT scheme, petite and mzscheme) and it works as it should.

Does such a big numbers in guile require any special treatment or just they are not supported?

Best,
Jozef