Details

Time bar (total: 3.2min)

analyze1.5s (0.8%)

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
9.4%90.4%0.2%6
17.2%82.7%0.2%7
19.5%80.3%0.2%8
30.8%69%0.2%9
35.5%64.3%0.2%10
42.4%57.4%0.2%11
47.1%52.7%0.2%12
48.9%50.8%0.3%13
50%49.7%0.4%14
Compiler

Compiled 38 to 20 computations (47.4% saved)

sample131.0ms (0.1%)

Algorithm
intervals
Results
43.0ms80×body1024invalid
29.0ms239×body128valid
17.0ms38×body512invalid
4.0msbody1024valid
3.0msbody2048invalid
2.0ms19×body128invalid
2.0msbody256invalid
2.0msbody512valid
1.0msbody256valid
Compiler

Compiled 78 to 50 computations (35.9% saved)

simplify156.0ms (0.1%)

Algorithm
egg-herbie
Counts
4 → 4
Iterations

Useful iterations: 0 (57.0ms)

IterNodesCost
0494475
1494475

prune6.0ms (0%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New044
Fresh044
Picked000
Done000
Total088
Error
4.6b
Counts
8 → 5
Compiler

Compiled 39 to 22 computations (43.6% saved)

localize32.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
30.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite29.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-prod_binary64
add-log-exp_binary64 sqrt-div_binary64
associate-*r*_binary64 associate-*l*_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 prod-exp_binary64 cos-sum_binary64 *-commutative_binary64
Counts
4 → 56
Calls

8 calls:

8.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
5.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series587.0ms (0.3%)

Counts
4 → 50
Calls

4 calls:

292.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
143.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
78.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
73.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 3428 to 2241 computations (34.6% saved)

simplify74.0ms (0%)

Algorithm
egg-herbie
Counts
106 → 106
Iterations

Useful iterations: 0 (48.0ms)

IterNodesCost
050752052

localize26.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re)))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
30.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))

rewrite27.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-prod_binary64
add-log-exp_binary64 sqrt-div_binary64
associate-*r*_binary64 associate-*l*_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 prod-exp_binary64 cos-sum_binary64 *-commutative_binary64
Counts
4 → 56
Calls

8 calls:

7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
5.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series565.0ms (0.3%)

Counts
4 → 50
Calls

4 calls:

270.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
141.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
79.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
75.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 3345 to 2176 computations (34.9% saved)

simplify72.0ms (0%)

Algorithm
egg-herbie
Counts
106 → 106
Iterations

Useful iterations: 0 (48.0ms)

IterNodesCost
050752052

prune1.5s (0.8%)

Pruning

81 alts after pruning (79 fresh and 2 done)

PrunedKeptTotal
New13676212
Fresh033
Picked000
Done022
Total13681217
Error
4.6b
Counts
217 → 81
Compiler

Compiled 9595 to 3776 computations (60.6% saved)

localize18.0ms (0%)

Local error

Found 8 expressions with local error:

0.2b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
0.0b
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
1.0b
(*.f64 (atan2.f64 x.im x.re) y.re)
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
13.9b
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite19.0ms (0%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
associate-*r*_binary64 associate-*l*_binary64
add-log-exp_binary64
sqrt-prod_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 prod-exp_binary64 sqrt-div_binary64 *-commutative_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 58
Calls

8 calls:

4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.re)
2.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series399.0ms (0.2%)

Counts
4 → 46
Calls

4 calls:

135.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
126.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
71.0ms
(*.f64 (atan2.f64 x.im x.re) y.re)
68.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2114 to 1494 computations (29.3% saved)

simplify52.0ms (0%)

Algorithm
egg-herbie
Counts
104 → 104
Iterations

Useful iterations: 0 (32.0ms)

IterNodesCost
050411497

localize17.0ms (0%)

Local error

Found 8 expressions with local error:

