/guava/android/guava/src/com/google/common/math/LongMath.java
long limit = Long.MAX_VALUE + ( ( p >>> ( Long.SIZE - 1) ) & ( k & 1) ) ;
long limit = Long.MAX_VALUE + ( ( b >>> ( Long.SIZE - 1 ) ) & ( k & 1 ) ) ;
return ((k & 1) == 0) ? (1L << k) : (-1L << k); default: throw new AssertionError(); } } long accum = 1; <extra_id_0> while (true) { switch (k) { case 0: return accum; case 1: return saturatedMultiply(accum, b);