aboutsummaryrefslogtreecommitdiffstats
path: root/flocq/Core/Fcore_FTZ.v
diff options
context:
space:
mode:
authorXavier Leroy <xavierleroy@users.noreply.github.com>2015-10-11 09:56:49 +0200
committerXavier Leroy <xavierleroy@users.noreply.github.com>2015-10-11 09:56:49 +0200
commitf8bc6863f72948b8041289e200ff1d8b1f63a342 (patch)
treeb0c0d0713140069f6a5da2cce1296c6e275e9b4d /flocq/Core/Fcore_FTZ.v
parentb0c47e12f2bbff0905ad853b90169df16d87f6be (diff)
parent0af966a42eb60e9af43f9a450d924758a83946c6 (diff)
downloadcompcert-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.v17
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 *)