Details

Time bar (total: 2.8min)

analyze1.6s (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
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)

sample161.0ms (0.1%)

Algorithm
intervals
Results
53.0ms66×body1024invalid
43.0ms244×body128valid
18.0ms33×body512invalid
4.0ms11×body256invalid
3.0msbody1024valid
3.0msbody512valid
3.0ms15×body128invalid
1.0msbody2048invalid
1.0msbody256valid
Compiler

Compiled 75 to 43 computations (42.7% saved)

simplify231.0ms (0.1%)

Algorithm
egg-herbie
Counts
1 → 1
Iterations

Useful iterations: 0 (91.0ms)

IterNodesCost
0494472
1494472

prune9.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
34.3b
Counts
2 → 2
Compiler

Compiled 36 to 19 computations (47.2% saved)

localize37.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))
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
32.4b
(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)))

rewrite52.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:

22.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
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
6.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
5.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series584.0ms (0.3%)

Counts
4 → 49
Calls

4 calls:

307.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)))
105.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
103.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
69.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 3316 to 2169 computations (34.6% saved)

simplify107.0ms (0.1%)

Algorithm
egg-herbie
Counts
105 → 105
Iterations

Useful iterations: 0 (78.0ms)

IterNodesCost
049451979
149451979

localize22.0ms (0%)

Local error

Found 8 expressions with local error:

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
(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
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
32.4b
(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))))

rewrite24.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:

6.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))))
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
(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))

series545.0ms (0.3%)

Counts
4 → 53
Calls

4 calls:

229.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))))
142.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
102.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
72.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 3442 to 2253 computations (34.5% saved)

simplify103.0ms (0.1%)

Algorithm
egg-herbie
Counts
109 → 109
Iterations

Useful iterations: 0 (76.0ms)

IterNodesCost
049452077
149452077

prune1.3s (0.8%)

Pruning

75 alts after pruning (73 fresh and 2 done)

PrunedKeptTotal
New14173214
Fresh000
Picked000
Done022
Total14175216
Error
19.5b
Counts
216 → 75
Compiler

Compiled 9224 to 3565 computations (61.4% saved)

localize18.0ms (0%)

Local error

Found 8 expressions with local error:

1.1b
(*.f64 (atan2.f64 x.im x.re) y.re)
0.3b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
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.1b
(*.f64 (atan2.f64 x.im x.re) y.re)
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
15.8b
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite20.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)
3.0ms
(*.f64 (atan2.f64 x.im x.re) y.re)
1.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))

series397.0ms (0.2%)

Counts
4 → 45
Calls

4 calls:

134.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
127.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
70.0ms
(*.f64 (atan2.f64 x.im x.re) y.re)
67.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2114 to 1494 computations (29.3% saved)

simplify64.0ms (0%)

Algorithm
egg-herbie
Counts
103 → 103
Iterations

Useful iterations: 0 (44.0ms)

IterNodesCost
051211447

localize21.0ms (0%)

Local error

Found 8 expressions with local error:

1.1b
(*.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.1b
(*.f64 y.re (atan2.f64 x.im x.re))
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
15.8b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite18.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)
3.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
2.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))

series387.0ms (0.2%)

Counts
4 → 45
Calls

4 calls:

131.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
122.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
68.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
66.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2036 to 1416 computations (30.5% saved)

simplify65.0ms (0%)

Algorithm
egg-herbie
Counts
103 → 103
Iterations

Useful iterations: 0 (45.0ms)

IterNodesCost
051451447

localize30.0ms (0%)

Local error

Found 8 expressions with local error:

0.1b
(*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) 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 (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 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
7.8b
(log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
7.8b
(/.f64 (pow.f64 x.im 2) x.re)
15.8b
(cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite29.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:

5.0ms
(/.f64 (pow.f64 x.im 2) x.re)
5.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) 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)))
3.0ms
(log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series496.0ms (0.3%)

Counts
4 → 38
Calls

4 calls:

252.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
103.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
75.0ms
(/.f64 (pow.f64 x.im 2) x.re)
66.0ms
(log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
Compiler

Compiled 2872 to 2009 computations (30% saved)

simplify94.0ms (0.1%)

Algorithm
egg-herbie
Counts
124 → 124
Iterations

Useful iterations: 0 (64.0ms)

IterNodesCost
050092452

localize42.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 (pow.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) 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))
12.4b
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
19.4b
(/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
32.4b
(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))))

