


Bits error versus x1



Bits error versus x2
Results
Initial program 0.5
rmApplied sub-neg0.5
Applied distribute-lft-in0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019002 +o rules:numerics
(FPCore (x1 x2)
:name "Rosa's FloatVsDoubleBenchmark"
(+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))))
Time bar (total: 1.7m)Debug log
1 calls. Slowest were:
| 448.0ms | (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.5b
Found 4 expressions with local error:
| 6.4b | (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) |
| 6.4b | (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) |
| 2.9b | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) |
| 1.9b | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
4 calls. Slowest were:
| 143.0ms | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) |
| 126.0ms | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
| 38.0ms | (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) |
4 calls. Slowest were:
| 233.0ms | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) |
| 77.0ms | (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) |
| 50.0ms | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
| 49.0ms | (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) |
91 calls. Slowest were:
| 1.0s | (+ (* (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (pow (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) (pow 3 3))) (+ (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) (* (+ (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (+ (* 3 3) (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3))) (* (* x1 x1) (- (* (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* 6 6))))) |
| 687.0ms | (+ (* (* (* (* 2 x1) (- (+ (* (* 3 x1) x1) (* 2 x2)) x1)) (- (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (* 3 3))) (+ (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) (* (* (+ (* x1 x1) 1) (+ (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* 6 6))))) |
| 627.0ms | (+ (* (* (* (* 2 x1) (- (+ (* (* 3 x1) x1) (* 2 x2)) x1)) (- (pow (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) (pow 3 3))) (+ (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6)) (* (* (+ (* x1 x1) 1) (+ (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (+ (* 3 3) (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)))) (* (* x1 x1) (- (* (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* 6 6))))) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 6.4b | (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) |
| 6.4b | (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) |
| 2.9b | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (+ (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))) |
| 1.9b | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
4 calls. Slowest were:
| 210.0ms | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (+ (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))) |
| 141.0ms | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
| 45.0ms | (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) |
4 calls. Slowest were:
| 247.0ms | (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (+ (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))) |
| 54.0ms | (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) |
| 52.0ms | (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3) |
| 43.0ms | (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) |
82 calls. Slowest were:
| 848.0ms | (* (+ (* x1 x1) 1) (- (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))) |
| 772.0ms | (* (+ (* x1 x1) 1) (+ (* (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))) (- (* (* x1 (* x1 -6)) (* x1 (* x1 -6))) (* (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))))) |
| 734.0ms | (* (* (+ (* x1 x1) 1) (+ (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (+ (* 3 3) (* (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)))) (+ (* (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))) (- (* (* x1 (* x1 -6)) (* x1 (* x1 -6))) (* (* (* x1 x1) (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* x1 (* x1 -6)))))) |
9 alts after pruning (8 fresh and 1 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 7.6b | (fma (fma 4 (/ (fma 3 (* x1 x1) (- (* x2 2) x1)) (fma x1 x1 1)) -6) (* x1 x1) (/ (- (/ (fma x1 (* 3 x1) (* x2 2)) (fma x1 x1 1)) (+ (/ x1 (fma x1 x1 1)) 3)) (/ (fma x1 x1 1) (fma (fma x1 (* 3 x1) (* x2 2)) (* x1 2) (* (* x1 2) (- x1)))))) |
| 6.4b | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 1.9b | (- (/ (fma x1 (* 3 x1) (* x2 2)) (fma x1 x1 1)) (+ (/ x1 (fma x1 x1 1)) 3)) |
| 0.5b | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
4 calls. Slowest were:
| 22.0ms | (- (/ (fma x1 (* 3 x1) (* x2 2)) (fma x1 x1 1)) (+ (/ x1 (fma x1 x1 1)) 3)) |
| 4.0ms | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 1.0ms | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
4 calls. Slowest were:
| 162.0ms | (fma (fma 4 (/ (fma 3 (* x1 x1) (- (* x2 2) x1)) (fma x1 x1 1)) -6) (* x1 x1) (/ (- (/ (fma x1 (* 3 x1) (* x2 2)) (fma x1 x1 1)) (+ (/ x1 (fma x1 x1 1)) 3)) (/ (fma x1 x1 1) (fma (fma x1 (* 3 x1) (* x2 2)) (* x1 2) (* (* x1 2) (- x1)))))) |
| 64.0ms | (- (/ (fma x1 (* 3 x1) (* x2 2)) (fma x1 x1 1)) (+ (/ x1 (fma x1 x1 1)) 3)) |
| 48.0ms | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 22.0ms | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
132 calls. Slowest were:
| 683.0ms | (- (* (fma x1 (* 3 x1) (* x2 2)) (- (/ x1 (fma x1 x1 1)) 3)) (* (fma x1 x1 1) (- (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (* 3 3)))) |
| 541.0ms | (fma (- (+ (/ x1 (fma x1 x1 1)) 3)) 1 (* (+ (/ x1 (fma x1 x1 1)) 3) 1)) |
| 493.0ms | (fma (- (+ (/ x1 (fma x1 x1 1)) 3)) 1 (* (+ (/ x1 (fma x1 x1 1)) 3) 1)) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 7.6b | (fma (fma 4 (/ (fma 3 (* x1 x1) (- (* x2 2) x1)) (fma x1 x1 1)) -6) (* x1 x1) (/ (/ (- (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)))) (* (fma x1 x1 1) (+ (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3)))) (fma (fma x1 x1 1) (fma -3 (/ x1 (fma x1 x1 1)) 9) (/ (* x1 x1) (fma x1 x1 1)))) (/ (fma x1 x1 1) (fma (fma x1 (* 3 x1) (* x2 2)) (* x1 2) (* (* x1 2) (- x1)))))) |
| 6.4b | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 1.9b | (- (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)))) (* (fma x1 x1 1) (+ (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3)))) |
| 0.5b | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
4 calls. Slowest were:
| 20.0ms | (- (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)))) (* (fma x1 x1 1) (+ (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3)))) |
| 4.0ms | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 1.0ms | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
4 calls. Slowest were:
| 256.0ms | (fma (fma 4 (/ (fma 3 (* x1 x1) (- (* x2 2) x1)) (fma x1 x1 1)) -6) (* x1 x1) (/ (/ (- (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)))) (* (fma x1 x1 1) (+ (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3)))) (fma (fma x1 x1 1) (fma -3 (/ x1 (fma x1 x1 1)) 9) (/ (* x1 x1) (fma x1 x1 1)))) (/ (fma x1 x1 1) (fma (fma x1 (* 3 x1) (* x2 2)) (* x1 2) (* (* x1 2) (- x1)))))) |
| 112.0ms | (- (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)))) (* (fma x1 x1 1) (+ (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3)))) |
| 37.0ms | (* (/ 3 (/ (fma x1 x1 1) (* x1 x1))) (fma 3 (* x1 x1) (- (* x2 2) x1))) |
| 22.0ms | (/ 3 (/ (fma x1 x1 1) (* x1 x1))) |
72 calls. Slowest were:
| 1.1s | (- (* (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (* (/ x1 (fma x1 x1 1)) x1) (+ (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))) (* (fma x1 x1 1) (- (* (* 3 3) (* 3 3)) (* (* (/ x1 (fma x1 x1 1)) 3) (* (/ x1 (fma x1 x1 1)) 3)))))) (- (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3))) (* (* (fma x1 x1 1) (+ (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))) (* (fma x1 x1 1) (- (* (pow (/ x1 (fma x1 x1 1)) 3) (pow (/ x1 (fma x1 x1 1)) 3)) (* (pow 3 3) (pow 3 3)))))) |
| 1.0s | (- (* (* (fma x1 (* 3 x1) (* x2 2)) (+ (* (* x1 (/ x1 (fma x1 x1 1))) (+ (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))) (* (fma x1 x1 1) (- (* (* 3 3) (* 3 3)) (* (* (/ x1 (fma x1 x1 1)) 3) (* (/ x1 (fma x1 x1 1)) 3)))))) (- (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3))) (* (* (fma x1 x1 1) (+ (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))) (* (fma x1 x1 1) (- (* (pow (/ x1 (fma x1 x1 1)) 3) (pow (/ x1 (fma x1 x1 1)) 3)) (* (pow 3 3) (pow 3 3)))))) |
| 832.0ms | (- (* (* (fma x1 (* 3 x1) (* x2 2)) (- (* (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1)))) (* (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3)) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))))) (+ (* (pow (/ x1 (fma x1 x1 1)) 3) (pow (/ x1 (fma x1 x1 1)) 3)) (- (* (pow 3 3) (pow 3 3)) (* (pow (/ x1 (fma x1 x1 1)) 3) (pow 3 3))))) (* (- (* (/ x1 (fma x1 x1 1)) (/ x1 (fma x1 x1 1))) (- (* 3 3) (* (/ x1 (fma x1 x1 1)) 3))) (* (fma x1 x1 1) (+ (pow (pow (/ x1 (fma x1 x1 1)) 3) 3) (pow (pow 3 3) 3))))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 0.4b
0% (0.1b remaining)
Error of 0.5b against oracle of 0.4b and baseline of 0.5b