



Bits error versus a1




Bits error versus a2




Bits error versus b1




Bits error versus b2
Results
| Original | 10.9 |
|---|---|
| Target | 11.2 |
| Herbie | 5.4 |
if (* a1 a2) < -1.80032910927971e+260 or 1.2457885067808956e+138 < (* a1 a2) Initial program 31.7
Initial simplification11.5
rmApplied div-inv11.5
Applied associate-*l*11.6
rmApplied associate-*r/11.4
if -1.80032910927971e+260 < (* a1 a2) < -9.386666746135581e-144 or 2.133718381578429e-211 < (* a1 a2) < 1.2457885067808956e+138Initial program 4.1
Initial simplification14.6
Taylor expanded around inf 4.1
if -9.386666746135581e-144 < (* a1 a2) < 2.133718381578429e-211Initial program 13.0
Initial simplification4.8
Final simplification5.4
herbie shell --seed 2018360 +o rules:numerics
(FPCore (a1 a2 b1 b2)
:name "Quotient of products"
:herbie-target
(* (/ a1 b1) (/ a2 b2))
(/ (* a1 a2) (* b1 b2)))
Time bar (total: 3.5s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 1.4b
Found 1 expressions with local error:
| 10.3b | (* (/ a1 b2) (/ a2 b1)) |
1 calls. Slowest were:
| 3.0ms | (* (/ a1 b2) (/ a2 b1)) |
1 calls. Slowest were:
| 28.0ms | (* (/ a1 b2) (/ a2 b1)) |
15 calls. Slowest were:
| 387.0ms | (* (* (* (/ a1 b2) (/ a1 b2)) (/ a1 b2)) (* (* (/ a2 b1) (/ a2 b1)) (/ a2 b1))) |
| 64.0ms | (+ (log (/ a1 b2)) (log (/ a2 b1))) |
| 35.0ms | (/ (* a1 a2) (* b2 b1)) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 5.7b | (* (/ 1 b2) (/ a2 b1)) |
| 4.1b | (* a1 (* (/ 1 b2) (/ a2 b1))) |
2 calls. Slowest were:
| 6.0ms | (* (/ 1 b2) (/ a2 b1)) |
| 5.0ms | (* a1 (* (/ 1 b2) (/ a2 b1))) |
2 calls. Slowest were:
| 23.0ms | (* a1 (* (/ 1 b2) (/ a2 b1))) |
| 22.0ms | (* (/ 1 b2) (/ a2 b1)) |
20 calls. Slowest were:
| 294.0ms | (* (* (* (/ 1 b2) (/ 1 b2)) (/ 1 b2)) (* (* (/ a2 b1) (/ a2 b1)) (/ a2 b1))) |
| 58.0ms | (+ (log (/ 1 b2)) (log (/ a2 b1))) |
| 38.0ms | (/ (* a1 a2) (* b2 b1)) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 0b
Found 2 expressions with local error:
| 5.6b | (/ (/ a2 b1) b2) |
| 4.1b | (* a1 (/ (/ a2 b1) b2)) |
2 calls. Slowest were:
| 5.0ms | (/ (/ a2 b1) b2) |
| 2.0ms | (* a1 (/ (/ a2 b1) b2)) |
2 calls. Slowest were:
| 33.0ms | (* a1 (/ (/ a2 b1) b2)) |
| 22.0ms | (/ (/ a2 b1) b2) |
12 calls. Slowest were:
| 36.0ms | (/ (* a1 a2) (* b2 b1)) |
| 35.0ms | (/ (* a1 a2) (* b2 b1)) |
| 35.0ms | (/ (* a1 a2) (* b2 b1)) |
7 alts after pruning (5 fresh and 2 done)
Merged error: 0b
Found 1 expressions with local error:
| 10.4b | (/ (* a1 a2) (* b2 b1)) |
1 calls. Slowest were:
| 3.0ms | (/ (* a1 a2) (* b2 b1)) |
1 calls. Slowest were:
| 31.0ms | (/ (* a1 a2) (* b2 b1)) |
7 calls. Slowest were:
| 199.0ms | (/ (* (* (* a1 a2) (* a1 a2)) (* a1 a2)) (* (* (* b2 b1) (* b2 b1)) (* b2 b1))) |
| 48.0ms | (- (log (* a1 a2)) (log (* b2 b1))) |
| 29.0ms | (/ (* a1 a2) (* b2 b1)) |
7 alts after pruning (4 fresh and 3 done)
Merged error: 0b
51.8% (5.3b remaining)
Error of 5.4b against oracle of 0.0b and baseline of 11.1b