Average Error: 0.4 → 0.3
Time: 16.2s
Precision: 64
Internal Precision: 128
\[\left(\left(\left(e + d\right) + c\right) + b\right) + a\]
\[a + \log \left(e^{b + d} \cdot e^{c + e}\right)\]

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Bits error versus e

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.4
Target0.2
Herbie0.3
\[\left(d + \left(c + \left(a + b\right)\right)\right) + e\]

Derivation

  1. Initial program 0.4

    \[\left(\left(\left(e + d\right) + c\right) + b\right) + a\]
  2. Using strategy rm
  3. Applied associate-+l+0.3

    \[\leadsto \color{blue}{\left(\left(e + d\right) + \left(c + b\right)\right)} + a\]
  4. Using strategy rm
  5. Applied add-log-exp0.3

    \[\leadsto \left(\left(e + d\right) + \color{blue}{\log \left(e^{c + b}\right)}\right) + a\]
  6. Applied add-log-exp0.3

    \[\leadsto \left(\color{blue}{\log \left(e^{e + d}\right)} + \log \left(e^{c + b}\right)\right) + a\]
  7. Applied sum-log0.3

    \[\leadsto \color{blue}{\log \left(e^{e + d} \cdot e^{c + b}\right)} + a\]
  8. Simplified0.3

    \[\leadsto \log \color{blue}{\left(e^{\left(d + b\right) + \left(e + c\right)}\right)} + a\]
  9. Using strategy rm
  10. Applied exp-sum0.3

    \[\leadsto \log \color{blue}{\left(e^{d + b} \cdot e^{e + c}\right)} + a\]
  11. Final simplification0.3

    \[\leadsto a + \log \left(e^{b + d} \cdot e^{c + e}\right)\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (a b c d e)
  :name "Expression 1, p15"
  :pre (<= 1 a 2 b 4 c 8 d 16 e 32)

  :herbie-target
  (+ (+ d (+ c (+ a b))) e)

  (+ (+ (+ (+ e d) c) b) a))

Details

Time bar (total: 14.6s)Debug log

sample52.0ms

Algorithm
intervals

simplify189.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
189.0ms
(+ (+ (+ (+ e d) c) b) a)

prune7.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.4b

localize13.0ms

Local error

Found 3 expressions with local error:

0.3b
(+ (+ (+ e d) c) b)
0.3b
(+ (+ (+ (+ e d) c) b) a)
0.3b
(+ (+ e d) c)

rewrite67.0ms

Algorithm
rewrite-expression-head
Rules
fma-def
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
log1p-expm1-u
flip-+
add-exp-log
add-cbrt-cube
flip3-+
associate-+l+
+-commutative
pow1
expm1-log1p-u
Counts
3 → 48
Calls
3 calls:
Slowest
52.0ms
(+ (+ (+ (+ e d) c) b) a)
12.0ms
(+ (+ (+ e d) c) b)
2.0ms
(+ (+ e d) c)

series68.0ms

Counts
3 → 9
Calls
3 calls:
Slowest
36.0ms
(+ (+ (+ (+ e d) c) b) a)
22.0ms
(+ (+ (+ e d) c) b)
11.0ms
(+ (+ e d) c)

simplify148.0ms

Counts
17 → 57
Calls
17 calls:
Slowest
34.0ms
(* (cbrt (+ (+ (+ e d) c) b)) (cbrt (+ (+ (+ e d) c) b)))
26.0ms
(sqrt (+ (+ (+ e d) c) b))
9.0ms
(* (cbrt (+ (+ e d) c)) (cbrt (+ (+ e d) c)))
9.0ms
(+ e (+ c d))
7.0ms
(+ b (+ c d))

prune545.0ms

Pruning

8 alts after pruning (8 fresh and 0 done)

Merged error: 0b

localize16.0ms

Local error

Found 2 expressions with local error:

0.3b
(+ (+ e d) (+ c b))
0.3b
(+ (+ (+ e d) (+ c b)) a)

rewrite39.0ms

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity
fma-def
flip-+
flip3-+
add-log-exp
add-cube-cbrt
frac-add
add-sqr-sqrt
distribute-lft-out
log1p-expm1-u
add-exp-log
add-cbrt-cube
associate-+l+
+-commutative
pow1
expm1-log1p-u
sum-log
associate-+r+
Counts
2 → 40
Calls
2 calls:
Slowest
31.0ms
(+ (+ (+ e d) (+ c b)) a)
7.0ms
(+ (+ e d) (+ c b))

series97.0ms

Counts
2 → 6
Calls
2 calls:
Slowest
63.0ms
(+ (+ (+ e d) (+ c b)) a)
33.0ms
(+ (+ e d) (+ c b))

simplify2.3s

Counts
21 → 46
Calls
21 calls:
Slowest
541.0ms
(+ (* (+ (pow e 3) (pow d 3)) (- c b)) (* (+ (* e e) (- (* d d) (* e d))) (- (* c c) (* b b))))
487.0ms
(* (+ (* e e) (- (* d d) (* e d))) (+ (* c c) (- (* b b) (* c b))))
418.0ms
(+ (* (- (* e e) (* d d)) (- c b)) (* (- e d) (- (* c c) (* b b))))
226.0ms
(* (- e d) (+ (* c c) (- (* b b) (* c b))))
112.0ms
(+ (* (+ (pow e 3) (pow d 3)) (+ (* c c) (- (* b b) (* c b)))) (* (+ (* e e) (- (* d d) (* e d))) (+ (pow c 3) (pow b 3))))

