public Fix GetMagnitude() { if (X == 0 && Y == 0) { return(Fix.Zero); } var n = (ulong)(X.Raw * (long)X.Raw + Y.Raw * (long)Y.Raw); return(new Fix((int)(FixMath.SqrtULong(n << 2) + 1) >> 1)); }