1.0b
(*.f64 y.re (atan2.f64 x.im x.re))
0.0b
(/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
1.0b
(*.f64 y.re (atan2.f64 x.im x.re))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
13.9b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite19.0ms (0%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
associate-*r*_binary64 associate-*l*_binary64
add-log-exp_binary64
sqrt-prod_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 prod-exp_binary64 sqrt-div_binary64 *-commutative_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 58
Calls

8 calls:

4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
1.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series402.0ms (0.2%)

Counts
4 → 48
Calls

4 calls:

137.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
126.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
70.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
69.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2036 to 1416 computations (30.5% saved)

simplify83.0ms (0%)

Algorithm
egg-herbie
Counts
106 → 106
Iterations

Useful iterations: 0 (62.0ms)

IterNodesCost
049531597
149531597

localize31.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))
0.0b
(-.f64 (*.f64 (log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
6.6b
(/.f64 (pow.f64 x.re 2) x.im)
6.8b
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
30.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite32.0ms (0%)

Algorithm
rewrite-expression-head
Rules
24×add-sqr-sqrt_binary64 times-frac_binary64
23×*-un-lft-identity_binary64 add-cube-cbrt_binary64
12×unpow-prod-down_binary64
10×add-exp-log_binary64
associate-/l*_binary64
pow1_binary64 add-cbrt-cube_binary64
add-log-exp_binary64 unpow2_binary64 sqr-pow_binary64
associate-/r*_binary64 log-prod_binary64 div-exp_binary64 sqrt-prod_binary64
flip3-+_binary64 log-div_binary64 flip-+_binary64 sqrt-div_binary64
pow-to-exp_binary64 pow1/2_binary64 cbrt-undiv_binary64 rem-log-exp_binary64 log-pow_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 clear-num_binary64 frac-2neg_binary64 cos-sum_binary64 div-inv_binary64 pow-exp_binary64
Counts
4 → 86
Calls

8 calls:

7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
6.0ms
(/.f64 (pow.f64 x.re 2) x.im)
5.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
3.0ms
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series486.0ms (0.3%)

Counts
4 → 35
Calls

4 calls:

241.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
126.0ms
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
77.0ms
(/.f64 (pow.f64 x.re 2) x.im)
41.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 2643 to 1873 computations (29.1% saved)

simplify78.0ms (0%)

Algorithm
egg-herbie
Counts
121 → 121
Iterations

Useful iterations: 0 (46.0ms)

IterNodesCost
049492343
149492343

localize35.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (*.f64 (log.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))
0.0b
(*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))
0.0b
(*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
14.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
14.8b
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
14.9b
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite70.0ms (0%)

Algorithm
rewrite-expression-head
Rules
84×times-frac_binary64
63×unpow-prod-down_binary64
57×add-sqr-sqrt_binary64
56×*-un-lft-identity_binary64 add-cube-cbrt_binary64
24×cube-prod_binary64
21×sqr-pow_binary64
16×add-exp-log_binary64
12×associate-/r*_binary64
add-log-exp_binary64 div-exp_binary64
unpow3_binary64 cube-mult_binary64
associate-/l*_binary64
pow-to-exp_binary64 add-cbrt-cube_binary64 pow-exp_binary64
pow1_binary64
cancel-sign-sub-inv_binary64 sqrt-prod_binary64
flip3-+_binary64 diff-log_binary64 associate-*r/_binary64 flip-+_binary64 frac-sub_binary64 sqrt-div_binary64
sub-neg_binary64 pow1/2_binary64 associate--r+_binary64 flip3--_binary64 cbrt-undiv_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 clear-num_binary64 frac-2neg_binary64 cos-sum_binary64 div-inv_binary64 flip--_binary64 sum-log_binary64
Counts
4 → 164
Calls

8 calls:

18.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
9.0ms
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series1.1s (0.6%)

Counts
4 → 52
Calls

4 calls:

421.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
414.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))) (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))))
129.0ms
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
117.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 4108 to 2894 computations (29.6% saved)

simplify98.0ms (0.1%)

Algorithm
egg-herbie
Counts
216 → 216
Iterations

Useful iterations: 0 (38.0ms)

IterNodesCost
052735438

