Details

Time bar (total: 8.4s)

analyze895.0ms (10.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
50%50%0.1%3
50%50%0.1%4
62.4%37.5%0.1%5
62.4%37.5%0.1%6
68.7%31.2%0.1%7
68.7%31.2%0.1%8
71.8%28.1%0.1%9
71.8%28.1%0.1%10
73.4%26.5%0.1%11
73.4%26.5%0.1%12
74.1%25.8%0.1%13
74.1%25.8%0.1%14
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample3.3s (39.2%)

Results
1.4s6218×body128valid
681.0ms681×body2048valid
592.0ms526×body4096valid
391.0ms461×body1024valid
120.0ms219×body512valid
58.0ms151×body256valid
Compiler

Compiled 53 to 38 computations (28.3% saved)

simplify13.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
22915
33115
43115

prune8.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
17.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
17.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
39.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Compiler

Compiled 85 to 61 computations (28.2% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
0.0b
(hypot.f64 re im)
1.1b
(+.f64 re (hypot.f64 re im))

series122.0ms (1.4%)

Counts
3 → 56
Calls

3 calls:

79.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
22.0ms
(+.f64 re (hypot.f64 re im))
21.0ms
(hypot.f64 re im)

rewrite103.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
589×prod-diff_binary64
88×add-sqr-sqrt_binary64
84×add-log-exp_binary64
Counts
3 → 79
Calls

3 calls:

100.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
100.0ms
(hypot.f64 re im)
100.0ms
(+.f64 re (hypot.f64 re im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
117723
2212623
3625923
000
100

simplify91.0ms (1.1%)

Algorithm
egg-herbie
Rules
744×fma-neg_binary64
527×fma-def_binary64
416×associate-*r*_binary64
335×associate-*l*_binary64
287×cancel-sign-sub-inv_binary64
Counts
135 → 151
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01381348
14111280
212561216
346931216
452321216

prune207.0ms (2.4%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1438151
Fresh101
Picked011
Done000
Total1449153
Error
10.2b
Counts
153 → 9
Alt Table
StatusErrorProgram
20.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
46.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
33.2b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 3/2) 1/3))
17.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
19.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re))))
18.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3))))
50.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
53.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
19.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))))
Compiler

Compiled 3208 to 2171 computations (32.3% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.4b
(cbrt.f64 (+.f64 re (hypot.f64 re im)))
0.5b
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
1.1b
(+.f64 re (hypot.f64 re im))

series205.0ms (2.4%)

Counts
2 → 48
Calls

2 calls:

143.0ms
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
61.0ms
(cbrt.f64 (+.f64 re (hypot.f64 re im)))

rewrite64.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
728×log1p-expm1-u_binary64
728×expm1-log1p-u_binary64
506×prod-diff_binary64
75×add-sqr-sqrt_binary64
72×add-cbrt-cube_binary64
Counts
2 → 64
Calls

2 calls:

61.0ms
(cbrt.f64 (+.f64 re (hypot.f64 re im)))
61.0ms
(pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
115716
2183616
3534416
000
100

simplify92.0ms (1.1%)

Algorithm
egg-herbie
Rules
729×associate-/l*_binary64
641×fma-def_binary64
256×cancel-sign-sub-inv_binary64
210×associate-/r/_binary64
198×unswap-sqr_binary64
Counts
112 → 142
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02081954
16131898
220821768
352491768

prune366.0ms (4.3%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New2467253
Fresh167
Picked011
Done011
Total24715262
Error
10.2b
Counts
262 → 15
Alt Table
StatusErrorProgram
20.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
46.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
21.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2/3) 1/3)) 3))))
17.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 (*.f64 -1 im) 1/3) 3))))
50.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
54.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 1/3) (pow.f64 (/.f64 -1 re) 1/3)) 3))))
19.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2)) 3))))
19.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re))))
18.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3))))
50.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (neg.f64 im)) 3))))
47.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 3))))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 im 1/3) 3))))
53.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
Compiler

Compiled 6819 to 4831 computations (29.2% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
0.5b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
0.5b
(cbrt.f64 (hypot.f64 re im))
13.9b
(+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))

series238.0ms (2.8%)

Counts
4 → 96
Calls

4 calls:

