Average Error: 3.7 → 0
Time: 9.2s
Precision: 64
Internal Precision: 128
\[\left(a + \left(b + \left(c + d\right)\right)\right) \cdot 2\]
\[\left(b + \left(c + \left(a + d\right)\right)\right) \cdot 2\]

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original3.7
Target3.9
Herbie0
\[\left(a + b\right) \cdot 2 + \left(c + d\right) \cdot 2\]

Derivation

  1. Initial program 3.7

    \[\left(a + \left(b + \left(c + d\right)\right)\right) \cdot 2\]
  2. Initial simplification3.1

    \[\leadsto 2 \cdot \left(\left(a + c\right) + \left(b + d\right)\right)\]
  3. Using strategy rm
  4. Applied +-commutative3.1

    \[\leadsto 2 \cdot \color{blue}{\left(\left(b + d\right) + \left(a + c\right)\right)}\]
  5. Using strategy rm
  6. Applied associate-+r+2.8

    \[\leadsto 2 \cdot \color{blue}{\left(\left(\left(b + d\right) + a\right) + c\right)}\]
  7. Using strategy rm
  8. Applied associate-+l+0.0

    \[\leadsto 2 \cdot \left(\color{blue}{\left(b + \left(d + a\right)\right)} + c\right)\]
  9. Using strategy rm
  10. Applied associate-+l+0

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

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

Reproduce

herbie shell --seed 2018362 +o rules:numerics
(FPCore (a b c d)
  :name "Expression, p6"
  :pre (and (<= -14 a -13) (<= -3 b -2) (<= 3 c 3.5) (<= 12.5 d 13.5))

  :herbie-target
  (+ (* (+ a b) 2) (* (+ c d) 2))

  (* (+ a (+ b (+ c d))) 2))

Details

Time bar (total: 6.8s)Debug log

start40.0ms

Algorithm
intervals

setup285.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 2.8b

localize15.0ms

Local error

Found 1 expressions with local error:

2.9b
(+ (+ a c) (+ b d))

rewrite4.0ms

Algorithm
rewrite-expression-head
Counts
1 → 23
Calls

1 calls. Slowest were:

4.0ms
(+ (+ a c) (+ b d))

series22.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

22.0ms
(+ (+ a c) (+ b d))

simplify2.3s

Counts
15 → 26
Calls

15 calls. Slowest were:

583.0ms
(+ (* (+ (pow a 3) (pow c 3)) (- b d)) (* (+ (* a a) (- (* c c) (* a c))) (- (* b b) (* d d))))
517.0ms
(+ (* (- (* a a) (* c c)) (- b d)) (* (- a c) (- (* b b) (* d d))))
455.0ms
(* (+ (* a a) (- (* c c) (* a c))) (+ (* b b) (- (* d d) (* b d))))

prune351.0ms

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 1.7b

localize11.0ms

Local error

Found 1 expressions with local error:

2.9b
(+ (+ b d) (+ a c))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
1 → 23
Calls

1 calls. Slowest were:

7.0ms
(+ (+ b d) (+ a c))

series40.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

40.0ms
(+ (+ b d) (+ a c))

simplify2.4s

Counts
15 → 26
Calls

15 calls. Slowest were:

579.0ms
(* (+ (* b b) (- (* d d) (* b d))) (+ (* a a) (- (* c c) (* a c))))
544.0ms
(+ (* (+ (pow b 3) (pow d 3)) (- a c)) (* (+ (* b b) (- (* d d) (* b d))) (- (* a a) (* c c))))
485.0ms
(+ (* (- (* b b) (* d d)) (- a c)) (* (- b d) (- (* a a) (* c c))))

prune358.0ms

Pruning

16 alts after pruning (15 fresh and 1 done)

Merged error: 0.8b

localize17.0ms

Local error

Found 2 expressions with local error:

0.8b
(+ (+ b d) a)
0.0b
(+ (+ (+ b d) a) c)

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
2 → 32
Calls

2 calls. Slowest were:

14.0ms
(+ (+ (+ b d) a) c)
5.0ms
(+ (+ b d) a)

series36.0ms

Counts
2 → 6
Calls

2 calls. Slowest were:

25.0ms
(+ (+ (+ b d) a) c)
11.0ms
(+ (+ b d) a)

simplify85.0ms

Counts
11 → 38
Calls

11 calls. Slowest were:

14.0ms
(* (cbrt (+ (+ b d) a)) (cbrt (+ (+ b d) a)))
13.0ms
(+ a (+ c d))
12.0ms
(+ a (+ c d))

prune450.0ms

Pruning

4 alts after pruning (3 fresh and 1 done)

Merged error: 0.0b

localize20.0ms

Local error

Found 1 expressions with local error:

0.0b
(+ (+ b (+ d a)) c)

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
1 → 16
Calls

1 calls. Slowest were:

8.0ms
(+ (+ b (+ d a)) c)

series39.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

39.0ms
(+ (+ b (+ d a)) c)

simplify45.0ms

Counts
5 → 19
Calls

5 calls. Slowest were:

16.0ms
(* (cbrt (+ b (+ d a))) (cbrt (+ b (+ d a))))
9.0ms
(sqrt (+ b (+ d a)))
6.0ms
(+ a (+ c d))

prune200.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0b