Some of the involved numbers are bigger than can be represented in 32 bits.
 Therefore, the computation on 32 bit platforms will need to use more
software-emulated bigintegers to perform the computation successfully, and
that's where the performance difference is coming from.


I played with this by rewriting the code in another language, Go, just out
of curiosity:

    https://gist.github.com/dyoo/5708928

If we switch out the representation from int64 to int32, for example, we'll
see that the result is wrong.  So it's very much a data representation
issue.


The sum you're accumulating altogether is:

    15981747679237090

which is an integer that's much bigger than natively representable with 32
bits.
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to