rewrite60.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:

16.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
8.0ms
(/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))
6.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))))
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))

series837.0ms (0.5%)

Counts
4 → 42
Calls

4 calls:

411.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
244.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))))
133.0ms
(/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))
48.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 3329 to 2368 computations (28.9% saved)

simplify102.0ms (0.1%)

Algorithm
egg-herbie
Counts
206 → 206
Iterations

Useful iterations: 0 (49.0ms)

IterNodesCost
049684769
149684769

localize29.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 y.re (atan2.f64 x.im x.re)))
0.0b
(exp.f64 (*.f64 (*.f64 (sqrt.f64 (atan2.f64 x.im x.re)) (sqrt.f64 y.im)) (*.f64 (sqrt.f64 (atan2.f64 x.im x.re)) (sqrt.f64 y.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))
4.1b
(sqrt.f64 (atan2.f64 x.im x.re))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
32.4b
(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))))

rewrite23.0ms (0%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
sqrt-prod_binary64
*-un-lft-identity_binary64 pow1_binary64 add-cube-cbrt_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 sqrt-div_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64
flip3-+_binary64 flip-+_binary64
cos-sum_binary64
Counts
4 → 51
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))))
4.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)))
1.0ms
(sqrt.f64 (atan2.f64 x.im x.re))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series445.0ms (0.3%)

Counts
4 → 38
Calls

4 calls:

239.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))))
114.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
50.0ms
(sqrt.f64 (atan2.f64 x.im x.re))
42.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 3282 to 1899 computations (42.1% saved)

simplify84.0ms (0%)

Algorithm
egg-herbie
Counts
89 → 89
Iterations

Useful iterations: 0 (61.0ms)

IterNodesCost
049471642
149471642

prune11.4s (6.8%)

Pruning

268 alts after pruning (261 fresh and 7 done)

PrunedKeptTotal
New431194625
Fresh16768
Picked000
Done077
Total432268700
Error
2.8b
Counts
700 → 268
Compiler

Compiled 27390 to 13242 computations (51.7% saved)

localize26.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(-.f64 (*.f64 (log.f64 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) (cbrt.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))))) (cbrt.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))
0.0b
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))
0.0b
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))
0.0b
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))
15.8b
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
31.2b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
31.2b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
31.2b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))

rewrite40.0ms (0%)

Algorithm
rewrite-expression-head
Rules
19×*-un-lft-identity_binary64
15×sqrt-prod_binary64
10×add-sqr-sqrt_binary64
pow1_binary64 add-cube-cbrt_binary64
distribute-lft-out_binary64 unpow-prod-down_binary64 sqrt-div_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 58
Calls

8 calls:

9.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
8.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
1.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
0.0ms
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))

series515.0ms (0.3%)

Counts
4 → 51
Calls

4 calls:

150.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
125.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
121.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
119.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
Compiler

Compiled 3884 to 3012 computations (22.5% saved)

simplify96.0ms (0.1%)

Algorithm
egg-herbie
Counts
109 → 109
Iterations

Useful iterations: 0 (73.0ms)

IterNodesCost
049571781
149571781

localize14.0ms (0%)

Local error

Found 8 expressions with local error:

1.3b
(*.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 (*.f64 x.re x.re) (*.f64 x.im x.im))
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite17.0ms (0%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
add-log-exp_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 sqrt-prod_binary64
flip3-+_binary64 flip-+_binary64 sqrt-div_binary64
pow-prod-down_binary64 pow1/2_binary64 cbrt-unprod_binary64 rem-exp-log_binary64 sqrt-pow1_binary64 unswap-sqr_binary64 rem-sqrt-square_binary64 prod-exp_binary64 +-commutative_binary64 exp-to-pow_binary64 exp-prod_binary64 sum-log_binary64 *-commutative_binary64
Counts
4 → 54
Calls

8 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)))
3.0ms
(*.f64 (atan2.f64 x.im x.re) y.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))

