nl_tokens: am2 avoids a big mult - and - extract completely . Max digit bits should be < = 30 because we do bitwise ops on values up to 2 * hdvalue^2 - hdvalue - 1 ( < 2^31 )
pl_tokens: function am2 ( i , x , w , j , c , n ) { var xl = x & 0x7fff , xh = x >> 15 while ( -- n >= 0 ) { var l = this [ i ] & 0x7fff <mask> h = this [ i ++ ] >> 15 var m = xh * l + h * xl l = xl * l + ( ( m & 0x7fff ) << 15 ) + w [ j ] + ( c & 0x3fffffff ) c = ( l >>> 30 ) + ( m >>> 15 ) + xh * h + ( c >>> 30 ) w [ j ++ ] = l & 0x3fffffff } return c }