


Bits error versus x
if x < -13564.282494661315 or 1.0092784462051199 < x Initial program 58.9
rmApplied flip--58.9
rmApplied div-inv59.1
Applied associate-*l*59.1
rmApplied associate-*l/59.1
Applied associate-*r/58.9
Applied associate-*l/58.9
Applied frac-sub60.6
Simplified60.7
Taylor expanded around inf 0.6
Simplified0.3
if -13564.282494661315 < x < 1.0092784462051199Initial program 0.1
rmApplied flip--0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
rmApplied associate-*l/0.1
Applied associate-*r/0.1
Applied associate-*l/0.1
Applied frac-sub0.1
Simplified0.1
rmApplied expm1-log1p-u0.1
Final simplification0.2
herbie shell --seed 2019007 +o rules:numerics
(FPCore (x)
:name "Asymptote C"
(- (/ x (+ x 1)) (/ (+ x 1) (- x 1))))
Time bar (total: 3.2m)Debug log
1 calls. Slowest were:
| 14.0ms | (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 28.9b
Found 3 expressions with local error:
| 3.5b | (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 0.0b | (/ (+ x 1) (- x 1)) |
| 0.0b | (/ x (+ x 1)) |
3 calls. Slowest were:
| 8.0ms | (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 3.0ms | (/ (+ x 1) (- x 1)) |
| 0.0ms | (/ x (+ x 1)) |
3 calls. Slowest were:
| 37.0ms | (- (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 10.0ms | (/ x (+ x 1)) |
| 10.0ms | (/ (+ x 1) (- x 1)) |
235 calls. Slowest were:
| 940.0ms | (fma (/ x (- (* x x) (* 1 1))) (- x 1) (- (* (/ 1 (- x 1)) (+ x 1)))) |
| 859.0ms | (fma (/ x (- (* x x) (* 1 1))) (- x 1) (- (* (cbrt (/ (+ x 1) (- x 1))) (* (cbrt (/ (+ x 1) (- x 1))) (cbrt (/ (+ x 1) (- x 1))))))) |
| 815.0ms | (fma x (/ 1 (+ x 1)) (- (* (+ x 1) (/ (+ x 1) (- (* x x) (* 1 1)))))) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 3.5b | (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) |
| 0.0b | (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1))) |
| 0.0b | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 0.0b | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
4 calls. Slowest were:
| 42.0ms | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 21.0ms | (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) |
| 15.0ms | (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1))) |
4 calls. Slowest were:
| 101.0ms | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 78.0ms | (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1)))) |
| 39.0ms | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 22.0ms | (* (/ (+ x 1) (- x 1)) (/ (+ x 1) (- x 1))) |
145 calls. Slowest were:
| 889.0ms | (* (* (+ x 1) (+ x 1)) (- x 1)) |
| 879.0ms | (* (+ x 1) (* (- x 1) (- x 1))) |
| 819.0ms | (- (* (* x x) (- x 1)) (* (* (+ x 1) (+ x 1)) (* (+ x 1) (/ (+ x 1) (- x 1))))) |
5 alts after pruning (5 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 7.3b | (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1))))) |
| 0.1b | (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1)))) |
| 0.0b | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 0.0b | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1))))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
4 calls. Slowest were:
| 41.0ms | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1))))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 18.0ms | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 17.0ms | (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1)))) |
4 calls. Slowest were:
| 107.0ms | (/ (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1))))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 63.0ms | (- (* (/ x (+ x 1)) (/ x (+ x 1))) (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1))))) |
| 40.0ms | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 22.0ms | (* (+ x 1) (* (/ 1 (- x 1)) (/ (+ x 1) (- x 1)))) |
191 calls. Slowest were:
| 1.1s | (- (* (* x x) (- x 1)) (* (* (+ x 1) (+ x 1)) (* (+ x 1) (* 1 (/ (+ x 1) (- x 1)))))) |
| 997.0ms | (* (* (+ x 1) (+ x 1)) (* (- x 1) (* (- x 1) (- x 1)))) |
| 996.0ms | (* (* (+ x 1) (+ x 1)) (- x 1)) |
5 alts after pruning (4 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 21.4b | (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) |
| 0.0b | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 0.0b | (/ (/ (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) (* (+ x 1) (- x 1))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 0.0b | (/ (+ x 1) (- x 1)) |
4 calls. Slowest were:
| 68.0ms | (/ (/ (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) (* (+ x 1) (- x 1))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 38.0ms | (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) |
| 13.0ms | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
4 calls. Slowest were:
| 131.0ms | (/ (/ (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) (* (+ x 1) (- x 1))) (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1)))) |
| 93.0ms | (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1)))) |
| 41.0ms | (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))) |
| 18.0ms | (/ (+ x 1) (- x 1)) |
292 calls. Slowest were:
| 994.0ms | (- (+ (* 2 x) (+ (* 2 (pow x 2)) 1))) |
| 885.0ms | (* (/ (+ 1 x) (+ x -1)) (+ x -1)) |
| 776.0ms | (/ (/ (sqrt (- (/ (* x x) (/ (+ 1 x) (+ x -1))) (* (* (+ 1 x) (+ 1 x)) (/ (+ 1 x) (+ x -1))))) (- x 1)) (cbrt (+ (/ x (+ x 1)) (/ (+ x 1) (- x 1))))) |
6 alts after pruning (4 fresh and 2 done)
Merged error: 0.0b
99.5% (0.1b remaining)
Error of 0.2b against oracle of 0.0b and baseline of 29.5b