series367.0ms (0.2%)

Counts
4 → 51
Calls

4 calls:

131.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
93.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
82.0ms
(exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
61.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 1692 to 1405 computations (17% saved)

simplify75.0ms (0%)

Algorithm
egg-herbie
Counts
105 → 105
Iterations

Useful iterations: 0 (53.0ms)

IterNodesCost
049791515
149791515

localize28.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im))
0.0b
(*.f64 (exp.f64 (-.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))) (cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) 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 x.im (*.f64 1/2 (/.f64 (pow.f64 x.re 2) x.im)))
7.8b
(log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
7.8b
(/.f64 (pow.f64 x.im 2) x.re)
8.0b
(/.f64 (pow.f64 x.re 2) x.im)
15.8b
(cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))

rewrite38.0ms (0%)

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

8 calls:

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

series487.0ms (0.3%)

Counts
4 → 30
Calls

4 calls:

266.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re)))
82.0ms
(/.f64 (pow.f64 x.re 2) x.im)
72.0ms
(/.f64 (pow.f64 x.im 2) x.re)
67.0ms
(log.f64 (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
Compiler

Compiled 2540 to 1823 computations (28.2% saved)

simplify82.0ms (0%)

Algorithm
egg-herbie
Counts
150 → 150
Iterations

Useful iterations: 0 (48.0ms)

IterNodesCost
050662711

localize26.0ms (0%)

Local error

Found 8 expressions with local error:

0.3b
(*.f64 y.im (cbrt.f64 (atan2.f64 x.im x.re)))
0.3b
(*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re)
0.0b
(-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (*.f64 (cbrt.f64 (atan2.f64 x.im x.re)) (cbrt.f64 (atan2.f64 x.im x.re))) (*.f64 y.im (cbrt.f64 (atan2.f64 x.im x.re)))))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
4.5b
(cbrt.f64 (atan2.f64 x.im x.re))
4.5b
(cbrt.f64 (atan2.f64 x.im x.re))
15.8b
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite13.0ms (0%)

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

8 calls:

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

series573.0ms (0.3%)

Counts
4 → 39
Calls

4 calls:

158.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
150.0ms
(cbrt.f64 (atan2.f64 x.im x.re))
137.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
128.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
Compiler

Compiled 2564 to 1536 computations (40.1% saved)

simplify64.0ms (0%)

Algorithm
egg-herbie
Counts
83 → 83
Iterations

Useful iterations: 0 (43.0ms)

IterNodesCost
050691159

localize38.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(*.f64 (/.f64 (pow.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im) (*.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 (pow.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))
12.4b
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
19.4b
(/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))
31.2b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
32.4b
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))

rewrite70.0ms (0%)

Algorithm
rewrite-expression-head
Rules
84×times-frac_binary64
65×unpow-prod-down_binary64
60×*-un-lft-identity_binary64
57×add-sqr-sqrt_binary64
56×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 sqrt-prod_binary64
cancel-sign-sub-inv_binary64
flip3-+_binary64 diff-log_binary64 distribute-lft-out_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 → 166
Calls

8 calls:

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

series839.0ms (0.5%)

Counts
4 → 42
Calls

4 calls:

416.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
239.0ms
(cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im) (*.f64 y.re (atan2.f64 x.im x.re))))
133.0ms
(/.f64 (pow.f64 x.im 4) (pow.f64 x.re 3))
50.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
Compiler

Compiled 3473 to 2584 computations (25.6% saved)

simplify125.0ms (0.1%)

Algorithm
egg-herbie
Counts
208 → 208
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
049384733
149384733

prune25.6s (15.2%)

Pruning

431 alts after pruning (419 fresh and 12 done)

