There are a bunch of other funny errors, too:
| > sprintf("%x",281474976710656); | Result: "%"
And I suspect there is some bit rot in the Gmp.mpz routine:
| > Gmp.mpz(100000000000000); | (22) Result: 100000000000000 // correct INT64 -> mpz | > Gmp.mpz(1000000000000000); | (23) Result: 155575120199680 // duh? | > Gmp.mpz(10000000000000000); | (24) Result: 148376402329600 | > Gmp.mpz(100000000000000000); | (25) Result: 76389223628800 | > Gmp.mpz(1000000000000000000); | (26) Result: 200942316421120 | > Gmp.mpz(10000000000000000000); // mpz -> mpz again | (27) Result: 10000000000000000000
/ Mirar
Previous text:
2003-01-26 17:20: Subject: INT_TYPE = INT64
And those that shouldn't be INT_TYPE should probably be size_t or ptrdiff_t instead. I suspect there are actually only a few places where int or INT32 really is the most appropriate type.
/ Martin Stjernholm, Roxen IS