Details

Time bar (total: 5.5s)

analyze750.0ms (13.7%)

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
6.2%93.6%0.2%8
25%74.9%0.2%9
28.1%71.7%0.2%10
29.6%70.2%0.2%11
53%46.8%0.2%12
71.3%28.5%0.2%13
71.7%28.1%0.2%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.1s (20.8%)

Results
1.0s8256×body128valid
62.0ms498×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
11818
22218
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
26.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
26.7b
(/.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)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
26.2b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

series86.0ms (1.6%)

Counts
2 → 96
Calls

2 calls:

78.0ms
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
8.0ms
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))

rewrite54.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
506×fma-def_binary64
244×fma-neg_binary64
239×expm1-udef_binary64
239×log1p-udef_binary64
134×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01226
126425
2378225
Stop Event
node limit
Counts
2 → 94
Calls

2 calls:

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

simplify39.0ms (0.7%)

Algorithm
egg-herbie
Rules
608×associate-*l/_binary64
519×fma-def_binary64
455×associate-/r/_binary64
341×fma-neg_binary64
284×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0411626
11141542
23581458
318281410
Stop Event
node limit
Counts
190 → 119

prune88.0ms (1.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1136119
Fresh000
Picked011
Done000
Total1137120
Error
2.2b
Counts
120 → 7
Alt Table
StatusErrorProgram
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
19.8b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) 2) (hypot.f64 y.re y.im)) (/.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (hypot.f64 y.re y.im)))
35.7b
(/.f64 x.re y.re)
38.7b
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (hypot.f64 y.re y.im)) 2)
19.3b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
37.2b
(/.f64 x.im y.im)
23.2b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
Compiler

Compiled 2522 to 802 computations (68.2% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series199.0ms (3.6%)

Counts
4 → 168
Calls

4 calls:

94.0ms
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
85.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))
11.0ms
(hypot.f64 y.re y.im)
8.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))

rewrite61.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
614×log-prod_binary64
254×prod-diff_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
200×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01246
124643
2315543
Stop Event
node limit
Counts
4 → 153
Calls

4 calls:

58.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))
58.0ms
(hypot.f64 y.re y.im)
58.0ms
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
58.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

simplify58.0ms (1.1%)

Algorithm
egg-herbie
Rules
585×times-frac_binary64
422×associate-/l*_binary64
319×fma-def_binary64
314×associate-/r*_binary64
293×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01143496
13733040
213002876
Stop Event
node limit
Counts
321 → 244

prune194.0ms (3.5%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2956301
Fresh415
Picked101
Done011
Total3008308
Error
0.0b
Counts
308 → 8
Alt Table
StatusErrorProgram
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
23.2b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 6919 to 2567 computations (62.9% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series143.0ms (2.6%)

Counts
2 → 96
Calls

2 calls:

92.0ms
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
51.0ms
(/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im)))

rewrite52.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
281×prod-diff_binary64
221×expm1-udef_binary64
221×log1p-udef_binary64
207×log-pow_binary64
127×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125231
2338231
Stop Event
node limit
Counts
2 → 79
Calls

2 calls:

50.0ms
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
50.0ms
(/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im)))

simplify61.0ms (1.1%)

Algorithm
egg-herbie
Rules
534×cancel-sign-sub-inv_binary64
533×fma-def_binary64
280×associate-/l/_binary64
239×times-frac_binary64
239×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01373924
15113324
223623100
Stop Event
node limit
Counts
175 → 143

prune185.0ms (3.4%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2910291
Fresh066
Picked011
Done011
Total2918299
Error
0.0b
Counts
299 → 8
Alt Table
StatusErrorProgram
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
23.2b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 7591 to 3177 computations (58.1% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
4.0b
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
17.0b
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
18.5b
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

series207.0ms (3.8%)

Counts
4 → 132
Calls

4 calls:

120.0ms
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
59.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
16.0ms
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
12.0ms
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

rewrite55.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
359×prod-diff_binary64
210×expm1-udef_binary64
210×log1p-udef_binary64
195×log-pow_binary64
117×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01164
122959
2306759
Stop Event
node limit
Counts
4 → 117
Calls

4 calls:

53.0ms
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
53.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
53.0ms
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
53.0ms
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

simplify74.0ms (1.3%)

Algorithm
egg-herbie
Rules
443×times-frac_binary64
364×associate-/l*_binary64
310×sub-neg_binary64
301×associate-/r*_binary64
279×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01103318
12813210
28913069
346333069
Stop Event
node limit
Counts
249 → 183

prune133.0ms (2.4%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1830183
Fresh055
Picked011
Done022
Total1838191
Error
0.0b
Counts
191 → 8
Alt Table
StatusErrorProgram
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
23.2b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 4693 to 1876 computations (60% saved)

regimes1.7s (30.2%)

Accuracy

Total 10.8b remaining (98.7%)

Threshold costs 0b (0%)

Counts
128 → 5
Compiler

Compiled 11803 to 7189 computations (39.1% saved)

bsearch79.0ms (1.4%)

Steps
ItersRangePoint
4
3.5965325781940086e+140
5.90931478180851e+140
3.6360166068854995e+140
9
2.634451215286903e-71
3.60595376629138e-65
2.670610561569208e-71
8
-2.4141280899525958e-105
-1.8387138583883085e-108
-1.1965629553159867e-107
10
-1.1215020233833144e+95
-3.5217700334405997e+83
-1.1090419202097725e+95
Compiler

Compiled 5 to 4 computations (20% saved)

simplify5.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
043121
152121
259119
366119
469119
570119
Stop Event
saturated

end121.0ms (2.2%)

Compiler

Compiled 325 to 168 computations (48.3% saved)

Profiling

Loading profile data...