public override int GetHashCode()
{
int hc = m_magnitude.Length;
if (m_magnitude.Length > 0)
{
hc ^= m_magnitude[0];
if (m_magnitude.Length > 1)
{
hc ^= m_magnitude[m_magnitude.Length - 1];
}
}
return m_sign < 0 ? ~hc : hc;
}