



Bits error versus x




Bits error versus eps
Results
| Original | 37.5 |
|---|---|
| Target | 15.1 |
| Herbie | 16.1 |
if eps < -2.388080272206088e-71Initial program 30.5
rmApplied tan-sum5.6
rmApplied *-un-lft-identity5.6
Applied *-un-lft-identity5.6
Applied distribute-lft-out5.6
Applied associate-/l*5.6
if -2.388080272206088e-71 < eps < 8.03573431146359e-62Initial program 47.2
Taylor expanded around 0 31.5
Simplified31.4
if 8.03573431146359e-62 < eps Initial program 31.4
rmApplied tan-sum5.5
Taylor expanded around -inf 5.5
rmApplied associate-/l*5.5
rmApplied tan-quot5.7
Applied tan-quot5.7
Applied frac-add5.7
Final simplification16.1
herbie shell --seed 2019004
(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: 33.1s)Debug log
1 calls. Slowest were:
| 4.0ms | (- (tan (+ x eps)) (tan x)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 38.0b
Found 2 expressions with local error:
| 3.6b | (tan (+ x eps)) |
| 0.8b | (- (tan (+ x eps)) (tan x)) |
2 calls. Slowest were:
| 10.0ms | (- (tan (+ x eps)) (tan x)) |
| 3.0ms | (tan (+ x eps)) |
2 calls. Slowest were:
| 97.0ms | (- (tan (+ x eps)) (tan x)) |
| 94.0ms | (tan (+ x eps)) |
15 calls. Slowest were:
| 209.0ms | (- (* (+ (tan x) (tan eps)) (cos x)) (* (- 1 (* (tan x) (tan eps))) (sin x))) |
| 153.0ms | (+ (* x (pow eps 2)) (+ eps (* (pow x 2) eps))) |
| 90.0ms | (* (- 1 (* (tan x) (tan eps))) (cos x)) |
9 alts after pruning (9 fresh and 0 done)
Merged error: 14.4b
Found 4 expressions with local error:
| 1.8b | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 0.3b | (* (tan x) (tan eps)) |
| 0.2b | (+ (tan x) (tan eps)) |
| 0.1b | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
4 calls. Slowest were:
| 38.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 12.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 6.0ms | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 447.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) (tan x)) |
| 240.0ms | (/ (+ (tan x) (tan eps)) (- 1 (* (tan x) (tan eps)))) |
| 136.0ms | (+ (tan x) (tan eps)) |
| 92.0ms | (* (tan x) (tan eps)) |
72 calls. Slowest were:
| 777.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))))) |
| 284.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 265.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))) |
20 alts after pruning (20 fresh and 0 done)
Merged error: 14.3b
Found 4 expressions with local error:
| 1.8b | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 0.3b | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 0.2b | (* (sin x) (sin eps)) |
| 0.2b | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 46.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 8.0ms | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 6.0ms | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 422.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))))) (tan x)) |
| 109.0ms | (/ (* (sin x) (sin eps)) (* (cos x) (cos eps))) |
| 98.0ms | (+ (tan x) (tan eps)) |
| 63.0ms | (* (sin x) (sin eps)) |
46 calls. Slowest were:
| 289.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 269.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))) |
| 230.0ms | (/ (* (* (* (sin x) (sin x)) (sin x)) (* (* (sin eps) (sin eps)) (sin eps))) (* (* (* (cos x) (cos x)) (cos x)) (* (* (cos eps) (cos eps)) (cos eps)))) |
19 alts after pruning (19 fresh and 0 done)
Merged error: 14.3b
Found 4 expressions with local error:
| 1.8b | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))))) (tan x)) |
| 0.3b | (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))) |
| 0.2b | (/ (* (cos x) (cos eps)) (sin eps)) |
| 0.2b | (+ (tan x) (tan eps)) |
4 calls. Slowest were:
| 65.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))))) (tan x)) |
| 7.0ms | (/ (* (cos x) (cos eps)) (sin eps)) |
| 6.0ms | (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))) |
4 calls. Slowest were:
| 475.0ms | (- (/ (+ (tan x) (tan eps)) (- 1 (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))))) (tan x)) |
| 126.0ms | (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps))) |
| 108.0ms | (+ (tan x) (tan eps)) |
| 97.0ms | (/ (* (cos x) (cos eps)) (sin eps)) |
97 calls. Slowest were:
| 502.0ms | (/ (* (* (* (cos x) (cos eps)) (* (cos x) (cos eps))) (* (cos x) (cos eps))) (* (* (sin eps) (sin eps)) (sin eps))) |
| 464.0ms | (/ (* (* (* (cos x) (cos x)) (cos x)) (* (* (cos eps) (cos eps)) (cos eps))) (* (* (sin eps) (sin eps)) (sin eps))) |
| 390.0ms | (* (- 1 (/ (sin x) (/ (* (cos x) (cos eps)) (sin eps)))) (cos x)) |
17 alts after pruning (17 fresh and 0 done)
Merged error: 14.3b
87% (1.0b remaining)
Error of 16.1b against oracle of 15.1b and baseline of 22.6b