localize38.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(-.f64 (cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 x.re 2) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (pow.f64 x.im 2))))
7.2b
(/.f64 (*.f64 (pow.f64 x.re 2) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (pow.f64 x.im 2))
16.6b
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
16.6b
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite47.0ms (0%)

Algorithm
rewrite-expression-head
Rules
60×add-exp-log_binary64
27×prod-exp_binary64
21×div-exp_binary64
13×pow-to-exp_binary64 add-cbrt-cube_binary64 pow-exp_binary64
10×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64
associate-/r*_binary64 times-frac_binary64
unpow-prod-down_binary64
pow1_binary64
add-log-exp_binary64
cbrt-unprod_binary64 cbrt-undiv_binary64 sqrt-prod_binary64
sub-neg_binary64 unpow2_binary64 sin-sum_binary64 sqr-pow_binary64 cancel-sign-sub-inv_binary64 cos-sum_binary64 sqrt-div_binary64
flip3-+_binary64 sin-diff_binary64 pow1/2_binary64 sqrt-pow1_binary64 cos-diff_binary64 rem-sqrt-square_binary64 clear-num_binary64 frac-2neg_binary64 associate-/l*_binary64 div-inv_binary64 flip-+_binary64
Counts
4 → 86
Calls

8 calls:

14.0ms
(/.f64 (*.f64 (pow.f64 x.re 2) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (pow.f64 x.im 2))
5.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
4.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(-.f64 (cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 x.re 2) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (pow.f64 x.im 2))))

series1.5s (0.8%)

Counts
4 → 49
Calls

4 calls:

678.0ms
(/.f64 (*.f64 (pow.f64 x.re 2) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (pow.f64 x.im 2))
370.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
352.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
116.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 5438 to 3678 computations (32.4% saved)

simplify92.0ms (0%)

Algorithm
egg-herbie
Counts
135 → 135
Iterations

Useful iterations: 0 (45.0ms)

IterNodesCost
051784553

prune13.2s (7%)

Pruning

281 alts after pruning (274 fresh and 7 done)

PrunedKeptTotal
New482200682
Fresh07474
Picked000
Done077
Total482281763
Error
3.9b
Counts
763 → 281
Compiler

Compiled 30060 to 15755 computations (47.6% saved)

localize16.0ms (0%)

Local error

Found 8 expressions with local error:

0.2b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
0.0b
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
0.2b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite27.0ms (0%)

Algorithm
rewrite-expression-head
Rules
15×add-sqr-sqrt_binary64
11×pow1_binary64
10×*-un-lft-identity_binary64 add-cube-cbrt_binary64
associate-*l*_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
add-log-exp_binary64
associate-*r*_binary64
log-pow_binary64 sqrt-prod_binary64 exp-prod_binary64
pow-prod-down_binary64 pow1/2_binary64 cbrt-unprod_binary64 rem-exp-log_binary64 sqrt-pow1_binary64 unswap-sqr_binary64 exp-sum_binary64 prod-exp_binary64 sqrt-div_binary64 *-commutative_binary64
flip3-+_binary64 sub-neg_binary64 diff-log_binary64 cancel-sign-sub-inv_binary64 exp-diff_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 69
Calls

8 calls:

7.0ms
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
6.0ms
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series738.0ms (0.4%)

Counts
4 → 58
Calls

4 calls:

281.0ms
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
257.0ms
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
132.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
68.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2420 to 1981 computations (18.1% saved)

simplify97.0ms (0.1%)

Algorithm
egg-herbie
Counts
127 → 127
Iterations

Useful iterations: 0 (63.0ms)

IterNodesCost
049532670
149532670

localize15.0ms (0%)

Local error

Found 8 expressions with local error:

2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0b
(/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite33.0ms (0%)

Algorithm
rewrite-expression-head
Rules
33×add-sqr-sqrt_binary64
30×*-un-lft-identity_binary64 add-cube-cbrt_binary64 times-frac_binary64
24×unpow-prod-down_binary64
15×sqrt-prod_binary64
10×associate-/l*_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64
add-log-exp_binary64
sqr-pow_binary64
associate-/r*_binary64 associate-*r*_binary64 associate-*l*_binary64 div-exp_binary64
sqrt-div_binary64
pow-to-exp_binary64 pow-prod-down_binary64 flip3-+_binary64 pow1/2_binary64 cbrt-unprod_binary64 cbrt-undiv_binary64 rem-exp-log_binary64 sqrt-pow1_binary64 unswap-sqr_binary64 rem-sqrt-square_binary64 clear-num_binary64 prod-exp_binary64 frac-2neg_binary64 div-inv_binary64 exp-to-pow_binary64 flip-+_binary64 pow-exp_binary64 exp-prod_binary64 *-commutative_binary64
Counts
4 → 100
Calls

8 calls:

11.0ms
(/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
2.0ms
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series695.0ms (0.4%)

Counts
4 → 57
Calls

4 calls:

411.0ms
(/.f64 (pow.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
134.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
80.0ms
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
69.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2228 to 1785 computations (19.9% saved)

simplify98.0ms (0.1%)

Algorithm
egg-herbie
Counts
157 → 157
Iterations

Useful iterations: 0 (43.0ms)

IterNodesCost
049554880
149554880

localize24.0ms (0%)

Local error

Found 8 expressions with local error:

0.2b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
0.0b
(exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.7b
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
13.9b
(cos.f64 (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re))) (cbrt.f64 y.re)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite26.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×pow1_binary64 add-sqr-sqrt_binary64
11×add-exp-log_binary64
add-cbrt-cube_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64
associate-*l*_binary64
pow-prod-down_binary64 add-log-exp_binary64 cbrt-unprod_binary64 associate-*r*_binary64 prod-exp_binary64
sqrt-prod_binary64
unswap-sqr_binary64 sqrt-div_binary64 *-commutative_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 59
Calls

8 calls:

8.0ms
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
3.0ms
(cos.f64 (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re))) (cbrt.f64 y.re)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series651.0ms (0.3%)

Counts
4 → 46
Calls

4 calls:

311.0ms
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)))
141.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
132.0ms
(cos.f64 (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re))) (cbrt.f64 y.re)))
68.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2558 to 1752 computations (31.5% saved)

