Timeout in 10.0m

Use the --timeout flag to change the timeout.

Details

Time bar (total: 2.1m)Debug log

sample1.0m

Algorithm
intervals
Results
3275×(pre true 80)
3019×(body exit 10240)
245×(body real 80)
(body real 1280)
(body real 640)
(body real 160)
(body real 5120)

simplify100.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
100.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)))

prune18.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 5.1b

localize68.0ms

Local error

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.0b
(pow (/ 1 (+ 1 (exp (- t)))) c_p)
0.1b
(- 1 (/ 1 (+ 1 (exp (- t)))))
0.0b
(/ 1 (+ 1 (exp (- t))))

rewrite28.0ms

Algorithm
rewrite-expression-head
Rules
475×add-exp-log
312×prod-exp
262×pow-exp
183×pow-to-exp
169×div-exp
80×rec-exp
16×add-cbrt-cube
pow1
add-cube-cbrt
*-un-lft-identity
unpow-prod-down
add-sqr-sqrt
add-log-exp
log1p-expm1-u
cbrt-unprod
associate-/r/
associate-/r*
cbrt-undiv
expm1-log1p-u
div-inv
pow-pow
inv-pow
pow-flip
flip-+
flip3-+
frac-2neg
clear-num
associate-/l*
flip--
flip3--
times-frac
sub-neg
Counts
4 → 242
Calls
4 calls:
Slowest
17.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 (exp (- t)))) c_p)
1.0ms
(/ 1 (+ 1 (exp (- t))))
1.0ms
(- 1 (/ 1 (+ 1 (exp (- t)))))

series585.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
494.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)))
53.0ms
(pow (/ 1 (+ 1 (exp (- t)))) c_p)
20.0ms
(- 1 (/ 1 (+ 1 (exp (- t)))))
17.0ms
(/ 1 (+ 1 (exp (- t))))

simplify46.2s

Counts
206 → 254
Calls
206 calls:
Slowest
600.0ms
(- (+ (* (log (/ 1 (+ 1 (exp (- s))))) c_p) (log (pow (- 1 (/ 1 (+ 1 (exp (- s))))) c_n))) (+ (* (log (/ 1 (+ 1 (exp (- t))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n)))
465.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 (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n)))
386.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))))
366.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)))
350.0ms
(- (+ (* (log (/ 1 (+ 1 (exp (- s))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- s)))))) c_n)) (+ (* (log (/ 1 (+ 1 (exp (- t))))) c_p) (* (log (- 1 (/ 1 (+ 1 (exp (- t)))))) c_n)))

prune4.3s

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.1b

localize48.0ms

Local error

Found 4 expressions with local error:

11.1b
(- (log1p (exp (- t))) (log1p (exp (- s))))
10.8b
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
1.0b
(log1p (exp (- t)))
0.1b
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (- (log1p (exp (- t))) (log1p (exp (- s)))) c_p))

rewrite18.0ms

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity
22×add-sqr-sqrt
18×add-cube-cbrt
18×prod-diff
12×add-log-exp
log1p-udef
diff-log
fma-neg
expm1-log1p-u
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
difference-of-squares
distribute-lft-out--
flip--
flip3--
sub-neg
fma-udef
log1p-expm1
Counts
4 → 83
Calls
4 calls:
Slowest
8.0ms
(- (log1p (exp (- t))) (log1p (exp (- s))))
7.0ms
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
1.0ms
(log1p (exp (- t)))
0.0ms
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (- (log1p (exp (- t))) (log1p (exp (- s)))) c_p))

series599.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
340.0ms
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (- (log1p (exp (- t))) (log1p (exp (- s)))) c_p))
113.0ms
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
86.0ms
(- (log1p (exp (- t))) (log1p (exp (- s))))
60.0ms
(log1p (exp (- t)))

simplify2.1s

Counts
67 → 95
Calls
67 calls:
Slowest
326.0ms
(- (+ (* c_p (log (+ (exp (* -1 t)) 1))) (* c_n (log (- 1 (/ 1 (+ (exp (* -1 s)) 1)))))) (+ (* c_p (log (+ (exp (* -1 s)) 1))) (* (log (- 1 (/ 1 (+ (exp (* -1 t)) 1)))) c_n)))
311.0ms
(- (+ (* c_n (log (- 1 (/ 1 (+ (exp (- s)) 1))))) (* c_p (log (+ (exp (- t)) 1)))) (+ (* c_p (log (+ (exp (- s)) 1))) (* (log (- 1 (/ 1 (+ (exp (- t)) 1)))) c_n)))
142.0ms
(- (* 1/2 t) (+ (* 1/8 (pow s 2)) (* 1/2 s)))
61.0ms
(- (+ (* 1/8 (pow t 2)) (* 1/2 s)) (* 1/2 t))
52.0ms
(- (+ (log 2) (* 1/8 (pow t 2))) (* 1/2 t))

