



Bits error versus x




Bits error versus eps
Results
| Original | 37.5 |
|---|---|
| Target | 15.3 |
| Herbie | 13.8 |
if eps < -4.381173797888801e-25 or 1.3072855954539968e-17 < eps Initial program 30.5
Initial simplification30.5
rmApplied tan-sum1.5
rmApplied flip3--1.5
Applied associate-/r/1.5
Simplified1.5
rmApplied add-cbrt-cube1.6
Applied add-cbrt-cube1.6
Applied cbrt-unprod1.6
Applied rem-cube-cbrt1.5
Simplified1.5
if -4.381173797888801e-25 < eps < 1.3072855954539968e-17Initial program 45.4
Initial simplification45.4
rmApplied tan-sum45.4
rmApplied tan-quot45.4
Applied associate-*r/45.4
Taylor expanded around 0 27.7
Simplified27.7
Final simplification13.8
herbie shell --seed 2018362
(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: 50.6s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 37.0b
Found 2 expressions with local error:
| 3.1b | (tan (+ eps x)) |
| 2.0b | (- (tan (+ eps x)) (tan x)) |
2 calls. Slowest were:
| 8.0ms | (- (tan (+ eps x)) (tan x)) |
| 2.0ms | (tan (+ eps x)) |
2 calls. Slowest were:
| 96.0ms | (- (tan (+ eps x)) (tan x)) |
| 82.0ms | (tan (+ eps x)) |
15 calls. Slowest were:
| 168.0ms | (- (* (+ (tan eps) (tan x)) (cos x)) (* (- 1 (* (tan eps) (tan x))) (sin x))) |
| 141.0ms | (* (- 1 (* (tan eps) (tan x))) (cos x)) |
| 85.0ms | (+ (* x (pow eps 2)) (+ (* 1/3 (pow eps 3)) eps)) |
7 alts after pruning (7 fresh and 0 done)
Merged error: 14.3b
Found 4 expressions with local error:
| 2.7b | (- (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) (tan x)) |
| 0.2b | (* (tan eps) (tan x)) |
| 0.1b | (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) |
| 0.1b | (+ (tan eps) (tan x)) |
4 calls. Slowest were:
| 32.0ms | (- (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) (tan x)) |
| 11.0ms | (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) |
| 4.0ms | (* (tan eps) (tan x)) |
4 calls. Slowest were:
| 381.0ms | (- (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) (tan x)) |
| 264.0ms | (/ (+ (tan eps) (tan x)) (- 1 (* (tan eps) (tan x)))) |
| 112.0ms | (* (tan eps) (tan x)) |
| 106.0ms | (+ (tan eps) (tan x)) |
72 calls. Slowest were:
| 292.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))) |
| 291.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
| 289.0ms | (/ (* (* (+ (tan eps) (tan x)) (+ (tan eps) (tan x))) (+ (tan eps) (tan x))) (* (* (- 1 (* (tan eps) (tan x))) (- 1 (* (tan eps) (tan x)))) (- 1 (* (tan eps) (tan x))))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 14.2b
Found 4 expressions with local error:
| 2.7b | (- (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) (tan x)) |
| 0.2b | (* (tan eps) (sin x)) |
| 0.2b | (/ (* (tan eps) (sin x)) (cos x)) |
| 0.1b | (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) |
4 calls. Slowest were:
| 39.0ms | (- (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) (tan x)) |
| 12.0ms | (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) |
| 7.0ms | (/ (* (tan eps) (sin x)) (cos x)) |
4 calls. Slowest were:
| 474.0ms | (- (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) (tan x)) |
| 262.0ms | (/ (+ (tan eps) (tan x)) (- 1 (/ (* (tan eps) (sin x)) (cos x)))) |
| 119.0ms | (/ (* (tan eps) (sin x)) (cos x)) |
| 96.0ms | (* (tan eps) (sin x)) |
80 calls. Slowest were:
| 602.0ms | (/ (* (* (* (tan eps) (sin x)) (* (tan eps) (sin x))) (* (tan eps) (sin x))) (* (* (cos x) (cos x)) (cos x))) |
| 550.0ms | (/ (* (* (* (tan eps) (tan eps)) (tan eps)) (* (* (sin x) (sin x)) (sin x))) (* (* (cos x) (cos x)) (cos x))) |
| 322.0ms | (+ (* 1/3 (* (pow x 3) eps)) (+ (* 1/3 (* x (pow eps 3))) (* x eps))) |
14 alts after pruning (14 fresh and 0 done)
Merged error: 14.1b
Found 4 expressions with local error:
| 2.7b | (- (* (/ (+ (tan eps) (tan x)) (- (pow 1 3) (pow (* (tan eps) (tan x)) 3))) (+ (+ 1 (* (tan x) (tan eps))) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (tan x)) |
| 0.3b | (pow (* (tan eps) (tan x)) 3) |
| 0.3b | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 0.2b | (* (tan x) (tan eps)) |
4 calls. Slowest were:
| 89.0ms | (- (* (/ (+ (tan eps) (tan x)) (- (pow 1 3) (pow (* (tan eps) (tan x)) 3))) (+ (+ 1 (* (tan x) (tan eps))) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (tan x)) |
| 16.0ms | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 4.0ms | (* (tan x) (tan eps)) |
4 calls. Slowest were:
| 1.6s | (- (* (/ (+ (tan eps) (tan x)) (- (pow 1 3) (pow (* (tan eps) (tan x)) 3))) (+ (+ 1 (* (tan x) (tan eps))) (* (* (tan x) (tan eps)) (* (tan x) (tan eps))))) (tan x)) |
| 143.0ms | (pow (* (tan eps) (tan x)) 3) |
| 114.0ms | (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) |
| 90.0ms | (* (tan x) (tan eps)) |
216 calls. Slowest were:
| 492.0ms | (* (* (- (pow 1 3) (pow (* (tan eps) (tan x)) 3)) (* (- 1 (* (tan x) (tan eps))) (* (* (cos x) (cos eps)) (cos x)))) (cos x)) |
| 479.0ms | (* (* (- (pow 1 3) (pow (* (tan eps) (tan x)) 3)) (* (+ (* 1 1) (- (* (* (tan x) (tan eps)) (* (tan x) (tan eps))) (* 1 (* (tan x) (tan eps))))) (* (cos x) (cos eps)))) (cos x)) |
| 478.0ms | (* (* (- (pow 1 3) (pow (* (tan eps) (tan x)) 3)) (* (- 1 (* (tan x) (tan eps))) (* (cos eps) (cos eps)))) (cos x)) |
13 alts after pruning (13 fresh and 0 done)
Merged error: 14.1b
95.8% (0.4b remaining)
Error of 13.8b against oracle of 13.4b and baseline of 22.0b