


Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ (* (/ y z) t) t) < -5.579595939232642e-117 or 5.465027716549306e-309 < (/ (* (/ y z) t) t) < 1.3033798898661042e+287Initial program 6.2
Simplified8.2
Taylor expanded around -inf 8.9
rmApplied associate-/l*2.6
if -5.579595939232642e-117 < (/ (* (/ y z) t) t) < 5.465027716549306e-309 or 1.3033798898661042e+287 < (/ (* (/ y z) t) t) Initial program 26.8
Simplified2.0
Final simplification2.4
herbie shell --seed 2019008 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))
Time bar (total: 4.3s)Debug log
1 calls. Slowest were:
| 278.0ms | (* x (/ (* (/ y z) t) t)) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.3b
Found 1 expressions with local error:
| 8.1b | (* y (/ x z)) |
1 calls. Slowest were:
| 2.0ms | (* y (/ x z)) |
1 calls. Slowest were:
| 22.0ms | (* y (/ x z)) |
7 calls. Slowest were:
| 9.0ms | (/ (* x y) z) |
| 8.0ms | (/ (* x y) z) |
| 5.0ms | (/ (* x y) z) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 0.0b
Found 1 expressions with local error:
| 7.5b | (/ (* x y) z) |
1 calls. Slowest were:
| 2.0ms | (/ (* x y) z) |
1 calls. Slowest were:
| 13.0ms | (/ (* x y) z) |
3 calls. Slowest were:
| 7.0ms | (/ (* x y) z) |
| 5.0ms | (/ (* x y) z) |
| 5.0ms | (/ (* x y) z) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 0.0b
Found 1 expressions with local error:
| 7.5b | (/ x (/ z y)) |
1 calls. Slowest were:
| 0.0ms | (/ x (/ z y)) |
1 calls. Slowest were:
| 15.0ms | (/ x (/ z y)) |
7 calls. Slowest were:
| 5.0ms | (/ (* x y) z) |
| 5.0ms | (/ (* x y) z) |
| 5.0ms | (/ (* x y) z) |
7 alts after pruning (5 fresh and 2 done)
Merged error: 0b
Found 1 expressions with local error:
| 7.6b | (* (* y x) (/ 1 z)) |
1 calls. Slowest were:
| 7.0ms | (* (* y x) (/ 1 z)) |
1 calls. Slowest were:
| 21.0ms | (* (* y x) (/ 1 z)) |
10 calls. Slowest were:
| 491.0ms | (* (* (* (* y x) (* y x)) (* y x)) (* (* (/ 1 z) (/ 1 z)) (/ 1 z))) |
| 33.0ms | (+ (log (* y x)) (log (/ 1 z))) |
| 20.0ms | (* (* y x) (/ 1 z)) |
7 alts after pruning (4 fresh and 3 done)
Merged error: 0b
60.2% (2.4b remaining)
Error of 2.4b against oracle of 0.0b and baseline of 6.0b