



Bits error versus x




Bits error versus eps
Results
| Original | 36.9 |
|---|---|
| Target | 14.9 |
| Herbie | 15.1 |
if eps < -2.5404406310779434e-12Initial program 28.4
rmApplied tan-sum0.6
rmApplied flip--0.7
if -2.5404406310779434e-12 < eps < 4.8213180199108696e-67Initial program 46.4
rmApplied tan-sum46.2
rmApplied flip3--46.2
Applied associate-/r/46.2
Simplified46.2
Taylor expanded around 0 30.5
Simplified30.5
if 4.8213180199108696e-67 < eps Initial program 30.2
rmApplied tan-sum4.8
rmApplied flip3--4.8
Applied associate-/r/4.8
Simplified4.8
Taylor expanded around inf 4.9
Final simplification15.1
herbie shell --seed 2019002
(FPCore (x eps)
:name "2tan (problem 3.3.2)"
:herbie-target
(/ (sin eps) (* (cos x) (cos (+ x eps))))
(- (tan (+ x eps)) (tan x)))
Time bar (total: 1.0m)Debug log
1 calls. Slowest were:
| 4.0ms | (- (tan (+ x eps)) (tan x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 35.3b
Found 2 expressions with local error:
| 3.3b | (tan (+ x eps)) |
| 1.1b | (- (tan (+ x eps)) (tan x)) |
2 calls. Slowest were:
| 5.0ms | (- (tan (+ x eps)) (tan x)) |
| 1.0ms | (tan (+ x eps)) |
2 calls. Slowest were:
| 129.0ms | (- (tan (+ x eps)) (tan x)) |
| 51.0ms | (tan (+ x eps)) |
15 calls. Slowest were:
| 198.0ms | (- (* (+ (tan x) (tan eps)) (cos x)) (* (- 1 (* (tan x) (tan eps))) (sin x))) |
| 150.0ms | (+ (* x (pow eps 2)) (+ eps (* (pow x 2) eps))) |
| 124.0ms | (* (- 1 (* (tan x) (tan eps))) (cos x)) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 14.1b
Found 4 expressions with local error:
| 2.6b | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 0.2b | (* (tan x) (tan eps)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 0.1b | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 49.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 23.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 9.0ms | (* (tan x) (tan eps)) |
4 calls. Slowest were:
| 422.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 238.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 136.0ms | (* (tan x) (tan eps)) |
| 131.0ms | (+ (tan x) (tan eps)) |
72 calls. Slowest were:
| 304.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 280.0ms | (- (+ (/ (sin eps) (* (cos eps) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps)))))) (/ (sin x) (* (cos x) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))))) (/ (sin x) (cos x))) |
| 279.0ms | (/ (* (* (+ (tan x) (tan eps)) (+ (tan x) (tan eps))) (+ (tan x) (tan eps))) (* (* (- 1 (* (tan x) (tan eps))) (- 1 (* (tan x) (tan eps)))) (- 1 (* (tan x) (tan eps))))) |
18 alts after pruning (18 fresh and 0 done)
Merged error: 13.9b
Found 4 expressions with local error:
| 2.6b | (- (* (/ (+ (tan x) (tan eps)) (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (+ (+ 1 (* (tan eps) (tan x))) (* (* (tan eps) (tan x)) (* (tan eps) (tan x))))) (tan x)) |
| 0.3b | (pow (* (tan x) (tan eps)) 3) |
| 0.2b | (* (tan x) (tan eps)) |
| 0.2b | (* (tan eps) (tan x)) |
4 calls. Slowest were:
| 93.0ms | (- (* (/ (+ (tan x) (tan eps)) (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (+ (+ 1 (* (tan eps) (tan x))) (* (* (tan eps) (tan x)) (* (tan eps) (tan x))))) (tan x)) |
| 6.0ms | (* (tan x) (tan eps)) |
| 6.0ms | (pow (* (tan x) (tan eps)) 3) |
4 calls. Slowest were:
| 1.6s | (- (* (/ (+ (tan x) (tan eps)) (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (+ (+ 1 (* (tan eps) (tan x))) (* (* (tan eps) (tan x)) (* (tan eps) (tan x))))) (tan x)) |
| 129.0ms | (pow (* (tan x) (tan eps)) 3) |
| 107.0ms | (* (tan eps) (tan x)) |
| 106.0ms | (* (tan x) (tan eps)) |
180 calls. Slowest were:
| 683.0ms | (- (* (* (+ (tan x) (tan eps)) (+ (* (+ (pow 1 3) (pow (* (tan eps) (tan x)) 3)) (* (cos eps) (cos eps))) (* (+ (* 1 1) (- (* (* (tan eps) (tan x)) (* (tan eps) (tan x))) (* 1 (* (tan eps) (tan x))))) (* (* (sin eps) (tan x)) (* (sin eps) (tan x)))))) (cos x)) (* (* (- (pow 1 3) (pow (* (tan x) (tan eps)) 3)) (* (+ (* 1 1) (- (* (* (tan eps) (tan x)) (* (tan eps) (tan x))) (* 1 (* (tan eps) (tan x))))) (* (cos eps) (cos eps)))) (sin x))) |
| 571.0ms | (- (* (* (/ (+ (tan x) (tan eps)) (- (pow 1 3) (pow (* (tan x) (tan eps)) 3))) (+ (* (+ (pow 1 3) (pow (* (tan eps) (tan x)) 3)) (* (cos x) (cos eps))) (* (+ (* 1 1) (- (* (* (tan eps) (tan x)) (* (tan eps) (tan x))) (* 1 (* (tan eps) (tan x))))) (* (* (tan eps) (sin x)) (* (sin eps) (tan x)))))) (cos x)) (* (* (+ (* 1 1) (- (* (* (tan eps) (tan x)) (* (tan eps) (tan x))) (* 1 (* (tan eps) (tan x))))) (* (cos x) (cos eps))) (sin x))) |
| 531.0ms | (* (* (- (pow 1 3) (pow (* (tan x) (tan eps)) 3)) (* (- 1 (* (tan eps) (tan x))) (* (cos x) (* (cos eps) (cos x))))) (cos x)) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 13.9b
Found 4 expressions with local error:
| 2.6b | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) (tan x)) |
| 0.2b | (* (sin x) (tan eps)) |
| 0.2b | (/ (* (sin x) (tan eps)) (cos x)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) |
4 calls. Slowest were:
| 32.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) (tan x)) |
| 12.0ms | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) |
| 7.0ms | (/ (* (sin x) (tan eps)) (cos x)) |
4 calls. Slowest were:
| 309.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) (tan x)) |
| 184.0ms | (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (tan eps)) (cos x)))) |
| 87.0ms | (/ (* (sin x) (tan eps)) (cos x)) |
| 67.0ms | (* (sin x) (tan eps)) |
80 calls. Slowest were:
| 393.0ms | (- (+ (/ (sin eps) (* (cos eps) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps)))))) (/ (sin x) (* (cos x) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))))) (/ (sin x) (cos x))) |
| 360.0ms | (/ (* (* (* (sin x) (tan eps)) (* (sin x) (tan eps))) (* (sin x) (tan eps))) (* (* (cos x) (cos x)) (cos x))) |
| 343.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (tan eps) (tan eps)) (tan eps))) (* (* (cos x) (cos x)) (cos x))) |
19 alts after pruning (19 fresh and 0 done)
Merged error: 13.9b
88.8% (0.9b remaining)
Error of 15.1b against oracle of 14.2b and baseline of 22.0b