simplify73.0ms (0%)

Algorithm
egg-herbie
Counts
105 → 105
Iterations

Useful iterations: 0 (47.0ms)

IterNodesCost
051601640

localize34.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))
0.0b
(-.f64 (*.f64 (log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im))) (cbrt.f64 x.im))))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(*.f64 1/2 (/.f64 (/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im))) (cbrt.f64 x.im)))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
3.5b
(/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im)))
6.8b
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im))) (cbrt.f64 x.im)))))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
30.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite37.0ms (0%)

Algorithm
rewrite-expression-head
Rules
18×add-exp-log_binary64
11×add-sqr-sqrt_binary64
10×*-un-lft-identity_binary64 add-cube-cbrt_binary64
associate-/l*_binary64 times-frac_binary64
add-cbrt-cube_binary64
pow1_binary64 unpow-prod-down_binary64 div-exp_binary64
add-log-exp_binary64
log-prod_binary64 prod-exp_binary64 sqrt-prod_binary64
pow-to-exp_binary64 flip3-+_binary64 unpow2_binary64 cbrt-undiv_binary64 sqr-pow_binary64 log-div_binary64 flip-+_binary64 pow-exp_binary64 sqrt-div_binary64
associate-/r*_binary64 pow1/2_binary64 cbrt-unprod_binary64 rem-log-exp_binary64 log-pow_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 clear-num_binary64 frac-2neg_binary64 cos-sum_binary64 div-inv_binary64
Counts
4 → 72
Calls

8 calls:

8.0ms
(/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im)))
7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
4.0ms
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im))) (cbrt.f64 x.im)))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series686.0ms (0.4%)

Counts
4 → 35
Calls

4 calls:

269.0ms
(/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im)))
238.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
132.0ms
(log.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (/.f64 (pow.f64 x.re 2) (*.f64 (cbrt.f64 x.im) (cbrt.f64 x.im))) (cbrt.f64 x.im)))))
46.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 3018 to 2092 computations (30.7% saved)

simplify78.0ms (0%)

Algorithm
egg-herbie
Counts
107 → 107
Iterations

Useful iterations: 0 (49.0ms)

IterNodesCost
050252244

localize42.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
6.6b
(/.f64 (pow.f64 x.re 2) x.im)
16.6b
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
16.6b
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite35.0ms (0%)

Algorithm
rewrite-expression-head
Rules
24×times-frac_binary64
23×add-sqr-sqrt_binary64
22×*-un-lft-identity_binary64 add-cube-cbrt_binary64
12×unpow-prod-down_binary64
add-exp-log_binary64
associate-/l*_binary64
add-cbrt-cube_binary64
pow1_binary64
add-log-exp_binary64 unpow2_binary64 sqr-pow_binary64
associate-/r*_binary64 div-exp_binary64 sqrt-prod_binary64
sub-neg_binary64 sin-sum_binary64 cancel-sign-sub-inv_binary64 cos-sum_binary64 sqrt-div_binary64
pow-to-exp_binary64 flip3-+_binary64 sin-diff_binary64 pow1/2_binary64 cbrt-undiv_binary64 sqrt-pow1_binary64 cos-diff_binary64 rem-sqrt-square_binary64 clear-num_binary64 frac-2neg_binary64 div-inv_binary64 flip-+_binary64 pow-exp_binary64
Counts
4 → 84
Calls