PrunedKeptTotal
New482173655
Fresh10246256
Picked000
Done01212
Total492431923
Error
2.8b
Counts
923 → 431
Compiler

Compiled 35653 to 21989 computations (38.3% saved)

localize20.0ms (0%)

Local error

Found 8 expressions with local error:

1.1b
(*.f64 (atan2.f64 x.im x.re) y.re)
0.3b
(*.f64 (log.f64 (fabs.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) y.re)
0.0b
(-.f64 (*.f64 (log.f64 (fabs.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.1b
(*.f64 (atan2.f64 x.im x.re) y.re)
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
15.8b
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
31.2b
(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))

series335.0ms (0.2%)

Counts
4 → 39
Calls

4 calls:

119.0ms
(cos.f64 (*.f64 (atan2.f64 x.im x.re) y.re))
75.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)
68.0ms
(*.f64 (atan2.f64 x.im x.re) y.re)
Compiler

Compiled 1910 to 1356 computations (29% saved)

simplify59.0ms (0%)

Algorithm
egg-herbie
Counts
97 → 97
Iterations

Useful iterations: 0 (37.0ms)

IterNodesCost
051191249

localize10.0ms (0%)

Local error

Found 4 expressions with local error:

31.2b
(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))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite10.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)))

series203.0ms (0.1%)

Counts
2 → 33
Calls

2 calls:

121.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
81.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
Compiler

Compiled 726 to 726 computations (0% saved)

simplify85.0ms (0.1%)

Algorithm
egg-herbie
Counts
59 → 59
Iterations

Useful iterations: 0 (67.0ms)

IterNodesCost
049471034
149471034

localize25.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 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im)))
0.0b
(+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
1.3b
(*.f64 (atan2.f64 x.im x.re) y.im)
25.1b
(cos.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
31.2b
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))

rewrite25.0ms (0%)

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

8 calls:

8.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
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)
2.0ms
(cos.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im))
0.0ms
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

series484.0ms (0.3%)

Counts
4 → 48
Calls

4 calls:

197.0ms
(cos.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.im))
111.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
100.0ms
(sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))
75.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
Compiler

Compiled 2750 to 2152 computations (21.7% saved)

simplify90.0ms (0.1%)

Algorithm
egg-herbie
Counts
105 → 105
Iterations

Useful iterations: 0 (65.0ms)

IterNodesCost
049961736
149961736

localize45.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 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im (/.f64 4 2)) (/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2)))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) 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 (pow.f64 (-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im (/.f64 4 2)) (/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2)))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re)))) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.0b
(+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
12.4b
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im (/.f64 4 2)) (/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2)))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
15.3b
(/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
32.4b
(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))))

rewrite118.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
96×times-frac_binary64
66×unpow-prod-down_binary64
60×add-sqr-sqrt_binary64
59×*-un-lft-identity_binary64 add-cube-cbrt_binary64
27×cube-prod_binary64
22×sqr-pow_binary64
16×add-exp-log_binary64
13×unpow2_binary64
12×associate-/l*_binary64
add-log-exp_binary64 div-exp_binary64 unpow3_binary64 cube-mult_binary64
associate-/r*_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 → 177
Calls

8 calls:

69.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im (/.f64 4 2)) (/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2)))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
8.0ms
(/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2))
6.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))))
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))

series824.0ms (0.5%)

Counts
4 → 42
Calls

4 calls:

409.0ms
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 x.im (/.f64 4 2)) (/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2)))) (+.f64 x.re (*.f64 1/2 (/.f64 (pow.f64 x.im 2) x.re))))
253.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))))
110.0ms
(/.f64 (pow.f64 x.re 3) (pow.f64 x.im 2))
51.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
Compiler

Compiled 3617 to 2608 computations (27.9% saved)

simplify114.0ms (0.1%)

Algorithm
egg-herbie
Counts
219 → 219
Iterations

Useful iterations: 0 (52.0ms)

IterNodesCost
049714810
149714810

localize37.0ms (0%)

Local error

Found 8 expressions with local error:

