diff options
author | Xavier Leroy <xavierleroy@users.noreply.github.com> | 2015-10-11 09:56:49 +0200 |
---|---|---|
committer | Xavier Leroy <xavierleroy@users.noreply.github.com> | 2015-10-11 09:56:49 +0200 |
commit | f8bc6863f72948b8041289e200ff1d8b1f63a342 (patch) | |
tree | b0c0d0713140069f6a5da2cce1296c6e275e9b4d /flocq/Core/Fcore_FTZ.v | |
parent | b0c47e12f2bbff0905ad853b90169df16d87f6be (diff) | |
parent | 0af966a42eb60e9af43f9a450d924758a83946c6 (diff) | |
download | compcert-f8bc6863f72948b8041289e200ff1d8b1f63a342.tar.gz compcert-f8bc6863f72948b8041289e200ff1d8b1f63a342.zip |
Merge pull request #55 from silene/master
Upgrade to Flocq 2.5.0.
Diffstat (limited to 'flocq/Core/Fcore_FTZ.v')
-rw-r--r-- | flocq/Core/Fcore_FTZ.v | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/flocq/Core/Fcore_FTZ.v b/flocq/Core/Fcore_FTZ.v index 5f3e5337..2ebc7851 100644 --- a/flocq/Core/Fcore_FTZ.v +++ b/flocq/Core/Fcore_FTZ.v @@ -23,6 +23,7 @@ Require Import Fcore_defs. Require Import Fcore_rnd. Require Import Fcore_generic_fmt. Require Import Fcore_float_prop. +Require Import Fcore_ulp. Require Import Fcore_FLX. Section RND_FTZ. @@ -182,7 +183,6 @@ Theorem FTZ_format_FLXN : (bpow (emin + prec - 1) <= Rabs x)%R -> FLXN_format beta prec x -> FTZ_format x. Proof. -clear prec_gt_0_. intros x Hx Fx. apply FTZ_format_generic. apply generic_format_FLXN in Fx. @@ -195,6 +195,21 @@ apply Zle_refl. omega. Qed. +Theorem ulp_FTZ_0: ulp beta FTZ_exp 0 = bpow (emin+prec-1). +Proof with auto with typeclass_instances. +unfold ulp; rewrite Req_bool_true; trivial. +case (negligible_exp_spec FTZ_exp). +intros T; specialize (T (emin-1)%Z); contradict T. +apply Zle_not_lt; unfold FTZ_exp; unfold Prec_gt_0 in prec_gt_0_. +rewrite Zlt_bool_true; omega. +assert (V:(FTZ_exp (emin+prec-1) = emin+prec-1)%Z). +unfold FTZ_exp; rewrite Zlt_bool_true; omega. +intros n H2; rewrite <-V. +apply f_equal, fexp_negligible_exp_eq... +omega. +Qed. + + Section FTZ_round. (** Rounding with FTZ *) |