Details

Time bar (total: 10.3s)

analyze1.7s (16.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0%99.8%0.2%11
0%99.8%0.2%12
0%99.8%0.2%13
0%99.8%0.2%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.3s (12.4%)

Results
1.1s8256×body128valid
157.0ms223×body8192exit
26.0ms218×body128invalid
Compiler

Compiled 39 to 23 computations (41% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
11818
22218
32218

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
26.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
26.6b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
Compiler

Compiled 70 to 36 computations (48.6% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))
0.5b
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
26.1b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

series103.0ms (1%)

Counts
3 → 120
Calls

3 calls:

88.0ms
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
9.0ms
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
6.0ms
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))

rewrite16.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
11×add-cube-cbrt_binary64
times-frac_binary64
add-log-exp_binary64
Counts
3 → 61
Calls

3 calls:

6.0ms
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
3.0ms
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))
3.0ms
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))

simplify99.0ms (1%)

Algorithm
egg-herbie
Rules
498×associate-*l*_binary64
483×fma-def_binary64
426×associate-*r*_binary64
349×times-frac_binary64
327×fma-neg_binary64
Counts
181 → 138
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01323026
13812904
212602820
348332820
450182820

prune109.0ms (1.1%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1326138
Fresh000
Picked101
Done000
Total1336139
Error
0.1b
Counts
139 → 6
Alt Table
StatusErrorProgram
26.9b
(*.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (/.f64 1 (fma.f64 y.im y.im (*.f64 y.re y.re))))
32.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
15.7b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))
31.1b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
16.4b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (fma.f64 y.im x.im (*.f64 y.re x.re))) (cbrt.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)))) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 (fma.f64 y.im x.im (*.f64 y.re x.re))) (hypot.f64 y.im y.re)))
26.5b
(/.f64 (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)) (sqrt.f64 (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))))
Compiler

Compiled 3402 to 669 computations (80.3% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 y.im y.re)
0.3b
(fma.f64 y.im x.im (*.f64 y.re x.re))
0.3b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))
14.6b
(/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re))

series233.0ms (2.3%)

Counts
4 → 168
Calls

4 calls:

107.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))
106.0ms
(/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re))
12.0ms
(hypot.f64 y.im y.re)
9.0ms
(fma.f64 y.im x.im (*.f64 y.re x.re))

rewrite22.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
43×add-sqr-sqrt_binary64
34×times-frac_binary64
28×*-un-lft-identity_binary64
28×add-exp-log_binary64
26×add-cube-cbrt_binary64
Counts
4 → 107
Calls

4 calls:

10.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))
2.0ms
(/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re))
0.0ms
(fma.f64 y.im x.im (*.f64 y.re x.re))
0.0ms
(hypot.f64 y.im y.re)

simplify152.0ms (1.5%)

Algorithm
egg-herbie
Rules
868×times-frac_binary64
516×fma-neg_binary64
377×fma-def_binary64
306×cancel-sign-sub-inv_binary64
282×distribute-rgt-in_binary64
Counts
275 → 263
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02295947
16195325
220945152
348405152
451435152

prune211.0ms (2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New3005305
Fresh235
Picked101
Done000
Total3038311
Error
0.1b
Counts
311 → 8
Alt Table
StatusErrorProgram
26.8b
(fma.f64 (/.f64 x.re (fma.f64 y.im y.im (*.f64 y.re y.re))) y.re (/.f64 (*.f64 y.im x.im) (fma.f64 y.im y.im (*.f64 y.re y.re))))
31.1b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
26.9b
(*.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (/.f64 1 (fma.f64 y.im y.im (*.f64 y.re y.re))))
41.6b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
16.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re))))) (cbrt.f64 (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.im (*.f64 y.re x.re)) (hypot.f64 y.im y.re)))))
32.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
15.8b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
45.7b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 7959 to 2480 computations (68.8% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re))))
0.3b
(fma.f64 y.im x.im (*.f64 y.re x.re))
0.3b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
14.7b
(/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))

series300.0ms (2.9%)