0.1b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 x.im 2)) (cbrt.f64 (pow.f64 x.im 2))) (sqrt.f64 x.re)) (/.f64 (cbrt.f64 (pow.f64 x.im 2)) (sqrt.f64 x.re)))
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
(*.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 (+.f64 x.re (*.f64 1/2 (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 x.im 2)) (cbrt.f64 (pow.f64 x.im 2))) (sqrt.f64 x.re)) (/.f64 (cbrt.f64 (pow.f64 x.im 2)) (sqrt.f64 x.re)))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
31.2b
(cbrt.f64 (pow.f64 x.im 2))
31.2b
(cbrt.f64 (pow.f64 x.im 2))
31.2b
(cbrt.f64 (pow.f64 x.im 2))
31.2b
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
24×cbrt-prod_binary64
12×add-sqr-sqrt_binary64
11×*-un-lft-identity_binary64 add-cube-cbrt_binary64
unpow-prod-down_binary64
pow1_binary64
add-log-exp_binary64 add-exp-log_binary64 add-cbrt-cube_binary64
unpow2_binary64 pow1/3_binary64 sqr-pow_binary64 sqrt-prod_binary64
sqrt-div_binary64
flip3-+_binary64 pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 flip-+_binary64
Counts
4 → 63
Calls

8 calls:

4.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
2.0ms
(cbrt.f64 (pow.f64 x.im 2))
2.0ms
(cbrt.f64 (pow.f64 x.im 2))
2.0ms
(cbrt.f64 (pow.f64 x.im 2))
0.0ms
(*.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 (+.f64 x.re (*.f64 1/2 (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 x.im 2)) (cbrt.f64 (pow.f64 x.im 2))) (sqrt.f64 x.re)) (/.f64 (cbrt.f64 (pow.f64 x.im 2)) (sqrt.f64 x.re)))))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))

series376.0ms (0.2%)

Counts
4 → 23
Calls

4 calls:

