Use the --timeout flag to change the timeout.
Time bar (total: 2.1m)Debug log
1 calls. Slowest were:
| 92.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: 6.4b
Found 4 expressions with local error:
| 3.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))) |
| 1.5b | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
| 0.5b | (pow (/ 1 (+ 1 (exp (- t)))) c_p) |
| 0.0b | (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n) |
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))) |
| 2.0ms | (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n) |
| 1.0ms | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
4 calls. Slowest were:
| 553.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))) |
| 66.0ms | (pow (/ 1 (+ 1 (exp (- s)))) c_p) |
| 54.0ms | (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n) |
| 51.0ms | (pow (/ 1 (+ 1 (exp (- t)))) c_p) |
216 calls. Slowest were:
| 626.0ms | (- (+ (* (- (log (+ 1 (exp (- s))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- s)))))) c_n)) (+ (* (log (/ 1 (+ 1 (exp (- t))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n)))) |
| 585.0ms | (- (+ (* (log (/ 1 (+ 1 (exp (- s))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- s)))))) c_n)) (+ (* (- (log (+ 1 (exp (- t))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n))) |
| 374.0ms | (- (log (* (pow (/ 1 (+ 1 (exp (- s)))) c_p) (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n))) (+ (* (log (/ 1 (+ 1 (exp (- t))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- t))))) c_n)))) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 9.7b | (- (log1p (exp (- s))) (log1p (exp (- t)))) |
| 5.6b | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) |
| 1.5b | (log1p (exp (- s))) |
| 0.5b | (log1p (exp (- t))) |
4 calls. Slowest were:
| 6.0ms | (- (log1p (exp (- s))) (log1p (exp (- t)))) |
| 5.0ms | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) |
| 0.0ms | (log1p (exp (- s))) |
4 calls. Slowest were:
| 339.0ms | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) |
| 78.0ms | (- (log1p (exp (- s))) (log1p (exp (- t)))) |
| 60.0ms | (log1p (exp (- s))) |
| 54.0ms | (log1p (exp (- t))) |
50 calls. Slowest were:
| 403.0ms | (fma (- (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t)))))))) (* (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t)))))))) (* (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) (* (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) (cbrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t)))))))))) |
| 353.0ms | (fma (- (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t)))))))) (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) (* (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))))) |
| 315.0ms | (fma (- (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t))))))) 1 (* (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (- (log1p (exp (- s))) (log1p (exp (- t)))))) 1)) |
3 alts after pruning (3 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 7.2b | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))))) |
| 0.4b | (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t)))) |
| 0.2b | (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) |
| 0.1b | (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))) |
4 calls. Slowest were:
| 9.0ms | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))))) |
| 4.0ms | (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) |
| 2.0ms | (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))) |
4 calls. Slowest were:
| 159.0ms | (- (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))))) |
| 129.0ms | (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t)))) |
| 89.0ms | (* (log1p (/ -1 (+ (exp (- s)) 1))) c_n) |
| 36.0ms | (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))) |
28 calls. Slowest were:
| 279.0ms | (- (* 1/2 (* c_p s)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_p (pow s 2))))) |
| 255.0ms | (fma (log1p (/ -1 (+ (exp (- s)) 1))) c_n (- (* (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t))))) (sqrt (fma (log1p (/ -1 (+ (exp (- t)) 1))) c_n (* c_p (fma s (fma s 1/8 -1/2) (* 1/2 t)))))))) |
| 249.0ms | (- (* (log 1/2) c_n) (+ (* 1/2 (* c_n s)) (* 1/8 (* c_n (pow s 2))))) |
3 alts after pruning (2 fresh and 1 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 0.0b | (* (* 1/2 c_p) (- s t)) |
| 0.0b | (fma (* c_p -1/8) (* s s) (* (* 1/2 c_p) (- s t))) |
2 calls. Slowest were:
| 4.0ms | (* (* 1/2 c_p) (- s t)) |
| 0.0ms | (fma (* c_p -1/8) (* s s) (* (* 1/2 c_p) (- s t))) |
2 calls. Slowest were:
| 38.0ms | (fma (* c_p -1/8) (* s s) (* (* 1/2 c_p) (- s t))) |
| 37.0ms | (* (* 1/2 c_p) (- s t)) |
18 calls. Slowest were:
| 303.0ms | (- (* 1/2 (* c_p s)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_p (pow s 2))))) |
| 291.0ms | (- (* 1/2 (* c_p s)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_p (pow s 2))))) |
| 264.0ms | (- (* 1/2 (* c_p s)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_p (pow s 2))))) |
3 alts after pruning (1 fresh and 2 done)
Merged error: 0.0b
herbie shell --seed 2019008 +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))))