Average Error: 0.0 → 0.0
Time: 15.5s
Precision: 64
Internal Precision: 128
\[x.re \cdot y.re - x.im \cdot y.im\]
\[x.re \cdot y.re - x.im \cdot y.im\]

Error

Bits error versus x.re

Bits error versus x.im

Bits error versus y.re

Bits error versus y.im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[x.re \cdot y.re - x.im \cdot y.im\]
  2. Final simplification0.0

    \[\leadsto x.re \cdot y.re - x.im \cdot y.im\]

Reproduce

herbie shell --seed 2019021 
(FPCore (x.re x.im y.re y.im)
  :name "_multiplyComplex, real part"
  (- (* x.re y.re) (* x.im y.im)))

Details

Time bar (total: 15.1s)Debug log

sample27.0ms

Algorithm
intervals
Results
14.0ms334×body80valid

simplify11.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
10.0ms
(- (* x.re y.re) (* x.im y.im))

prune19.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 0.0b

localize19.0ms

Local error

Found 1 expressions with local error:

0.0b
(- (* x.re y.re) (* x.im y.im))

rewrite2.0ms

Algorithm
rewrite-expression-head
Rules
add-log-exp
flip--
add-cube-cbrt
add-exp-log
diff-log
add-cbrt-cube
flip3--
*-un-lft-identity
sub-neg
pow1
add-sqr-sqrt
Counts
1 → 12
Calls
1 calls:
Slowest
2.0ms
(- (* x.re y.re) (* x.im y.im))

series28.0ms

Counts
1 → 3
Calls
1 calls:
Slowest
28.0ms
(- (* x.re y.re) (* x.im y.im))

simplify33.0ms

Counts
4 → 15
Calls
4 calls:
Slowest
16.0ms
(/ (exp (* x.re y.re)) (exp (* x.im y.im)))
10.0ms
(- (* y.re x.re) (* y.im x.im))
5.0ms
(- (* y.re x.re) (* y.im x.im))
0.0ms
0

prune139.0ms

Pruning

2 alts after pruning (1 fresh and 1 done)

Merged error: 0.0b

localize49.0ms

Local error

Found 4 expressions with local error:

38.9b
(/ (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3)) (+ (* (* x.re y.re) (* x.re y.re)) (+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))))
4.3b
(* (* x.re y.re) (* x.im y.im))
1.7b
(+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))
1.6b
(- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))

rewrite71.0ms

Algorithm
rewrite-expression-head
Rules
25×*-un-lft-identity
25×add-sqr-sqrt
18×times-frac
15×add-cube-cbrt
add-log-exp
add-exp-log
add-cbrt-cube
associate-/l*
pow1
difference-of-squares
distribute-lft-out--
difference-cubes
associate-/r*
associate-/l/
flip--
flip-+
associate-/r/
flip3--
flip3-+
div-inv
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
associate-*l*
associate-*r*
div-exp
div-sub
diff-log
distribute-rgt-out
frac-2neg
sub-neg
sum-log
clear-num
+-commutative
cbrt-undiv
Counts
4 → 84
Calls
4 calls:
Slowest
45.0ms
(/ (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3)) (+ (* (* x.re y.re) (* x.re y.re)) (+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))))
10.0ms
(+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))
7.0ms
(- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))
6.0ms
(* (* x.re y.re) (* x.im y.im))

series298.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
111.0ms
(- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))
103.0ms
(/ (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3)) (+ (* (* x.re y.re) (* x.re y.re)) (+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))))
50.0ms
(+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im)))
33.0ms
(* (* x.re y.re) (* x.im y.im))

simplify12.2s

Counts
74 → 96
Calls
74 calls:
Slowest
636.0ms
(* (* (* (* x.re y.re) (* x.re y.re)) (* x.re y.re)) (* (* (* x.im y.im) (* x.im y.im)) (* x.im y.im)))
546.0ms
(/ (- (* x.re y.re) (* x.im y.im)) (cbrt (+ (* (* x.re y.re) (* x.re y.re)) (+ (* (* x.im y.im) (* x.im y.im)) (* (* x.re y.re) (* x.im y.im))))))
428.0ms
(sqrt (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3)))
418.0ms
(* (cbrt (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))) (cbrt (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))))
334.0ms
(/ (sqrt (- (pow (* x.re y.re) 3) (pow (* x.im y.im) 3))) 1)

prune1.1s

Pruning

2 alts after pruning (0 fresh and 2 done)

Merged error: 0.0b

regimes232.0ms

Accuracy

0% (0.0b remaining)

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

bsearch1.0ms

end0.0ms

sample902.0ms

Algorithm
intervals
Results
730.0ms10424×body80valid