File tree Expand file tree Collapse file tree 4 files changed +8
-6
lines changed Expand file tree Collapse file tree 4 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -387,9 +387,9 @@ module Constant = struct
387
387
done ;
388
388
! same
389
389
| Int64 a , Int64 b -> Some (Int64. equal a b)
390
- | Float_array a , Float_array b -> Some (Array. equal Float. equal a b)
390
+ | Float_array a , Float_array b -> Some (Array. equal Float. ieee_equal a b)
391
391
| Int a , Int b -> Some (Int32. equal a b)
392
- | Float a , Float b -> Some (Float. equal a b)
392
+ | Float a , Float b -> Some (Float. ieee_equal a b)
393
393
| String _ , NativeString _ | NativeString _ , String _ -> None
394
394
| Int _ , Float _ | Float _ , Int _ -> None
395
395
| Tuple ((0 | 254 ), _ , _ ), Float_array _ -> None
Original file line number Diff line number Diff line change @@ -237,7 +237,7 @@ let the_cont_of info x (a : cont array) =
237
237
let constant_js_equal a b =
238
238
match a, b with
239
239
| Int i , Int j -> Some (Int32. equal i j)
240
- | Float a , Float b -> Some (Float. equal a b)
240
+ | Float a , Float b -> Some (Float. ieee_equal a b)
241
241
| NativeString a , NativeString b -> Some (Native_string. equal a b)
242
242
| String a , String b when Config.Flag. use_js_string () -> Some (String. equal a b)
243
243
| Int _ , Float _ | Float _ , Int _ -> None
Original file line number Diff line number Diff line change @@ -112,14 +112,14 @@ end = struct
112
112
| FP_infinite -> if Float. (v < 0. ) then " -Infinity" else " Infinity"
113
113
| FP_normal | FP_subnormal -> (
114
114
let vint = int_of_float v in
115
- if Float. equal (float_of_int vint) v
115
+ if Float. ieee_equal (float_of_int vint) v
116
116
then Printf. sprintf " %d." vint
117
117
else
118
118
match
119
119
find_smaller
120
120
~f: (fun prec ->
121
121
let s = float_to_string prec v in
122
- if Float. equal v (float_of_string s) then Some s else None )
122
+ if Float. ieee_equal v (float_of_string s) then Some s else None )
123
123
~bad: 0
124
124
~good: 18
125
125
~good_s: " max"
Original file line number Diff line number Diff line change 401
401
module Float = struct
402
402
type t = float
403
403
404
- let equal = Float. equal
404
+ let equal (_ : float ) (_ : float ) = `Use_ieee_equal_or_bitwise_equal
405
+
406
+ let ieee_equal (a : float ) (b : float ) = Poly. equal a b
405
407
406
408
let bitwise_equal (a : float ) (b : float ) =
407
409
Int64. equal (Int64. bits_of_float a) (Int64. bits_of_float b)
You can’t perform that action at this time.
0 commit comments