fact: Definition round_at_exp_aux mode e2 sign m1 e1 pos := let nb := exponent_sub e2 e1 in match exponent_cmp nb exponent_zero with | Gt => match exponent_cmp (mantissa_digits m1) nb with | Gt => let (m2, pos2) := mantissa_shr m1 nb pos in float_aux sign (adjust_mantissa mode m2 pos2 sign) e2 | Eq => let pos2 := mantissa_shrp m1 nb pos in if need_change_zero mode pos2 sign then float_aux sign mantissa_one e2 else zero | Lt => let pos2 := match pos with pos_Eq => pos_Eq | _ => pos_Lo end in if need_change_zero mode pos_Lo sign then float_aux sign mantissa_one e2 else zero end | Eq => float_aux sign (adjust_mantissa mode m1 pos sign) e1 | Lt => float_aux sign m1 e1 end.
imports: Coq(ZArith Reals Lia Bool Psatz) Flocq(Zaux Raux Digits Bracket) mathcomp.ssreflect(ssrbool) Xreal Basic Generic Generic_proof Sig Specific_sig