



Bits error versus a1




Bits error versus a2




Bits error versus b1




Bits error versus b2
Results
| Original | 10.8 |
|---|---|
| Target | 11.0 |
| Herbie | 4.7 |
if (* a1 a2) < -1.8915275815679805e+273 or -6.41589089834747e-194 < (* a1 a2) < 1.4259065073576258e-241 or 8.069509392052268e+107 < (* a1 a2) Initial program 19.8
rmApplied times-frac6.3
if -1.8915275815679805e+273 < (* a1 a2) < -6.41589089834747e-194Initial program 5.4
rmApplied associate-/r*4.4
rmApplied div-inv4.4
rmApplied add-cube-cbrt5.2
Applied associate-*r*5.2
rmApplied cbrt-div5.0
Applied cbrt-div5.1
Applied associate-*l/5.0
Applied associate-*r/5.0
Applied frac-times5.0
Applied associate-/l/3.6
Simplified3.6
if 1.4259065073576258e-241 < (* a1 a2) < 8.069509392052268e+107Initial program 3.8
rmApplied associate-/r*4.5
rmApplied div-inv4.5
rmApplied add-cube-cbrt5.2
Applied associate-*r*5.2
Taylor expanded around -inf 3.8
Final simplification4.7
herbie shell --seed 2019005
(FPCore (a1 a2 b1 b2)
:name "Quotient of products"
:herbie-target
(* (/ a1 b1) (/ a2 b2))
(/ (* a1 a2) (* b1 b2)))
Time bar (total: 7.9s)Debug log
1 calls. Slowest were:
| 43.0ms | (/ (* a1 a2) (* b1 b2)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 9.6b
Found 1 expressions with local error:
| 9.6b | (/ (* a1 a2) (* b1 b2)) |
1 calls. Slowest were:
| 5.0ms | (/ (* a1 a2) (* b1 b2)) |
1 calls. Slowest were:
| 32.0ms | (/ (* a1 a2) (* b1 b2)) |
7 calls. Slowest were:
| 155.0ms | (/ (* (* (* a1 a2) (* a1 a2)) (* a1 a2)) (* (* (* b1 b2) (* b1 b2)) (* b1 b2))) |
| 81.0ms | (- (log (* a1 a2)) (log (* b1 b2))) |
| 34.0ms | (/ (* a1 a2) (* b2 b1)) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 5.3b | (/ (/ (* a1 a2) b1) b2) |
| 3.0b | (/ (* a1 a2) b1) |
2 calls. Slowest were:
| 8.0ms | (/ (/ (* a1 a2) b1) b2) |
| 4.0ms | (/ (* a1 a2) b1) |
2 calls. Slowest were:
| 25.0ms | (/ (/ (* a1 a2) b1) b2) |
| 12.0ms | (/ (* a1 a2) b1) |
10 calls. Slowest were:
| 18.0ms | (/ (* a1 a2) (* b2 b1)) |
| 17.0ms | (/ (* a1 a2) (* b2 b1)) |
| 17.0ms | (/ (* a1 a2) (* b2 b1)) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 5.3b | (/ (* (* a1 a2) (/ 1 b1)) b2) |
| 3.1b | (* (* a1 a2) (/ 1 b1)) |
2 calls. Slowest were:
| 6.0ms | (/ (* (* a1 a2) (/ 1 b1)) b2) |
| 3.0ms | (* (* a1 a2) (/ 1 b1)) |
2 calls. Slowest were:
| 29.0ms | (/ (* (* a1 a2) (/ 1 b1)) b2) |
| 21.0ms | (* (* a1 a2) (/ 1 b1)) |
16 calls. Slowest were:
| 519.0ms | (* (* (* (* a1 a2) (* a1 a2)) (* a1 a2)) (* (* (/ 1 b1) (/ 1 b1)) (/ 1 b1))) |
| 61.0ms | (+ (log (* a1 a2)) (log (/ 1 b1))) |
| 32.0ms | (/ (* a1 a2) (* b2 b1)) |
10 alts after pruning (9 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 5.3b | (/ (* (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) (cbrt (/ 1 b1))) b2) |
| 2.9b | (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) |
| 0.6b | (cbrt (/ 1 b1)) |
| 0.6b | (cbrt (/ 1 b1)) |
4 calls. Slowest were:
| 25.0ms | (/ (* (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) (cbrt (/ 1 b1))) b2) |
| 12.0ms | (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) |
| 1.0ms | (cbrt (/ 1 b1)) |
4 calls. Slowest were:
| 309.0ms | (cbrt (/ 1 b1)) |
| 295.0ms | (cbrt (/ 1 b1)) |
| 107.0ms | (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) |
| 76.0ms | (/ (* (* (* a1 a2) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) (cbrt (/ 1 b1))) b2) |
40 calls. Slowest were:
| 390.0ms | (* (* (* (* a1 a2) (* a1 a2)) (* a1 a2)) (* (* (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1))) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1)))) (* (cbrt (/ 1 b1)) (cbrt (/ 1 b1))))) |
| 216.0ms | (* (* (* (* a1 a2) (* a1 a2)) (* a1 a2)) (* (/ 1 b1) (/ 1 b1))) |
| 125.0ms | (* (* a1 (* (pow (cbrt -1) 2) a2)) (pow (/ 1 (pow b1 2)) 1/3)) |
9 alts after pruning (7 fresh and 2 done)
Merged error: 0.0b
55.2% (4.7b remaining)
Error of 4.7b against oracle of 0.0b and baseline of 10.6b