8 calls:

5.0ms
(/.f64 (pow.f64 x.re 2) x.im)
5.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
4.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series880.0ms (0.5%)

Counts
4 → 36
Calls

4 calls:

369.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
364.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
90.0ms
(/.f64 (pow.f64 x.re 2) x.im)
56.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 4404 to 2952 computations (33% saved)

simplify98.0ms (0.1%)

Algorithm
egg-herbie
Counts
120 → 120
Iterations

Useful iterations: 0 (65.0ms)

IterNodesCost
049292412
149292412

prune29.6s (15.7%)

Pruning

470 alts after pruning (458 fresh and 12 done)

PrunedKeptTotal
New406210616
Fresh21248269
Picked000
Done01212
Total427470897
Error
3.9b
Counts
897 → 470
Compiler

Compiled 35750 to 20255 computations (43.3% saved)

localize8.0ms (0%)

Local error

Found 4 expressions with local error:

2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0b
(exp.f64 (neg.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(exp.f64 (neg.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)

rewrite9.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
exp-prod_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64
add-log-exp_binary64 pow1_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
associate-*r*_binary64 associate-*l*_binary64
rem-exp-log_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 neg-sub0_binary64 neg-mul-1_binary64 distribute-lft-neg-in_binary64 exp-diff_binary64 unswap-sqr_binary64 distribute-rgt-neg-in_binary64 neg-log_binary64 prod-exp_binary64 exp-neg_binary64 *-commutative_binary64
Counts
2 → 35
Calls

4 calls:

4.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
2.0ms
(exp.f64 (neg.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0ms
(exp.f64 (neg.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)

series164.0ms (0.1%)

Counts
2 → 19
Calls

2 calls:

101.0ms
(exp.f64 (neg.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
63.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 341 to 377 computations (-10.6% saved)

simplify101.0ms (0.1%)

Algorithm
egg-herbie
Counts
54 → 54
Iterations

Useful iterations: 0 (88.0ms)

IterNodesCost
04917667
14917667

localize10.0ms (0%)

Local error

Found 4 expressions with local error:

28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite11.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-log-exp_binary64 add-sqr-sqrt_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64 sqrt-prod_binary64
flip3-+_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 flip-+_binary64 sqrt-div_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 +-commutative_binary64 sum-log_binary64
Counts
2 → 26
Calls

4 calls:

4.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

series228.0ms (0.1%)

Counts
2 → 36
Calls

2 calls:

128.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
100.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
Compiler

Compiled 726 to 726 computations (0% saved)

simplify56.0ms (0%)

Algorithm
egg-herbie
Counts
62 → 62
Iterations

Useful iterations: 0 (38.0ms)

IterNodesCost
050481184

localize30.0ms (0%)

Local error

Found 8 expressions with local error:

1.0b
(*.f64 y.re (atan2.f64 x.im x.re))
0.0b
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))
0.0b
(*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))
13.9b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
14.4b
(-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))))
14.8b
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
15.2b
(pow.f64 (-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))) y.re)

rewrite50.0ms (0%)

Algorithm
rewrite-expression-head
Rules
84×times-frac_binary64
66×unpow-prod-down_binary64
56×*-un-lft-identity_binary64 add-cube-cbrt_binary64 add-sqr-sqrt_binary64
24×cube-prod_binary64
22×sqr-pow_binary64
17×add-exp-log_binary64
12×associate-/r*_binary64
add-log-exp_binary64 div-exp_binary64
unpow3_binary64 cube-mult_binary64
pow-to-exp_binary64 associate-/l*_binary64 pow-exp_binary64
add-cbrt-cube_binary64
pow1_binary64
pow-unpow_binary64
diff-log_binary64 associate-*r/_binary64 frac-sub_binary64
flip3-+_binary64 sub-neg_binary64 flip3--_binary64 cbrt-undiv_binary64 pow-pow_binary64 cancel-sign-sub-inv_binary64 clear-num_binary64 frac-2neg_binary64 div-inv_binary64 flip--_binary64 flip-+_binary64 associate--l+_binary64 sum-log_binary64
Counts
4 → 163
Calls

