public static DiyFp Normalize(DiyFp a) { DiyFp result = a; result.Normalize(); return(result); }
public void NormalizedBoundaries(out DiyFp out_m_minus, out DiyFp out_m_plus) { Debug.Assert(Value > 0.0); DiyFp v = AsDiyFp(); DiyFp m_plus = DiyFp.Normalize(new DiyFp((v.F << 1) + 1, v.E - 1)); DiyFp m_minus; if (LowerBoundaryIsCloser()) { m_minus = new DiyFp((v.F << 2) - 1, v.E - 2); } else { m_minus = new DiyFp((v.F << 1) - 1, v.E - 1); } m_minus.F = m_minus.F << (m_minus.E - m_plus.E); m_minus.E = m_plus.E; out_m_plus = m_plus; out_m_minus = m_minus; }