113.0ms
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
74.0ms
(cbrt.f64 (hypot.f64 re im))
28.0ms
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
22.0ms
(+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))

rewrite85.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
759×log1p-expm1-u_binary64
759×expm1-log1p-u_binary64
682×prod-diff_binary64
93×egg-rr
83×add-sqr-sqrt_binary64
Counts
4 → 93
Calls

4 calls:

81.0ms
(*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))
81.0ms
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
81.0ms
(cbrt.f64 (hypot.f64 re im))
81.0ms
(+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
117324
2192724
3587124
000
100

simplify147.0ms (1.7%)

Algorithm
egg-herbie
Rules
801×fma-neg_binary64
766×fma-def_binary64
366×cancel-sign-sub-inv_binary64
208×times-frac_binary64
186×associate-/r*_binary64
Counts
189 → 198
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02032518
16442482
218782410
347322410
453422410

prune359.0ms (4.2%)

Pruning

15 alts after pruning (12 fresh and 3 done)

PrunedKeptTotal
New2540254
Fresh01212
Picked011
Done022
Total25415269
Error
10.2b
Counts
269 → 15
Alt Table
StatusErrorProgram
20.9b
(*.f64 1/2 (exp.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2)))))
46.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
21.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2/3) 1/3)) 3))))
17.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 (*.f64 -1 im) 1/3) 3))))
50.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
54.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 1/3) (pow.f64 (/.f64 -1 re) 1/3)) 3))))
19.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2)) 3))))
19.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re))))
18.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3))))
50.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (neg.f64 im)) 3))))
47.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 3))))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 im 1/3) 3))))
53.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
Compiler

Compiled 6805 to 4518 computations (33.6% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.5b
(pow.f64 (cbrt.f64 (hypot.f64 re im)) 2)
0.5b
(cbrt.f64 (hypot.f64 re im))
19.0b
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)

series124.0ms (1.5%)

Counts
1 → 24
Calls

1 calls:

123.0ms
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)

rewrite62.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
606×log1p-expm1-u_binary64
606×expm1-log1p-u_binary64
304×log-prod_binary64
168×prod-diff_binary64
129×expm1-udef_binary64
Counts
1 → 32
Calls

1 calls:

61.0ms
(fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
11597
216037
350727
000
100

simplify65.0ms (0.8%)

Algorithm
egg-herbie
Rules
658×associate-*l/_binary64
626×cancel-sign-sub-inv_binary64
354×fma-neg_binary64
256×associate-/r/_binary64
220×associate-/l/_binary64
Counts
56 → 62
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
055394
1178388
2520382
32178382
45082382

prune388.0ms (4.6%)

Pruning

15 alts after pruning (11 fresh and 4 done)

PrunedKeptTotal
New2991300
Fresh11011
Picked011
Done033
Total30015315
Error
10.2b
Counts
315 → 15
Alt Table
StatusErrorProgram
46.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
21.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im)))) (pow.f64 (pow.f64 (+.f64 re (hypot.f64 re im)) 2/3) 1/3)) 3))))
17.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
51.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 (*.f64 -1 im) 1/3) 3))))
50.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
54.5b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 1/3) (pow.f64 (/.f64 -1 re) 1/3)) 3))))
19.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (*.f64 (cbrt.f64 (hypot.f64 re im)) (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2))))))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2)) 3))))
19.9b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 re im)) 2) (cbrt.f64 (hypot.f64 re im)) re))))
18.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (+.f64 re (hypot.f64 re im))) 3))))
50.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 (neg.f64 im)) 3))))
47.0b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (cbrt.f64 im) 3))))
48.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (pow.f64 (pow.f64 im 1/3) 3))))
20.2b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (hypot.f64 re im))) 3) 2) (cbrt.f64 (hypot.f64 re im)) re))))
53.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
Compiler

Compiled 7953 to 5069 computations (36.3% saved)

regimes1.0s (12.2%)

Accuracy

Total 2.6b remaining (26%)

Threshold costs 0b (0%)

Counts
60 → 2
Compiler

Compiled 7586 to 5866 computations (22.7% saved)

bsearch4.0ms (0%)

Compiler

Compiled 15 to 10 computations (33.3% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02858
13758
23758

end395.0ms (4.7%)

Compiler

Compiled 313 to 244 computations (22% saved)

Profiling

Loading profile data...