prune1.8s

Pruning

3 alts after pruning (2 fresh and 1 done)

Merged error: 0b

localize24.0ms

Local error

Found 4 expressions with local error:

10.8b
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
0.0b
(/ -1 (+ (exp (- t)) 1))
0.0b
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))
0.0b
(log1p (/ -1 (+ (exp (- t)) 1)))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
14×*-un-lft-identity
14×add-sqr-sqrt
12×add-cube-cbrt
prod-diff
add-log-exp
log1p-udef
expm1-log1p-u
log1p-expm1-u
add-exp-log
diff-log
add-cbrt-cube
pow1
fma-neg
associate-/r*
associate-/r/
difference-of-squares
distribute-lft-out--
flip--
div-inv
fma-udef
flip-+
log1p-expm1
flip3--
flip3-+
frac-2neg
sub-neg
clear-num
Counts
4 → 69
Calls
4 calls:
Slowest
5.0ms
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
3.0ms
(/ -1 (+ (exp (- t)) 1))
0.0ms
(log1p (/ -1 (+ (exp (- t)) 1)))
0.0ms
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))

series422.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
207.0ms
(fma c_n (- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1)))) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))
95.0ms
(log1p (/ -1 (+ (exp (- t)) 1)))
94.0ms
(- (log1p (/ -1 (+ (exp (- s)) 1))) (log1p (/ -1 (+ (exp (- t)) 1))))
27.0ms
(/ -1 (+ (exp (- t)) 1))

simplify1.5s

Counts
45 → 81
Calls
45 calls:
Slowest
179.0ms
(- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p)))
169.0ms
(- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p)))
138.0ms
(- (log 1/2) (+ (* 1/2 t) (* 1/8 (pow t 2))))
137.0ms
(- (* 1/2 t) (+ (* 1/8 (pow s 2)) (* 1/2 s)))
136.0ms
(+ (* (exp (- t)) (exp (- t))) (- (* 1 1) (* (exp (- t)) 1)))

prune1.5s

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0b

localize33.0ms

Local error

Found 4 expressions with local error:

1.0b
(fma c_n (fma s (fma -1/8 s -1/2) (* 1/2 t)) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))
0.0b
(* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p)
0.0b
(fma (fma t 1/8 -1/2) t (* 1/2 s))
0.0b
(fma s (fma -1/8 s -1/2) (* 1/2 t))

rewrite4.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
log1p-expm1-u
add-exp-log
add-cbrt-cube
pow1
expm1-log1p-u
fma-udef
associate-*l*
*-commutative
Counts
4 → 43
Calls
4 calls:
Slowest
3.0ms
(* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p)
0.0ms
(fma c_n (fma s (fma -1/8 s -1/2) (* 1/2 t)) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))
0.0ms
(fma (fma t 1/8 -1/2) t (* 1/2 s))
0.0ms
(fma s (fma -1/8 s -1/2) (* 1/2 t))

series167.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
103.0ms
(fma c_n (fma s (fma -1/8 s -1/2) (* 1/2 t)) (* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p))
35.0ms
(* (fma (fma t 1/8 -1/2) t (* 1/2 s)) c_p)
15.0ms
(fma (fma t 1/8 -1/2) t (* 1/2 s))
14.0ms
(fma s (fma -1/8 s -1/2) (* 1/2 t))

simplify1.5s

Counts
14 → 55
Calls
14 calls:
Slowest
218.0ms
(- (* 1/8 (* (pow t 2) c_p)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_n (pow s 2)))))
199.0ms
(- (* 1/8 (* (pow t 2) c_p)) (+ (* 1/2 (* t c_p)) (* 1/8 (* c_n (pow s 2)))))
184.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)))
169.0ms
(- (+ (* 1/8 (* (pow t 2) c_p)) (* 1/2 (* c_p s))) (* 1/2 (* t c_p)))

prune882.0ms

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0b

regimes579.0ms

bsearch2.0ms

end0.0ms

Reproduce

herbie shell --seed 2019016 +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))))