Counts
3 → 144
Calls

3 calls:

120.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
106.0ms
(/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re))))
74.0ms
(/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))

rewrite62.0ms (0.6%)

Algorithm
rewrite-expression-head
Rules
187×times-frac_binary64
142×add-sqr-sqrt_binary64
106×*-un-lft-identity_binary64
99×add-exp-log_binary64
95×add-cube-cbrt_binary64
Counts
3 → 230
Calls

3 calls:

21.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
4.0ms
(/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re))))
2.0ms
(/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))

simplify218.0ms (2.1%)

Algorithm
egg-herbie
Rules
729×fma-def_binary64
304×fma-neg_binary64
298×times-frac_binary64
284×associate-/l*_binary64
252×sub-neg_binary64
Counts
374 → 450
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032612173
193310233
236039992
350499992

prune328.0ms (3.2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New4701471
Fresh257
Picked011
Done000
Total4727479
Error
0.1b
Counts
479 → 7
Alt Table
StatusErrorProgram
26.8b
(fma.f64 (/.f64 x.re (fma.f64 y.im y.im (*.f64 y.re y.re))) y.re (/.f64 (*.f64 y.im x.im) (fma.f64 y.im y.im (*.f64 y.re y.re))))
31.1b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
41.6b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
32.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
16.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
15.8b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
45.7b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 14501 to 4700 computations (67.6% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
0.4b
(*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
10.9b
(cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))
14.6b
(/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re))

series529.0ms (5.1%)

Counts
4 → 192
Calls

4 calls:

182.0ms
(*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
141.0ms
(cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))
109.0ms
(*.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
97.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re))

rewrite187.0ms (1.8%)

Algorithm
rewrite-expression-head
Rules
432×times-frac_binary64
290×add-sqr-sqrt_binary64
285×cbrt-prod_binary64
227×*-un-lft-identity_binary64
227×add-cube-cbrt_binary64
Counts
4 → 347
Calls

4 calls:

42.0ms
(*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
29.0ms
(*.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
4.0ms
(cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))
2.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re))

simplify466.0ms (4.5%)

Algorithm
egg-herbie
Rules
473×fma-def_binary64
434×*-commutative_binary64
221×cancel-sign-sub-inv_binary64
203×sub-neg_binary64
147×sqr-pow_binary64
Counts
539 → 852
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0120331944
1348530390
2498030390

prune1.0s (9.9%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New142001420
Fresh055
Picked011
Done011
Total142071427
Error
0.1b
Counts
1427 → 7
Alt Table
StatusErrorProgram
26.8b
(fma.f64 (/.f64 x.re (fma.f64 y.im y.im (*.f64 y.re y.re))) y.re (/.f64 (*.f64 y.im x.im) (fma.f64 y.im y.im (*.f64 y.re y.re))))
31.1b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
41.6b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
32.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
16.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re)))) (cbrt.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 y.im x.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))))
15.8b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 1 (/.f64 (hypot.f64 y.im y.re) (fma.f64 y.im x.im (*.f64 y.re x.re)))))
45.7b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 100283 to 20551 computations (79.5% saved)

regimes3.1s (29.5%)

Accuracy

Total 10.6b remaining (98.4%)

Threshold costs 0b (0%)

Counts
208 → 5
Compiler

Compiled 27010 to 13940 computations (48.4% saved)

bsearch116.0ms (1.1%)

Steps
ItersRangePoint
9
8.270881781166447e+69
3.117871684444356e+79
4.032187018528407e+74
7
3.5136027450915935e-248
1.385268962870169e-246
1.1327597853587381e-247
9
-1.1695226378116171e-188
-2.310179418473179e-197
-3.2946202192791303e-195
6
-1.001502637324893e+139
-1.0779497592106123e+138
-1.4352057347664762e+138
Compiler

Compiled 5 to 4 computations (20% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
035116
145116
252114
359114
462114
563114
661114

end116.0ms (1.1%)

Compiler

Compiled 324 to 140 computations (56.8% saved)

Profiling

Loading profile data...