On 1 Jun 2017, at 15:59, Henrik Sperre Johansen <henrik.s.johansen@veloxit.no> wrote:
SmallInteger >> digitAt: has an n > 4 ifTrue: [^0] check, in 64bit this needs to check against 8. (The value represents max number of 8-bit digits in a SmallInteger)
I can confirm that this fixes the problems that I reported. I guess we should include this patch ? This fixes some of the failing tests in Kernel-Tests-Numbers but not all of them (some others are really hardcoded constants in the tests).
"I thought BoxedFloat64 should not be used in 64-bit ?" It will be used for some large exponents, search for "immediate float" in https://clementbera.wordpress.com/2014/01/16/spurs-new-object-format/ for a good description.
"Also, should #emin, #emax and friends not be different for SmallFloat64 ? " No, it's an implementation detail. Both float classes represent 64bit floating points with emin/emax as listed. When one is insufficient; it should be swapped to the other automatically, in a manner similar to Byte/WideStrings instances.
OK, I understand better now. Thank you both.
Cheers, Henry
-- View this message in context: http://forum.world.st/Confused-about-Floats-on-64-bit-Pharo-6-tp4948805p4948... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.