



Bits error versus wj




Bits error versus x
Results
| Original | 13.9 |
|---|---|
| Target | 13.3 |
| Herbie | 1.5 |
Initial program 13.9
Initial simplification7.2
Taylor expanded around 0 1.0
Taylor expanded around 0 1.5
Simplified1.5
rmApplied associate--l+1.5
Final simplification1.5
herbie shell --seed 2018360
(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.0s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 7.5b
Found 4 expressions with local error:
| 6.8b | (- wj (/ wj (+ wj 1))) |
| 0.0b | (/ (/ x (exp wj)) (+ wj 1)) |
| 0.0b | (/ x (exp wj)) |
| 0.0b | (/ wj (+ wj 1)) |
4 calls. Slowest were:
| 7.0ms | (/ (/ x (exp wj)) (+ wj 1)) |
| 1.0ms | (- wj (/ wj (+ wj 1))) |
| 1.0ms | (/ x (exp wj)) |
4 calls. Slowest were:
| 45.0ms | (/ (/ x (exp wj)) (+ wj 1)) |
| 43.0ms | (/ x (exp wj)) |
| 20.0ms | (- wj (/ wj (+ wj 1))) |
| 10.0ms | (/ wj (+ wj 1)) |
53 calls. Slowest were:
| 328.0ms | (/ (* (* (/ x (exp wj)) (/ x (exp wj))) (/ x (exp wj))) (* (* (+ wj 1) (+ wj 1)) (+ wj 1))) |
| 126.0ms | (- (+ x (* 5/2 (* x (pow wj 2)))) (* 2 (* x wj))) |
| 120.0ms | (- (+ x (* 1/2 (* x (pow wj 2)))) (* x wj)) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.1b
Found 4 expressions with local error:
| 0.0b | (/ (/ x (exp wj)) (+ wj 1)) |
| 0.0b | (/ x (exp wj)) |
| 0.0b | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
| 0.0b | (+ (pow wj 2) (pow wj 4)) |
4 calls. Slowest were:
| 19.0ms | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
| 6.0ms | (+ (pow wj 2) (pow wj 4)) |
| 4.0ms | (/ (/ x (exp wj)) (+ wj 1)) |
4 calls. Slowest were:
| 53.0ms | (+ (pow wj 2) (pow wj 4)) |
| 49.0ms | (/ (/ x (exp wj)) (+ wj 1)) |
| 44.0ms | (/ x (exp wj)) |
| 13.0ms | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
57 calls. Slowest were:
| 396.0ms | (/ (* (* (/ x (exp wj)) (/ x (exp wj))) (/ x (exp wj))) (* (* (+ wj 1) (+ wj 1)) (+ wj 1))) |
| 157.0ms | (- (+ x (* 5/2 (* x (pow wj 2)))) (* 2 (* x wj))) |
| 120.0ms | (- (+ x (* 1/2 (* x (pow wj 2)))) (* x wj)) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.1b | (* (* x wj) (- 2 (* wj 5/2))) |
| 0.0b | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
| 0.0b | (+ (pow wj 2) (pow wj 4)) |
| 0.0b | (+ (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
4 calls. Slowest were:
| 127.0ms | (+ (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 20.0ms | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
| 4.0ms | (* (* x wj) (- 2 (* wj 5/2))) |
4 calls. Slowest were:
| 52.0ms | (* (* x wj) (- 2 (* wj 5/2))) |
| 44.0ms | (+ (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 36.0ms | (+ (pow wj 2) (pow wj 4)) |
| 16.0ms | (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) |
54 calls. Slowest were:
| 344.0ms | (+ (* (- (* (+ (pow wj 2) (pow wj 4)) (+ (pow wj 2) (pow wj 4))) (* (pow wj 3) (pow wj 3))) (+ (* x x) (+ (* (* (* x wj) (- 2 (* wj 5/2))) (* (* x wj) (- 2 (* wj 5/2)))) (* x (* (* x wj) (- 2 (* wj 5/2))))))) (* (+ (+ (pow wj 2) (pow wj 4)) (pow wj 3)) (- (pow x 3) (pow (* (* x wj) (- 2 (* wj 5/2))) 3)))) |
| 337.0ms | (+ (- (+ (pow wj 2) (pow wj 4)) (pow wj 3)) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 326.0ms | (+ (* (- (pow (+ (pow wj 2) (pow wj 4)) 3) (pow (pow wj 3) 3)) (+ (* x x) (+ (* (* (* x wj) (- 2 (* wj 5/2))) (* (* x wj) (- 2 (* wj 5/2)))) (* x (* (* x wj) (- 2 (* wj 5/2))))))) (* (+ (* (+ (pow wj 2) (pow wj 4)) (+ (pow wj 2) (pow wj 4))) (+ (* (pow wj 3) (pow wj 3)) (* (+ (pow wj 2) (pow wj 4)) (pow wj 3)))) (- (pow x 3) (pow (* (* x wj) (- 2 (* wj 5/2))) 3)))) |
6 alts after pruning (6 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 0.1b | (* (* x wj) (- 2 (* wj 5/2))) |
| 0.0b | (- (pow wj 4) (pow wj 3)) |
| 0.0b | (+ (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 0.0b | (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) |
4 calls. Slowest were:
| 68.0ms | (+ (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 17.0ms | (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) |
| 8.0ms | (* (* x wj) (- 2 (* wj 5/2))) |
4 calls. Slowest were:
| 60.0ms | (- (pow wj 4) (pow wj 3)) |
| 51.0ms | (* (* x wj) (- 2 (* wj 5/2))) |
| 44.0ms | (+ (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
| 15.0ms | (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) |
54 calls. Slowest were:
| 360.0ms | (+ (* (+ (pow (pow wj 2) 3) (pow (- (pow wj 4) (pow wj 3)) 3)) (+ (* x x) (+ (* (* (* x wj) (- 2 (* wj 5/2))) (* (* x wj) (- 2 (* wj 5/2)))) (* x (* (* x wj) (- 2 (* wj 5/2))))))) (* (+ (* (pow wj 2) (pow wj 2)) (- (* (- (pow wj 4) (pow wj 3)) (- (pow wj 4) (pow wj 3))) (* (pow wj 2) (- (pow wj 4) (pow wj 3))))) (- (pow x 3) (pow (* (* x wj) (- 2 (* wj 5/2))) 3)))) |
| 342.0ms | (* (exp (+ (pow wj 2) (- (pow wj 4) (pow wj 3)))) (exp (- x (* (* x wj) (- 2 (* wj 5/2)))))) |
| 307.0ms | (+ (+ (pow wj 2) (- (pow wj 4) (pow wj 3))) (- x (* (* x wj) (- 2 (* wj 5/2))))) |
6 alts after pruning (5 fresh and 1 done)
Merged error: 0.0b
0% (1.5b remaining)
Error of 1.5b against oracle of 0.1b and baseline of 1.5b