private int Remainder( int m) { Debug.Assert(m > 0); long acc = 0; for (int pos = 0; pos < m_magnitude.Length; ++pos) { long posVal = (uint)m_magnitude[pos]; acc = (acc << 32 | posVal) % m; } return (int)acc; }