Use the --timeout flag to change the timeout.
Time bar (total: 2.2m)Debug log
1 calls. Slowest were:
| 89.0ms | (/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 5.9b
Found 4 expressions with local error:
| 2.9b | (/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))) |
| 2.2b | (pow (/ 1 (+ 1 (exp (- t)))) c_p) |
| 0.2b | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
| 0.1b | (- 1 (/ 1 (+ 1 (exp (- s))))) |
4 calls. Slowest were:
| 13.0ms | (/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))) |
| 1.0ms | (pow (/ 1 (+ 1 (exp (- t)))) c_p) |
| 1.0ms | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
4 calls. Slowest were:
| 612.0ms | (/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))) |
| 83.0ms | (pow (/ 1 (+ 1 (exp (- t)))) c_p) |
| 69.0ms | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
| 24.0ms | (- 1 (/ 1 (+ 1 (exp (- s))))) |
211 calls. Slowest were:
| 710.0ms | (- (log (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n))) (+ (* (- (log (+ 1 (exp (- t))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n))) |
| 572.0ms | (- (+ (* (log (/ 1 (+ 1 (exp (- s))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n))) (+ (* (- (log (+ 1 (exp (- t))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n))) |
| 461.0ms | (- (+ (* (- (log (+ 1 (exp (- s))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n))) (+ (* (log (/ 1 (+ 1 (exp (- t))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n)))) |
5 alts after pruning (5 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 9.6b | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 9.1b | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 2.2b | (log1p (exp (- t))) |
| 0.3b | (log1p (exp (- s))) |
4 calls. Slowest were:
| 8.0ms | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 5.0ms | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 0.0ms | (log1p (exp (- t))) |
4 calls. Slowest were:
| 117.0ms | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 90.0ms | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 67.0ms | (log1p (exp (- t))) |
| 51.0ms | (log1p (exp (- s))) |
45 calls. Slowest were:
| 235.0ms | (- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p))) |
| 170.0ms | (* -1 (* c_p (- (log (+ (exp (* -1 s)) 1)) (log (+ (exp (* -1 t)) 1))))) |
| 145.0ms | (- (* 1/2 t) (+ (* 1/8 (pow s 2)) (* 1/2 s))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0b
Found 4 expressions with local error:
| 9.6b | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 0.1b | (log1p (/ -1 (+ (exp (- s)) 1))) |
| 0.0b | (* (fma t (fma 1/8 t -1/2) (* 1/2 s)) c_p) |
| 0.0b | (/ -1 (+ (exp (- s)) 1)) |
4 calls. Slowest were:
| 4.0ms | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 3.0ms | (/ -1 (+ (exp (- s)) 1)) |
| 2.0ms | (* (fma t (fma 1/8 t -1/2) (* 1/2 s)) c_p) |
4 calls. Slowest were:
| 94.0ms | (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) |
| 64.0ms | (log1p (/ -1 (+ (exp (- s)) 1))) |
| 25.0ms | (* (fma t (fma 1/8 t -1/2) (* 1/2 s)) c_p) |
| 16.0ms | (/ -1 (+ (exp (- s)) 1)) |
47 calls. Slowest were:
| 192.0ms | (- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p))) |
| 182.0ms | (- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p))) |
| 179.0ms | (- (* 1/2 t) (+ (* 1/8 (pow s 2)) (* 1/2 s))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 9.1b | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 2.2b | (log1p (exp (- t))) |
| 0.3b | (log1p (exp (- s))) |
| 0.2b | (* (log1p (exp (- t))) c_p) |
4 calls. Slowest were:
| 9.0ms | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 4.0ms | (* (log1p (exp (- t))) c_p) |
| 1.0ms | (log1p (exp (- t))) |
4 calls. Slowest were:
| 153.0ms | (- (* (log1p (exp (- t))) c_p) (* c_p (log1p (exp (- s))))) |
| 96.0ms | (* (log1p (exp (- t))) c_p) |
| 80.0ms | (log1p (exp (- t))) |
| 51.0ms | (log1p (exp (- s))) |
20 calls. Slowest were:
| 260.0ms | (- (+ (* 1/8 (* (pow t 2) c_p)) (* (log 2) c_p)) (* 1/2 (* t c_p))) |
| 255.0ms | (- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p))) |
| 139.0ms | (* -1 (* c_p (- (log (+ (exp (* -1 s)) 1)) (log (+ (exp (* -1 t)) 1))))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
herbie shell --seed 2019002 +o rules:numerics
(FPCore (c_p c_n t s)
:name "Harley's example"
:pre (and (< 0 c_p) (< 0 c_n))
:herbie-target
(* (pow (/ (+ 1 (exp (- t))) (+ 1 (exp (- s)))) c_p) (pow (/ (+ 1 (exp t)) (+ 1 (exp s))) c_n))
(/ (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n)) (* (pow (/ 1 (+ 1 (exp (- t)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n))))