



Bits error versus x




Bits error versus y
Results
| Original | 0.5 |
|---|---|
| Target | 0.0 |
| Herbie | 0.5 |
Initial program 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019005 +o rules:numerics
(FPCore (x y)
:name "Logistic regression 2"
:herbie-target
(if (<= x 0) (- (log (+ 1 (exp x))) (* x y)) (- (log (+ 1 (exp (- x)))) (* (- x) (- 1 y))))
(- (log (+ 1 (exp x))) (* x y)))
Time bar (total: 14.1s)Debug log
1 calls. Slowest were:
| 21.0ms | (- (log (+ 1 (exp x))) (* x y)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 0.7b
Found 2 expressions with local error:
| 0.7b | (log1p (exp x)) |
| 0.0b | (- (log1p (exp x)) (* y x)) |
2 calls. Slowest were:
| 4.0ms | (- (log1p (exp x)) (* y x)) |
| 0.0ms | (log1p (exp x)) |
2 calls. Slowest were:
| 63.0ms | (log1p (exp x)) |
| 60.0ms | (- (log1p (exp x)) (* y x)) |
17 calls. Slowest were:
| 50.0ms | (+ (log 2) (+ (* 1/2 x) (* 1/8 (pow x 2)))) |
| 50.0ms | (+ (log 2) (+ (* 1/2 x) (* 1/8 (pow x 2)))) |
| 22.0ms | (fma 1 (log1p (exp x)) (- (* x y))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 1.0b | (expm1 (log1p (- (log1p (exp x)) (* y x)))) |
| 0.7b | (log1p (exp x)) |
| 0.0b | (log1p (- (log1p (exp x)) (* y x))) |
| 0.0b | (- (log1p (exp x)) (* y x)) |
4 calls. Slowest were:
| 7.0ms | (- (log1p (exp x)) (* y x)) |
| 1.0ms | (log1p (- (log1p (exp x)) (* y x))) |
| 1.0ms | (log1p (exp x)) |
4 calls. Slowest were:
| 287.0ms | (expm1 (log1p (- (log1p (exp x)) (* y x)))) |
| 188.0ms | (log1p (- (log1p (exp x)) (* y x))) |
| 58.0ms | (- (log1p (exp x)) (* y x)) |
| 46.0ms | (log1p (exp x)) |
25 calls. Slowest were:
| 381.0ms | (- (exp (- (log -1) (+ (log (/ -1 x)) (log (/ -1 y))))) (+ (/ (exp (- (log -1) (+ (log (/ -1 x)) (log (/ -1 y))))) (* x y)) (+ 1 (/ (* (exp (- (log -1) (+ (log (/ -1 x)) (log (/ -1 y))))) (log (+ (exp x) 1))) (* x y))))) |
| 253.0ms | (+ (log 2) (+ (* 1/8 (pow x 2)) (+ (* 1/2 (/ (* (log 2) x) (+ (log 2) 1))) (* 1/2 (/ x (+ (log 2) 1)))))) |
| 231.0ms | (- (log -1) (+ (* 1/2 (/ (pow (log (+ (exp x) 1)) 2) (* (pow x 2) (pow y 2)))) (+ (* 1/2 (/ 1 (* (pow x 2) (pow y 2)))) (+ (/ (log (+ (exp x) 1)) (* x y)) (+ (log (/ -1 x)) (+ (log (/ -1 y)) (+ (/ 1 (* x y)) (/ (log (+ (exp x) 1)) (* (pow x 2) (pow y 2)))))))))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.4b
Found 2 expressions with local error:
| 0.0b | (- (fma x (fma 1/8 x 1/2) (log 2)) (* y x)) |
| 0.0b | (fma x (fma 1/8 x 1/2) (log 2)) |
2 calls. Slowest were:
| 7.0ms | (- (fma x (fma 1/8 x 1/2) (log 2)) (* y x)) |
| 0.0ms | (fma x (fma 1/8 x 1/2) (log 2)) |
2 calls. Slowest were:
| 43.0ms | (- (fma x (fma 1/8 x 1/2) (log 2)) (* y x)) |
| 24.0ms | (fma x (fma 1/8 x 1/2) (log 2)) |
16 calls. Slowest were:
| 166.0ms | (- (+ (* 1/2 x) (* 1/8 (pow x 2))) (* x y)) |
| 129.0ms | (- (+ (* 1/2 x) (* 1/8 (pow x 2))) (* x y)) |
| 118.0ms | (/ (exp (fma x (fma 1/8 x 1/2) (log 2))) (exp (* y x))) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0.4b
Found 4 expressions with local error:
| 5.1b | (log (fma x (fma 1/8 x 1/2) (log 2))) |
| 1.0b | (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) |
| 0.0b | (- (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) (* y x)) |
| 0.0b | (fma x (fma 1/8 x 1/2) (log 2)) |
4 calls. Slowest were:
| 11.0ms | (- (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) (* y x)) |
| 2.0ms | (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) |
| 1.0ms | (log (fma x (fma 1/8 x 1/2) (log 2))) |
4 calls. Slowest were:
| 39.0ms | (log (fma x (fma 1/8 x 1/2) (log 2))) |
| 27.0ms | (- (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) (* y x)) |
| 23.0ms | (fma x (fma 1/8 x 1/2) (log 2)) |
| 16.0ms | (exp (log (fma x (fma 1/8 x 1/2) (log 2)))) |
41 calls. Slowest were:
| 467.0ms | (- (+ (* 1/8 (/ (pow x 2) (log 2))) (+ (log (log 2)) (* 1/2 (/ x (log 2))))) (* 1/8 (/ (pow x 2) (pow (log 2) 2)))) |
| 316.0ms | (- (+ (log 1/8) (+ (* 8 (/ (log 2) (pow x 2))) (* 4 (/ 1 x)))) (+ (* 2 (log (/ -1 x))) (* 8 (/ 1 (pow x 2))))) |
| 303.0ms | (/ (exp (exp (log (fma x (fma 1/8 x 1/2) (log 2))))) (exp (* y x))) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0.4b
0% (0.3b remaining)
Error of 0.5b against oracle of 0.2b and baseline of 0.5b