127.0ms
(sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
89.0ms
(cbrt.f64 (pow.f64 x.im 2))
82.0ms
(cbrt.f64 (pow.f64 x.im 2))
79.0ms
(cbrt.f64 (pow.f64 x.im 2))
Compiler

Compiled 2120 to 1522 computations (28.2% saved)

simplify55.0ms (0%)

Algorithm
egg-herbie
Counts
86 → 86
Iterations

Useful iterations: 0 (37.0ms)

IterNodesCost
050551028

prune28.8s (17.1%)

Pruning

591 alts after pruning (575 fresh and 16 done)

PrunedKeptTotal
New383183566
Fresh22392414
Picked000
Done11617
Total406591997
Error
2.8b
Counts
997 → 591
Compiler

Compiled 14475 to 6682 computations (53.8% saved)

simplify1.8s (1.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (56.0ms)

IterNodesCost
0505399575

regimes27.5s (16.3%)

Compiler

Compiled 245971 to 174222 computations (29.2% saved)

bsearch188.0ms (0.1%)

Steps
ItersRangePoint
3
7.485832770081977e-56
1.0011540738404607e-55
8.213506235332776e-56
7
-6.6478224099761884e+103
-9.301590631095428e+101
-9.437066424131207e+101
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes608.0ms (0.4%)

Compiler

Compiled 4264 to 3860 computations (9.5% saved)

bsearch25.0ms (0%)

Steps
ItersRangePoint
3
-112325087553573.72
-78864955021725.7
-80956213304966.22
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes1.1s (0.6%)

Compiler

Compiled 4188 to 3804 computations (9.2% saved)

bsearch197.0ms (0.1%)

Steps
ItersRangePoint
3
7.485832770081977e-56
1.0011540738404607e-55
8.213506235332776e-56
9
1.9095769352958856e-140
1.8833972208446976e-135
6.050372847421959e-137
8
-3.915659362676596e-306
3.3491533533387655e-307
-2.6615346232889e-310
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes888.0ms (0.5%)

Compiler

Compiled 3284 to 2984 computations (9.1% saved)

bsearch252.0ms (0.1%)

Steps
ItersRangePoint
3
7.485832770081977e-56
1.0011540738404607e-55
7.585723575808189e-56
9
1.9095769352958856e-140
1.8833972208446976e-135
5.2362255579481547e-138
8
-3.915659362676596e-306
3.3491533533387655e-307
8.8604533274285e-310
8
-3.9015081324143217e-29
-3.646830102185637e-33
-1.9239150977086479e-31
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes870.0ms (0.5%)

Compiler

Compiled 2920 to 2720 computations (6.8% saved)

bsearch426.0ms (0.3%)

Steps
ItersRangePoint
8
1.127764409763547e-91
8.970418581825754e-88
1.0099943610527774e-89
9
1.0494697433290072e-163
1.2520286740487143e-157
1.1180088059793839e-163
10
-1.7491402500417026e-304
9.280213698582033e-299
2.107910171741242e-304
8
-3.0635695679673836e-270
-1.4176318963701347e-274
-3.0103639225785356e-270
7
-2.0146251141338312e-215
-8.031731115918593e-217
-3.337876888210069e-216
3
-1.5078487050365128e-191
-1.2536460616856681e-191
-1.432227224093284e-191
7
-2.311849759883921e+66
-7.266055324680505e+64
-6.236497842777764e+65
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes508.0ms (0.3%)

Compiler

Compiled 1448 to 1472 computations (-1.7% saved)

bsearch239.0ms (0.1%)

Steps
ItersRangePoint
9
3.0659979301545097e-06
0.38767664572984284
0.383540112365557
7
1.849725606459231e-151
2.005130727836764e-149
2.2969899053499743e-151
2
-4.825978818016433e-270
-4.033641851884393e-270
-4.528852455716918e-270
8
-9.202900525937869e-117
-7.237486307090217e-120
-3.250382936462931e-117
8
-1.8660232343950614e+35
-3.930779446528964e+32
-3.987264733662572e+32
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes472.0ms (0.3%)

Compiler

Compiled 1220 to 1292 computations (-5.9% saved)

bsearch234.0ms (0.1%)

Steps
ItersRangePoint
9
3.0659979301545097e-06
0.38767664572984284
0.2511710447084123
7
1.849725606459231e-151
2.005130727836764e-149
1.749782679206405e-150
2
-4.825978818016433e-270
-4.033641851884393e-270
-4.3307682141839085e-270
8
-9.202900525937869e-117
-7.237486307090217e-120
-4.159872953407092e-119
8
-1.8660232343950614e+35
-3.930779446528964e+32
-3.987264733662572e+32
Compiler

Compiled 1 to 4 computations (-300% saved)

regimes162.0ms (0.1%)

Accuracy

Total 2.3b remaining (42.3%)

Threshold costs 0b (0%)

Compiler

Compiled 140 to 244 computations (-74.3% saved)

bsearch212.0ms (0.1%)

Steps
ItersRangePoint
9
3.0659979301545097e-06
0.38767664572984284
1.1269981410690433e-05
6
2.0653943270987655e-131
8.510787908268941e-131
2.0834915756950648e-131
7
1.849725606459231e-151
2.005130727836764e-149
1.7459411491827386e-149
8
-1.8660232343950614e+35
-3.930779446528964e+32
-3.987264733662572e+32
Compiler

Compiled 555 to 298 computations (46.3% saved)

simplify17.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (5.0ms)

IterNodesCost
0241896
1241896

end0.0ms (0%)

sample52.6s (31.2%)

Algorithm
intervals
Results
1.2s2371×body1024invalid
853.0ms7576×body128valid
370.0ms1019×body512invalid
105.0ms205×body1024valid
97.0ms420×body256invalid
64.0ms547×body128invalid
40.0ms114×body512valid
28.0ms33×body2048invalid
20.0ms86×body256valid
15.0ms19×body2048valid
Compiler

Compiled 50606 to 35611 computations (29.6% saved)

Pareto

0.3631703024591112

Profiling

Loading profile data...