diff options
| author | Erik Martin-Dorel | 2019-07-03 15:08:44 +0200 |
|---|---|---|
| committer | Pierre Roux | 2019-11-01 10:21:16 +0100 |
| commit | f155ba664a782f000e278d97ee5666e2e7d2adea (patch) | |
| tree | c7d9ddacde2059e4fa4745ce32395b9150764a1e /kernel/nativevalues.ml | |
| parent | f8fdc27f922694edf74a7b608de1596e0a1ac0e3 (diff) | |
Add "==", "<", "<=" in PrimFloat.v
* Add a related test-suite in compare.v (generated by a bash script)
Co-authored-by: Pierre Roux <pierre.roux@onera.fr>
Diffstat (limited to 'kernel/nativevalues.ml')
| -rw-r--r-- | kernel/nativevalues.ml | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/nativevalues.ml b/kernel/nativevalues.ml index 6b9d49052d..e4a8344eaf 100644 --- a/kernel/nativevalues.ml +++ b/kernel/nativevalues.ml @@ -539,6 +539,27 @@ let fabs accu x = if is_float x then no_check_fabs x else accu x +let no_check_feq x y = + mk_bool (Float64.eq (to_float x) (to_float y)) + +let feq accu x y = + if is_float x && is_float y then no_check_feq x y + else accu x y + +let no_check_flt x y = + mk_bool (Float64.lt (to_float x) (to_float y)) + +let flt accu x y = + if is_float x && is_float y then no_check_flt x y + else accu x y + +let no_check_fle x y = + mk_bool (Float64.le (to_float x) (to_float y)) + +let fle accu x y = + if is_float x && is_float y then no_check_fle x y + else accu x y + type coq_fcmp = | CFcmpAccu of t | CFcmpEq |
