



Bits error versus wj




Bits error versus x
| Original | 14.1 |
|---|---|
| Target | 13.5 |
| Herbie | 0.8 |
if (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) < 8.36959831267844e-18Initial program 18.6
Taylor expanded around 0 0.9
Simplified0.9
if 8.36959831267844e-18 < (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) Initial program 2.6
rmApplied div-sub2.6
Simplified0.5
Final simplification0.8
herbie shell --seed 2018362 +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: 12.9s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 16.2b
Found 4 expressions with local error:
| 6.8b | (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) |
| 1.0b | (/ (- (* 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:
| 11.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 5.0ms | (+ (exp wj) (* wj (exp wj))) |
| 1.0ms | (* wj (exp wj)) |
4 calls. Slowest were:
| 65.0ms | (- wj (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj))))) |
| 56.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 32.0ms | (+ (exp wj) (* wj (exp wj))) |
| 27.0ms | (* wj (exp wj)) |
66 calls. Slowest were:
| 615.0ms | (/ (- (* wj (exp wj)) x) (+ (exp wj) (* wj (exp wj)))) |
| 442.0ms | (/ (* wj (exp wj)) (+ (exp wj) (* wj (exp wj)))) |
| 318.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.4b
Found 1 expressions with local error:
| 0.2b | (fma wj (fma x -2 wj) x) |
1 calls. Slowest were:
| 0.0ms | (fma wj (fma x -2 wj) x) |
1 calls. Slowest were:
| 24.0ms | (fma wj (fma x -2 wj) x) |
3 calls. Slowest were:
| 121.0ms | (- (+ x (pow wj 2)) (* 2 (* x wj))) |
| 116.0ms | (- (+ x (pow wj 2)) (* 2 (* x wj))) |
| 100.0ms | (- (+ (pow wj 2) x) (* 2 (* x wj))) |
7 alts after pruning (6 fresh and 1 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.5b | (* (cbrt (fma wj (fma x -2 wj) x)) (cbrt (fma wj (fma x -2 wj) x))) |
4 calls. Slowest were:
| 10.0ms | (* (cbrt (fma wj (fma x -2 wj) x)) (cbrt (fma wj (fma x -2 wj) x))) |
| 1.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 1.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
4 calls. Slowest were:
| 158.0ms | (* (cbrt (fma wj (fma x -2 wj) x)) (cbrt (fma wj (fma x -2 wj) x))) |
| 145.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 136.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 131.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
41 calls. Slowest were:
| 640.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
| 362.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
| 319.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
8 alts after pruning (7 fresh and 1 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
| 0.6b | (cbrt (fma wj (fma x -2 wj) x)) |
4 calls. Slowest were:
| 1.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 1.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 1.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
4 calls. Slowest were:
| 174.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 164.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 153.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
| 143.0ms | (cbrt (fma wj (fma x -2 wj) x)) |
24 calls. Slowest were:
| 321.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
| 315.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
| 285.0ms | (- (pow x 1/3) (+ (* 4/9 (* (pow x 1/3) (pow wj 2))) (* 2/3 (* (pow x 1/3) wj)))) |
9 alts after pruning (7 fresh and 2 done)
Merged error: 0.4b
73.9% (0.5b remaining)
Error of 0.8b against oracle of 0.3b and baseline of 2.1b