nl_tokens: Returns the product of { @code a } and { @code b } provided the result fits into a { @code long } .
pl_tokens: public static long safeMultiply ( long a , long b ) { if ( a == 0L || b == 0L ) { return 0L ; } long <mask> = a < 0L == b < 0L ? Long . MAX_VALUE : Long . MIN_VALUE ; if ( ( b > 0L && b > max / a ) || ( b < 0L && b < max / a ) ) { throw new ArithmeticException ( "Long overflow: " + a + " * " + b ) ; } return a * b ; }