



Bits error versus wj




Bits error versus x
| Original | 13.9 |
|---|---|
| Target | 13.3 |
| Herbie | 0.2 |
if (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) < 4.904870601809956e-10Initial program 18.0
rmApplied distribute-rgt1-in18.0
Applied *-un-lft-identity18.0
Applied times-frac18.0
Simplified18.0
rmApplied sub-neg18.0
Applied distribute-rgt-in18.0
Applied associate--r+9.5
Simplified9.5
Taylor expanded around 0 0.2
Simplified0.2
if 4.904870601809956e-10 < (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) Initial program 2.5
rmApplied distribute-rgt1-in2.5
Applied *-un-lft-identity2.5
Applied times-frac2.5
Simplified0.3
Final simplification0.2
herbie shell --seed 2019004 +o rules:numerics
(FPCore (wj x)
:name "Jmat.Real.lambertw, newton loop step"
:herbie-target
(- wj (- (/ wj (+ wj 1)) (/ x (+ (exp wj) (* wj (exp wj))))))
(- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))))
Time bar (total: 23.6s)Debug log
1 calls. Slowest were:
| 178.0ms | (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 13.0b
Found 4 expressions with local error:
| 4.9b | (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) |
| 0.8b | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 0.0b | (+ (exp wj) (* wj (exp wj))) |
| 0.0b | (* wj (exp wj)) |
4 calls. Slowest were:
| 19.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 7.0ms | (+ (exp wj) (* wj (exp wj))) |
| 2.0ms | (* wj (exp wj)) |
4 calls. Slowest were:
| 86.0ms | (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) |
| 53.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 27.0ms | (* wj (exp wj)) |
| 19.0ms | (+ (exp wj) (* wj (exp wj))) |
66 calls. Slowest were:
| 525.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 436.0ms | (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj)))) |
| 350.0ms | (+ (* (exp wj) (exp wj)) (- (* (* wj (exp wj)) (* wj (exp wj))) (* (exp wj) (* wj (exp wj))))) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.2b
Found 0 expressions with local error:
0 calls. Slowest were:
0 calls. Slowest were:
0 calls. Slowest were:
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 4.9b | (- wj (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj))))) |
| 0.0b | (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj)))) |
| 0.0b | (/ 1 (+ wj 1)) |
| 0.0b | (/ x (exp wj)) |
4 calls. Slowest were:
| 15.0ms | (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj)))) |
| 2.0ms | (- wj (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj))))) |
| 2.0ms | (/ 1 (+ wj 1)) |
4 calls. Slowest were:
| 50.0ms | (- wj (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj))))) |
| 48.0ms | (* (/ 1 (+ wj 1)) (- wj (/ x (exp wj)))) |
| 36.0ms | (/ x (exp wj)) |
| 11.0ms | (/ 1 (+ wj 1)) |
47 calls. Slowest were:
| 631.0ms | (* (* (* (/ 1 (+ wj 1)) (/ 1 (+ wj 1))) (/ 1 (+ wj 1))) (* (* (- wj (/ x (exp wj))) (- wj (/ x (exp wj)))) (- wj (/ x (exp wj))))) |
| 545.0ms | (* (+ wj 1) (+ (* wj wj) (+ (* (/ x (exp wj)) (/ x (exp wj))) (* wj (/ x (exp wj)))))) |
| 459.0ms | (* 1 (- (pow wj 3) (pow (/ x (exp wj)) 3))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.2b
Found 4 expressions with local error:
| 4.8b | (- wj (* wj (/ 1 (+ wj 1)))) |
| 0.0b | (* wj (/ 1 (+ wj 1))) |
| 0.0b | (fma wj (exp wj) (exp wj)) |
| 0.0b | (/ (- x) (fma wj (exp wj) (exp wj))) |
4 calls. Slowest were:
| 6.0ms | (/ (- x) (fma wj (exp wj) (exp wj))) |
| 2.0ms | (* wj (/ 1 (+ wj 1))) |
| 1.0ms | (- wj (* wj (/ 1 (+ wj 1)))) |
4 calls. Slowest were:
| 68.0ms | (/ (- x) (fma wj (exp wj) (exp wj))) |
| 28.0ms | (fma wj (exp wj) (exp wj)) |
| 16.0ms | (- wj (* wj (/ 1 (+ wj 1)))) |
| 9.0ms | (* wj (/ 1 (+ wj 1))) |
53 calls. Slowest were:
| 491.0ms | (- (* 2 (* x wj)) (+ x (* 5/2 (* x (pow wj 2))))) |
| 425.0ms | (/ (* (* (- x) (- x)) (- x)) (* (* (fma wj (exp wj) (exp wj)) (fma wj (exp wj) (exp wj))) (fma wj (exp wj) (exp wj)))) |
| 63.0ms | (- (/ x (* (exp wj) (pow wj 2))) (+ (/ x (* (exp wj) wj)) (/ x (* (exp wj) (pow wj 3))))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.1b
87.6% (0.1b remaining)
Error of 0.2b against oracle of 0.1b and baseline of 1.1b