1 import checkedint.sticky : smartOp; // use IntFlagPolicy.sticky
2
3 assert(smartOp.modPow2( 101, 1) == 1);
4 assert(smartOp.modPow2( 101, 3) == 5);
5 assert(smartOp.modPow2(-101, 3) == -5);
6
7 assert(smartOp.modPow2(101, -2) == 0);
8 assert(smartOp.modPow2(101, 1_000) == 101);
Equivalent to left % pow(2, exp), but faster and works with a wider range of inputs. This is a safer alternative to left & ((1 << exp) - 1) that is still very fast.