8 calls:

9.0ms
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
8.0ms
(-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))))
8.0ms
(pow.f64 (-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))) y.re)
2.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
0.0ms
(*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))

series941.0ms (0.5%)

Counts
4 → 44
Calls

4 calls:

425.0ms
(-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))))
257.0ms
(pow.f64 (-.f64 (+.f64 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))) (*.f64 1/8 (/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3)))) y.re)
130.0ms
(/.f64 (pow.f64 x.re 4) (pow.f64 x.im 3))
128.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
Compiler

Compiled 2605 to 1966 computations (24.5% saved)

simplify128.0ms (0.1%)

Algorithm
egg-herbie
Counts
207 → 207
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
049335146
149335146

localize34.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im))) (cbrt.f64 y.im)))
0.0b
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im))) (cbrt.f64 y.im)))) (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
2.1b
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
30.7b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite33.0ms (0%)

Algorithm
rewrite-expression-head
Rules
11×pow1_binary64
10×add-sqr-sqrt_binary64
add-exp-log_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64 add-cbrt-cube_binary64
sqrt-prod_binary64
add-log-exp_binary64 sqrt-div_binary64
pow-prod-down_binary64 cbrt-unprod_binary64 associate-*l*_binary64 prod-exp_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
associate-*r*_binary64 unswap-sqr_binary64 cos-sum_binary64 *-commutative_binary64
Counts
4 → 57
Calls

8 calls:

8.0ms
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im)))
7.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
5.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series809.0ms (0.4%)

Counts
4 → 50
Calls

4 calls:

305.0ms
(*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im)))
279.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
144.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
81.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 4019 to 2554 computations (36.5% saved)

simplify71.0ms (0%)

Algorithm
egg-herbie
Counts
107 → 107
Iterations

Useful iterations: 0 (40.0ms)

IterNodesCost
049972195
149972195

localize45.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))
0.0b
(-.f64 (cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))) (*.f64 1/2 (/.f64 (*.f64 (/.f64 (pow.f64 x.re 2) (fabs.f64 x.im)) (*.f64 y.im (sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im))))))) (sqrt.f64 (pow.f64 x.im 2)))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
16.6b
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
16.6b
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
27.1b
(sqrt.f64 (pow.f64 x.im 2))
28.0b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite27.0ms (0%)

Algorithm
rewrite-expression-head
Rules
11×sqrt-prod_binary64
10×add-sqr-sqrt_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64
pow1_binary64 rem-sqrt-square_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 unpow-prod-down_binary64
sub-neg_binary64 pow1/2_binary64 unpow2_binary64 sin-sum_binary64 sqr-pow_binary64 cancel-sign-sub-inv_binary64 sqrt-pow1_binary64 cos-sum_binary64 sqrt-div_binary64
flip3-+_binary64 sin-diff_binary64 cos-diff_binary64 flip-+_binary64
Counts
4 → 56
Calls

8 calls:

5.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
5.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
2.0ms
(sqrt.f64 (pow.f64 x.im 2))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series889.0ms (0.5%)

Counts
4 → 40
Calls

4 calls:

