mod method
Implementation
void mod(int n) {
if (_hi32 == 0) {
// hi32 is zero, so just caculate lo32.
_lo32 %= n;
} else {
// hi32 is not zero, use Horner's Method
const b = 0x10000;
final a0 = _lo32 & _MASK_16;
final a1 = (_lo32 >> 16) & _MASK_16;
final a2 = _hi32 & _MASK_16;
final a3 = (_hi32 >> 16) & _MASK_16;
_lo32 = ((((((a3 % n) * b + a2) % n) * b + a1) % n) * b + a0) % n;
// Assume that n is a 32-bit integer, so hi32 will always be zero
_hi32 = 0;
}
}