Eliot Miranda wrote:
I'm told that having 31-bit and opposed to 30-bit SmallIntegers is a bug advantage but I remain to be convinced; VW has always had 30-bit SmallIntegers and seems none the worse for it.
I was going to make a contrary argument, except when I was doing the math it didn't go my way ;-) Here is why: Obviously, when having computations that can overflow into large ints the performance difference is huge (factors of 30-100). However, most algorithms that we care about (like crypto) is strictly 32 bit where even with 31 bit SmallIntegers we go LargeInt half the time. Consequently the statistical difference between 31 and 30 bit for those algorithms should be in the range of 50% which, although certainly not insignificant, is nothing compared to when you can run the entire algorithm as SmallInteger computations.
Cheers, - Andreas