383.0ms
(cos.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
363.0ms
(sin.f64 (-.f64 (*.f64 (atan2.f64 x.im x.re) y.re) (*.f64 y.im (log.f64 (/.f64 -1 x.im)))))
118.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
24.0ms
(sqrt.f64 (pow.f64 x.im 2))
Compiler

Compiled 4631 to 3145 computations (32.1% saved)

simplify81.0ms (0%)

Algorithm
egg-herbie
Counts
96 → 96
Iterations

Useful iterations: 0 (56.0ms)

IterNodesCost
049171921
149171921

prune31.2s (16.5%)

Pruning

633 alts after pruning (617 fresh and 16 done)

PrunedKeptTotal
New347179526
Fresh15438453
Picked000
Done11617
Total363633996
Error
3.9b
Counts
996 → 633
Compiler

Compiled 13386 to 5878 computations (56.1% saved)

simplify1.5s (0.8%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (34.0ms)

IterNodesCost
0502198061

regimes47.3s (25%)

Compiler

Compiled 240596 to 166847 computations (30.7% saved)

bsearch229.0ms (0.1%)

Steps
ItersRangePoint
10
3.050723552348764e-09
10355269.626937324
1.283027228318879
9
-1.5578992213074374
-5.6890314433992626e-08
-0.09612485582958105
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes648.0ms (0.3%)

Compiler

Compiled 2188 to 2264 computations (-3.5% saved)

bsearch142.0ms (0.1%)

Steps
ItersRangePoint
10
3.050723552348764e-09
10355269.626937324
1.2326399240224684
9
-1.5578992213074374
-5.6890314433992626e-08
-0.12742787824649954
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes287.0ms (0.2%)

Compiler

Compiled 528 to 652 computations (-23.5% saved)

bsearch142.0ms (0.1%)

Steps
ItersRangePoint
10
3.050723552348764e-09
10355269.626937324
1.0310907068368254
9
-1.5578992213074374
-5.6890314433992626e-08
-1.004260088703933
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes199.0ms (0.1%)

Compiler

Compiled 176 to 284 computations (-61.4% saved)

bsearch297.0ms (0.2%)

Steps
ItersRangePoint
10
6.654413549334293e-21
3.360813302179667e-07
5.7069940823255305e-11
8
2.049193016602682e-249
2.660094616028826e-246
2.3595511341950196e-249
9
3.894192710684878e-287
1.7680999765633104e-280
9.883152837860138e-282
8
-2.9889729204483913e-77
-1.020412279260504e-79
-4.0101416291592097e-78
8
-2.1648341132595568e-35
-1.4080751851230472e-38
-1.8683306389997372e-37
6
-3.1543382781247202e-09
-3.778943519298702e-10
-3.109657661637387e-09
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes185.0ms (0.1%)

Compiler

Compiled 140 to 244 computations (-74.3% saved)

bsearch333.0ms (0.2%)

Steps
ItersRangePoint
10
6.654413549334293e-21
3.360813302179667e-07
1.8086140243412983e-17
8
2.049193016602682e-249
2.660094616028826e-246
4.1627783980696043e-249
9
3.894192710684878e-287
1.7680999765633104e-280
8.515675588535299e-283
10
-9.57283209781698e-244
-9.351841186595983e-255
-3.011769076518427e-249
8
-7.999829410350478e-105
-4.952483514244431e-109
-2.4008345045284037e-107
8
-3.778943519298702e-10
-4.70903816938075e-14
-3.248272526850449e-10
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes183.0ms (0.1%)

Compiler

Compiled 108 to 204 computations (-88.9% saved)

bsearch216.0ms (0.1%)

Steps
ItersRangePoint
10
6.654413549334293e-21
3.360813302179667e-07
3.3436903475398154e-14
10
-9.57283209781698e-244
-9.351841186595983e-255
-3.916832953433798e-254
8
-7.999829410350478e-105
-4.952483514244431e-109
-6.440102143888612e-105
8
-3.778943519298702e-10
-4.70903816938075e-14
-3.7199800756933404e-10
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes186.0ms (0.1%)

Compiler

Compiled 76 to 164 computations (-115.8% saved)

bsearch216.0ms (0.1%)

Steps
ItersRangePoint
10
3.050723552348764e-09
10355269.626937324
3.0314203917512626e-06
9
8.788983934924534e-257
2.731793206933175e-251
4.3106573132595196e-256
8
1.011089848595497e-292
6.294625286891897e-290
4.188528826746926e-290
7
-5.6890314433992626e-08
-4.2790894681004497e-10
-2.0708852731958088e-08
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes32.0ms (0%)

Accuracy

Total 2.2b remaining (42.7%)

Threshold costs 0b (0%)

Compiler

Compiled 16 to 72 computations (-350% saved)

bsearch13.0ms (0%)

Compiler

Compiled 249 to 225 computations (9.6% saved)

simplify13.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (4.0ms)

IterNodesCost
0192356
1192356

end0.0ms (0%)

sample45.5s (24.1%)

Algorithm
intervals
Results
1.6s2459×body1024invalid
884.0ms7597×body128valid
373.0ms1009×body512invalid
97.0ms409×body256invalid
90.0ms164×body1024valid
69.0ms567×body128invalid
49.0ms135×body512valid
29.0ms37×body2048invalid
22.0ms90×body256valid
11.0ms14×body2048valid
Compiler

Compiled 48528 to 33727 computations (30.5% saved)

Pareto

0.7713698250579906

Profiling

Loading profile data...