Average Error: 0.0 → 0.0
Time: 5.1s
Precision: 64
Internal Precision: 128
\[\left(a + b\right) \cdot \left(a + b\right)\]
\[(\left((2 \cdot a + b)_*\right) \cdot b + \left(a \cdot a\right))_*\]

Error

Bits error versus a

Bits error versus b

Target

Original0.0
Target0.0
Herbie0.0
\[\left(\left(b \cdot a + b \cdot b\right) + b \cdot a\right) + a \cdot a\]

Derivation

  1. Initial program 0.0

    \[\left(a + b\right) \cdot \left(a + b\right)\]
  2. Initial simplification0.0

    \[\leadsto \left(b + a\right) \cdot \left(b + a\right)\]
  3. Taylor expanded around 0 0.0

    \[\leadsto \color{blue}{{a}^{2} + \left({b}^{2} + 2 \cdot \left(a \cdot b\right)\right)}\]
  4. Simplified0.0

    \[\leadsto \color{blue}{(\left((2 \cdot a + b)_*\right) \cdot b + \left(a \cdot a\right))_*}\]
  5. Final simplification0.0

    \[\leadsto (\left((2 \cdot a + b)_*\right) \cdot b + \left(a \cdot a\right))_*\]

Runtime

Time bar (total: 5.1s)Debug log

start32.0ms

Algorithm
intervals

setup52.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize13.0ms

Local error

Found 1 expressions with local error:

0.0b
(* (+ b a) (+ b a))

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
1 → 32
Calls

1 calls. Slowest were:

8.0ms
(* (+ b a) (+ b a))

series16.0ms

Counts
1 → 3
Calls

1 calls. Slowest were:

16.0ms
(* (+ b a) (+ b a))

simplify2.6s

Counts
28 → 35
Calls

28 calls. Slowest were:

499.0ms
(* (- (* b b) (* a a)) (+ (pow b 3) (pow a 3)))
402.0ms
(* (+ (* b b) (- (* a a) (* b a))) (+ (* b b) (- (* a a) (* b a))))
271.0ms
(* (+ (pow b 3) (pow a 3)) (+ (pow b 3) (pow a 3)))

prune357.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0b

localize10.0ms

Local error

Found 0 expressions with local error:

rewrite0.0ms

Algorithm
rewrite-expression-head
Counts
0 → 0
Calls

0 calls. Slowest were:

series0.0ms

Counts
0 → 0
Calls

0 calls. Slowest were:

simplify0.0ms

Counts
0 → 0
Calls

0 calls. Slowest were:

prune4.0ms

Pruning

1 alts after pruning (0 fresh and 1 done)

Merged error: 0b

herbie shell --seed 2018359 +o rules:numerics
(FPCore (a b)
  :name "Expression 4, p15"
  :pre (and (<= 5 a 10) (<= 0 b 0.001))

  :herbie-target
  (+ (+ (+ (* b a) (* b b)) (* b a)) (* a a))

  (* (+ a b) (+ a b)))