Average Error: 0.4 → 0.2
Time: 26.1s
Precision: 64
Internal Precision: 128
\[\left(\left(\left(e + d\right) + c\right) + b\right) + a\]
\[e + \left(\left(c + b\right) + \left(d + a\right)\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.2
\[\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. Initial simplification0.2

    \[\leadsto \left(\left(a + d\right) + \left(c + b\right)\right) + e\]
  3. Final simplification0.2

    \[\leadsto e + \left(\left(c + b\right) + \left(d + a\right)\right)\]

Reproduce

herbie shell --seed 2018362 +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: 23.7s)Debug log

start45.0ms

Algorithm
intervals

setup331.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 0.1b

localize13.0ms

Local error

Found 2 expressions with local error:

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

rewrite22.0ms

Algorithm
rewrite-expression-head
Counts
2 → 40
Calls

2 calls. Slowest were:

18.0ms
(+ (+ (+ a d) (+ c b)) e)
3.0ms
(+ (+ a d) (+ c b))

series55.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

35.0ms
(+ (+ (+ a d) (+ c b)) e)
20.0ms
(+ (+ a d) (+ c b))

simplify2.5s

Counts
21 → 46
Calls

21 calls. Slowest were:

606.0ms
(+ (* (+ (pow a 3) (pow d 3)) (- c b)) (* (+ (* a a) (- (* d d) (* a d))) (- (* c c) (* b b))))
514.0ms
(* (+ (* a a) (- (* d d) (* a d))) (+ (* c c) (- (* b b) (* c b))))
486.0ms
(+ (* (- (* a a) (* d d)) (- c b)) (* (- a d) (- (* c c) (* b b))))

prune418.0ms

Pruning

5 alts after pruning (4 fresh and 1 done)

Merged error: 0b

localize29.0ms

Local error

Found 4 expressions with local error:

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

rewrite110.0ms

Algorithm
rewrite-expression-head
Counts
4 → 82
Calls

4 calls. Slowest were:

74.0ms
(+ (log (exp (+ (+ d b) (+ a c)))) e)
17.0ms
(exp (+ (+ d b) (+ a c)))
10.0ms
(log (exp (+ (+ d b) (+ a c))))

series162.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

54.0ms
(+ (log (exp (+ (+ d b) (+ a c)))) e)
42.0ms
(exp (+ (+ d b) (+ a c)))
36.0ms
(+ (+ d b) (+ a c))
30.0ms
(log (exp (+ (+ d b) (+ a c))))

simplify4.0s

Counts
50 → 94
Calls

50 calls. Slowest were:

602.0ms
(+ (* (+ (pow d 3) (pow b 3)) (- a c)) (* (+ (* d d) (- (* b b) (* d b))) (- (* a a) (* c c))))
540.0ms
(+ (* (- (* d d) (* b b)) (- a c)) (* (- d b) (- (* a a) (* c c))))
523.0ms
(* (+ (* d d) (- (* b b) (* d b))) (+ (* a a) (- (* c c) (* a c))))

prune1.1s

Pruning

5 alts after pruning (3 fresh and 2 done)

Merged error: 0b

localize9.0ms

Local error

Found 4 expressions with local error:

0.3b
(fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b))
0.2b
(+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e)
0.1b
(sqrt (+ a d))
0.1b
(sqrt (+ a d))

rewrite7.0ms

Algorithm
rewrite-expression-head
Counts
4 → 58
Calls

4 calls. Slowest were:

3.0ms
(fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b))
3.0ms
(+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e)
1.0ms
(sqrt (+ a d))

series368.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

212.0ms
(+ (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)) e)
120.0ms
(fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b))
18.0ms
(sqrt (+ a d))
18.0ms
(sqrt (+ a d))

simplify187.0ms

Counts
27 → 70
Calls

27 calls. Slowest were:

32.0ms
(sqrt (- (* a a) (* d d)))
32.0ms
(sqrt (- (* a a) (* d d)))
29.0ms
(sqrt (fma (sqrt (+ a d)) (sqrt (+ a d)) (+ c b)))

prune906.0ms

Pruning

5 alts after pruning (2 fresh and 3 done)

Merged error: 0b

localize51.0ms

Local error

Found 4 expressions with local error:

0.4b
(/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a))))
0.3b
(* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b))
0.3b
(fma (* d d) d (pow a 3))
0.3b
(* (- c b) (fma (- d a) d (* a a)))

rewrite35.0ms

Algorithm
rewrite-expression-head
Counts
4 → 85
Calls

4 calls. Slowest were:

18.0ms
(/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a))))
8.0ms
(* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b))
8.0ms
(* (- c b) (fma (- d a) d (* a a)))

series661.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

286.0ms
(* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b))
261.0ms
(/ (* (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))) (- c b)) (* (- c b) (fma (- d a) d (* a a))))
84.0ms
(* (- c b) (fma (- d a) d (* a a)))
29.0ms
(fma (* d d) d (pow a 3))

simplify10.2s

Counts
54 → 97
Calls

54 calls. Slowest were:

1.1s
(* (- (pow c 3) (pow b 3)) (fma (- d a) d (* a a)))
1.0s
(* (* (* (- c b) (- c b)) (- c b)) (* (* (fma (- d a) d (* a a)) (fma (- d a) d (* a a))) (fma (- d a) d (* a a))))
581.0ms
(sqrt (fma (+ b c) (fma (- d a) d (* a a)) (fma (* d d) d (pow a 3))))

prune1.8s

Pruning

5 alts after pruning (1 fresh and 4 done)

Merged error: 0b

regimes578.0ms

Accuracy

0% (0.2b remaining)

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

bsearch1.0ms