



Bits error versus x




Bits error versus eps
| Original | 37.5 |
|---|---|
| Target | 15.3 |
| Herbie | 0.5 |
Initial program 37.5
Initial simplification37.5
rmApplied sin-sum22.1
Applied associate--l+0.4
rmApplied fma-neg0.4
rmApplied add-log-exp0.5
Final simplification0.5
herbie shell --seed 2018362 +o rules:numerics
(FPCore (x eps)
:name "2sin (example 3.3)"
:herbie-target
(* 2 (* (cos (+ x (/ eps 2))) (sin (/ eps 2))))
(- (sin (+ x eps)) (sin x)))
Time bar (total: 10.1s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 36.9b
Found 2 expressions with local error:
| 3.1b | (sin (+ eps x)) |
| 2.0b | (- (sin (+ eps x)) (sin x)) |
2 calls. Slowest were:
| 12.0ms | (- (sin (+ eps x)) (sin x)) |
| 3.0ms | (sin (+ eps x)) |
2 calls. Slowest were:
| 57.0ms | (- (sin (+ eps x)) (sin x)) |
| 42.0ms | (sin (+ eps x)) |
33 calls. Slowest were:
| 342.0ms | (- eps (+ (* 1/6 (pow eps 3)) (* 1/2 (* x (pow eps 2))))) |
| 52.0ms | (- (+ x eps) (* 1/6 (pow eps 3))) |
| 38.0ms | (fma 1 (sin (+ eps x)) (- (* (sin x) 1))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.3b
Found 4 expressions with local error:
| 2.4b | (- (* (cos eps) (sin x)) (sin x)) |
| 0.1b | (+ (* (sin eps) (cos x)) (- (* (cos eps) (sin x)) (sin x))) |
| 0.1b | (* (sin eps) (cos x)) |
| 0.1b | (* (cos eps) (sin x)) |
4 calls. Slowest were:
| 15.0ms | (+ (* (sin eps) (cos x)) (- (* (cos eps) (sin x)) (sin x))) |
| 11.0ms | (* (cos eps) (sin x)) |
| 7.0ms | (- (* (cos eps) (sin x)) (sin x)) |
4 calls. Slowest were:
| 120.0ms | (+ (* (sin eps) (cos x)) (- (* (cos eps) (sin x)) (sin x))) |
| 69.0ms | (- (* (cos eps) (sin x)) (sin x)) |
| 57.0ms | (* (cos eps) (sin x)) |
| 42.0ms | (* (sin eps) (cos x)) |
52 calls. Slowest were:
| 529.0ms | (+ (* (+ (sin (- eps x)) (sin (+ eps x))) (+ (* (cos eps) (sin x)) (sin x))) (* 2 (- (* (* (cos eps) (sin x)) (* (cos eps) (sin x))) (* (sin x) (sin x))))) |
| 317.0ms | (- eps (+ (* 1/6 (pow eps 3)) (* 1/2 (* x (pow eps 2))))) |
| 272.0ms | (- eps (+ (* 1/6 (pow eps 3)) (* 1/2 (* (pow x 2) eps)))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 0.1b
Found 3 expressions with local error:
| 2.4b | (- (* (sin x) (cos eps)) (sin x)) |
| 0.2b | (fma (cos x) (sin eps) (- (* (sin x) (cos eps)) (sin x))) |
| 0.1b | (* (sin x) (cos eps)) |
3 calls. Slowest were:
| 6.0ms | (- (* (sin x) (cos eps)) (sin x)) |
| 4.0ms | (* (sin x) (cos eps)) |
| 0.0ms | (fma (cos x) (sin eps) (- (* (sin x) (cos eps)) (sin x))) |
3 calls. Slowest were:
| 138.0ms | (fma (cos x) (sin eps) (- (* (sin x) (cos eps)) (sin x))) |
| 53.0ms | (- (* (sin x) (cos eps)) (sin x)) |
| 51.0ms | (* (sin x) (cos eps)) |
26 calls. Slowest were:
| 507.0ms | (- eps (+ (* 1/2 (* x (pow eps 2))) (* 1/2 (* (pow x 2) eps)))) |
| 227.0ms | (- x (+ (* 1/2 (* x (pow eps 2))) (* 1/6 (pow x 3)))) |
| 91.0ms | (fma (sin x) (cos eps) (- (* (sin x) 1))) |
12 alts after pruning (12 fresh and 0 done)
Merged error: 0.1b
Found 3 expressions with local error:
| 2.4b | (fma (cos eps) (sin x) (- (sin x))) |
| 0.1b | (+ (* (sin eps) (cos x)) (fma (cos eps) (sin x) (- (sin x)))) |
| 0.1b | (* (sin eps) (cos x)) |
3 calls. Slowest were:
| 6.0ms | (+ (* (sin eps) (cos x)) (fma (cos eps) (sin x) (- (sin x)))) |
| 4.0ms | (* (sin eps) (cos x)) |
| 0.0ms | (fma (cos eps) (sin x) (- (sin x))) |
3 calls. Slowest were:
| 150.0ms | (+ (* (sin eps) (cos x)) (fma (cos eps) (sin x) (- (sin x)))) |
| 66.0ms | (* (sin eps) (cos x)) |
| 61.0ms | (fma (cos eps) (sin x) (- (sin x))) |
21 calls. Slowest were:
| 662.0ms | (- eps (+ (* 1/6 (pow eps 3)) (* 1/2 (* x (pow eps 2))))) |
| 190.0ms | (- eps (+ (* 1/6 (pow eps 3)) (* 1/2 (* (pow x 2) eps)))) |
| 104.0ms | (* (exp (* (sin eps) (cos x))) (exp (fma (cos eps) (sin x) (- (sin x))))) |
11 alts after pruning (11 fresh and 0 done)
Merged error: 0.1b
0% (0.2b remaining)
Error of 0.5b against oracle of 0.2b and baseline of 0.5b