prune514.0ms

Pruning

7 alts after pruning (6 fresh and 1 done)

Merged error: 0b

localize31.0ms

Local error

Found 4 expressions with local error:

3.4b
(exp (+ (+ d b) (+ e c)))
0.3b
(+ (log (exp (+ (+ d b) (+ e c)))) a)
0.2b
(+ (+ d b) (+ e c))
0.0b
(log (exp (+ (+ d b) (+ e c))))

rewrite86.0ms

Algorithm
rewrite-expression-head
Rules
19×*-un-lft-identity
12×exp-prod
11×add-cube-cbrt
11×fma-def
11×add-sqr-sqrt
10×log-pow
add-log-exp
log-prod
flip-+
flip3-+
pow1
associate-+l+
distribute-lft-out
log1p-expm1-u
add-exp-log
frac-add
add-cbrt-cube
expm1-log1p-u
exp-sum
rem-exp-log
sum-log
+-commutative
rem-log-exp
associate-+r+
Counts
4 → 82
Calls
4 calls:
Slowest
57.0ms
(+ (log (exp (+ (+ d b) (+ e c)))) a)
15.0ms
(log (exp (+ (+ d b) (+ e c))))
9.0ms
(exp (+ (+ d b) (+ e c)))
3.0ms
(+ (+ d b) (+ e c))

series139.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
49.0ms
(+ (log (exp (+ (+ d b) (+ e c)))) a)
35.0ms
(exp (+ (+ d b) (+ e c)))
31.0ms
(log (exp (+ (+ d b) (+ e c))))
23.0ms
(+ (+ d b) (+ e c))

simplify3.7s

Counts
50 → 94
Calls
50 calls:
Slowest
543.0ms
(* (+ (* d d) (- (* b b) (* d b))) (+ (* e e) (- (* c c) (* e c))))
499.0ms
(+ (* (- (* d d) (* b b)) (- e c)) (* (- d b) (- (* e e) (* c c))))
498.0ms
(+ (* (+ (pow d 3) (pow b 3)) (- e c)) (* (+ (* d d) (- (* b b) (* d b))) (- (* e e) (* c c))))
198.0ms
(* (- d b) (+ (* e e) (- (* c c) (* e c))))
155.0ms
(+ (* (+ (pow d 3) (pow b 3)) (+ (* e e) (- (* c c) (* e c)))) (* (+ (* d d) (- (* b b) (* d b))) (+ (pow e 3) (pow c 3))))

prune1.2s

Pruning

6 alts after pruning (5 fresh and 1 done)

Merged error: 0b

localize31.0ms

Local error

Found 4 expressions with local error:

2.5b
(exp (+ e c))
1.9b
(exp (+ d b))
0.3b
(* (exp (+ d b)) (exp (+ e c)))
0.3b
(+ (log (* (exp (+ d b)) (exp (+ e c)))) a)

rewrite67.0ms

Algorithm
rewrite-expression-head
Rules
13×*-un-lft-identity
10×exp-prod
add-cube-cbrt
pow1
add-sqr-sqrt
add-log-exp
add-cbrt-cube
fma-def
log1p-expm1-u
add-exp-log
exp-sum
associate-*l*
associate-*r*
expm1-log1p-u
log-pow
rem-exp-log
pow-prod-up
pow-prod-down
flip-+
cbrt-unprod
*-commutative
prod-exp
flip3-+
log-prod
associate-+l+
+-commutative
Counts
4 → 69
Calls
4 calls:
Slowest
44.0ms
(+ (log (* (exp (+ d b)) (exp (+ e c)))) a)
17.0ms
(* (exp (+ d b)) (exp (+ e c)))
3.0ms
(exp (+ e c))
3.0ms
(exp (+ d b))

series263.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
193.0ms
(+ (log (* (exp (+ d b)) (exp (+ e c)))) a)
46.0ms
(* (exp (+ d b)) (exp (+ e c)))
12.0ms
(exp (+ e c))
12.0ms
(exp (+ d b))

simplify2.3s

Counts
38 → 81
Calls
38 calls:
Slowest
403.0ms
(+ (log (* (exp (+ e c)) (exp (+ b d)))) a)
386.0ms
(* (* (* (exp (+ d b)) (exp (+ d b))) (exp (+ d b))) (* (* (exp (+ e c)) (exp (+ e c))) (exp (+ e c))))
384.0ms
(+ (log (* (exp (+ e c)) (exp (+ b d)))) a)
338.0ms
(* (cbrt (log (* (exp (+ d b)) (exp (+ e c))))) (cbrt (log (* (exp (+ d b)) (exp (+ e c))))))
304.0ms
(sqrt (log (* (exp (+ d b)) (exp (+ e c)))))

prune974.0ms

Pruning

6 alts after pruning (4 fresh and 2 done)

Merged error: 0b

regimes564.0ms

Accuracy

0% (0.3b remaining)

Error of 0.3b against oracle of 0.0b and baseline of 0.3b

bsearch1.0ms

end0.0ms

sample1.2s

Algorithm
intervals