Details

Time bar (total: 11.5s)

analyze2.2s (18.9%)

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 42 to 20 computations (52.4% saved)

sample6.0s (52.1%)

Results
2.5s2479×body1024invalid
2.0s7822×body128valid
649.0ms1028×body512invalid
173.0ms412×body256invalid
163.0ms182×body1024valid
139.0ms586×body128invalid
129.0ms17×body2048valid
92.0ms42×body2048invalid
82.0ms138×body512valid
39.0ms97×body256valid
Compiler

Compiled 125 to 59 computations (52.8% saved)

simplify67.0ms (0.6%)

Algorithm
egg-herbie
Rules
892×unswap-sqr_binary64
461×associate-/l*_binary64
323×associate-/r*_binary64
296×associate-*l/_binary64
286×associate-*r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02040
13938
27038
311838
426338
599638
6304338
7408538
8454138
9486638
10493238

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
7.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
33.4b
(*.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))))
Compiler

Compiled 206 to 96 computations (53.4% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.4b
(*.f64 y.re (atan2.f64 x.im x.re))
1.8b
(*.f64 (atan2.f64 x.im x.re) y.im)
35.0b
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series510.0ms (4.5%)

Counts
4 → 96
Calls

4 calls:

419.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
79.0ms
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
6.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
6.0ms
(*.f64 y.re (atan2.f64 x.im x.re))

rewrite68.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
553×prod-diff_binary64
276×log1p-udef_binary64
154×add-sqr-sqrt_binary64
143×add-log-exp_binary64
142×log1p-expm1-u_binary64
Counts
4 → 90
Calls

4 calls:

66.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
66.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
66.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
66.0ms
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01550
130050
2360950
3517050
000
100

simplify161.0ms (1.4%)

Algorithm
egg-herbie
Rules
703×times-frac_binary64
654×fma-def_binary64
621×associate-/l*_binary64
413×associate-/r*_binary64
255×*-commutative_binary64
Counts
186 → 206
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
05587014
119686366
244056306
349716306
448696306

prune284.0ms (2.5%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1979206
Fresh101
Picked101
Done000
Total1999208
Error
4.3b
Counts
208 → 9
Alt Table
StatusErrorProgram
21.7b
(*.f64 (fma.f64 (/.f64 (log.f64 (hypot.f64 x.im x.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) y.re (pow.f64 (exp.f64 y.im) (neg.f64 (atan2.f64 x.im x.re)))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
38.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
47.0b
(*.f64 (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 x.re x.re) y.re) (*.f64 x.im x.im)) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
11.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (pow.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) 3))
27.5b
(*.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.re)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
Compiler

Compiled 12625 to 4580 computations (63.7% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(log.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))))
0.4b
(*.f64 y.re (atan2.f64 x.im x.re))
1.8b
(*.f64 (atan2.f64 x.im x.re) y.im)
35.0b
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series79.0ms (0.7%)

Counts
1 → 48
Calls

1 calls:

79.0ms
(log.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))))

rewrite75.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
547×log-prod_binary64
263×prod-diff_binary64
211×expm1-udef_binary64
211×log1p-udef_binary64
202×log-pow_binary64
Counts
1 → 33
Calls

1 calls:

74.0ms
(log.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01318
122818
2257918
3499818
4501718
000
100

simplify96.0ms (0.8%)

Algorithm
egg-herbie
Rules
625×fma-def_binary64
427×cancel-sign-sub-inv_binary64
350×associate-*r*_binary64
223×sub-neg_binary64
218×times-frac_binary64
Counts
81 → 88
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03063512
19793266
232073254
349243254
448683254

prune282.0ms (2.5%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1962198
Fresh178
Picked101
Done000
Total1989207
Error
4.2b
Counts
207 → 9
Alt Table
StatusErrorProgram
21.7b
(*.f64 (fma.f64 (/.f64 (log.f64 (hypot.f64 x.im x.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) y.re (pow.f64 (exp.f64 y.im) (neg.f64 (atan2.f64 x.im x.re)))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
38.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
47.0b
(*.f64 (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 x.re x.re) y.re) (*.f64 x.im x.im)) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) 3))))
11.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
27.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
27.5b
(*.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.re)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
Compiler

Compiled 12393 to 4522 computations (63.5% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
0.4b
(*.f64 y.re (atan2.f64 x.im x.re))
1.8b
(*.f64 (atan2.f64 x.im x.re) y.im)
19.0b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))

series13.0ms (0.1%)

Counts
1 → 4
Calls

1 calls:

13.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))

rewrite94.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
578×log1p-expm1-u_binary64
578×expm1-log1p-u_binary64
330×log-prod_binary64
305×fma-def_binary64
232×prod-diff_binary64
Counts
1 → 24
Calls

1 calls:

93.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11359
215309
349809
449319
552139
000
100

simplify70.0ms (0.6%)

Algorithm
egg-herbie
Rules
708×distribute-rgt-neg-in_binary64
573×distribute-lft-neg-in_binary64
501×neg-mul-1_binary64
460×fma-def_binary64
391×cancel-sign-sub-inv_binary64
Counts
28 → 31
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
029110
178106
2224102
3939100
4248494
5385791
6475482
7497682

prune245.0ms (2.1%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1602162
Fresh178
Picked101
Done000
Total1629171
Error
4.2b
Counts
171 → 9
Alt Table
StatusErrorProgram
38.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
47.0b
(*.f64 (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 x.re x.re) y.re) (*.f64 x.im x.im)) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
7.6b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (sqrt.f64 (pow.f64 (*.f64 y.im (atan2.f64 x.im x.re)) 2)))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) 3))))
11.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
21.5b
(*.f64 (fma.f64 (/.f64 (log.f64 (hypot.f64 x.im x.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) y.re (pow.f64 (exp.f64 y.im) (neg.f64 (atan2.f64 x.im x.re)))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
27.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
27.5b
(*.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.re)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
Compiler

Compiled 7719 to 2902 computations (62.4% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 y.re (atan2.f64 x.im x.re))
1.8b
(*.f64 y.im (atan2.f64 x.im x.re))
19.0b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
24.7b
(sqrt.f64 (pow.f64 (*.f64 y.im (atan2.f64 x.im x.re)) 2))

series13.0ms (0.1%)

Counts
2 → 48
Calls

2 calls:

7.0ms
(*.f64 y.im (atan2.f64 x.im x.re))
6.0ms
(sqrt.f64 (pow.f64 (*.f64 y.im (atan2.f64 x.im x.re)) 2))

rewrite42.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
642×log1p-expm1-u_binary64
642×expm1-log1p-u_binary64
353×log-prod_binary64
137×expm1-udef_binary64
137×log1p-udef_binary64
Counts
2 → 61
Calls

2 calls:

41.0ms
(*.f64 y.im (atan2.f64 x.im x.re))
41.0ms
(sqrt.f64 (pow.f64 (*.f64 y.im (atan2.f64 x.im x.re)) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
116414
2170514
3500714
000
100

simplify21.0ms (0.2%)

Algorithm
egg-herbie
Rules
38×fma-def_binary64
sub-neg_binary64
+-commutative_binary64
*-commutative_binary64
distribute-lft-in_binary64
Counts
109 → 42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09344
113344
225344
326344
430344
548344
659344
764344
876344
973344
1059344

prune183.0ms (1.6%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New89089
Fresh088
Picked011
Done000
Total89998
Error
4.2b
Counts
98 → 9
Alt Table
StatusErrorProgram
38.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
47.0b
(*.f64 (fma.f64 1/2 (*.f64 (/.f64 (*.f64 (*.f64 x.re x.re) y.re) (*.f64 x.im x.im)) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (/.f64 (pow.f64 (/.f64 -1 x.im) (neg.f64 y.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
7.6b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (sqrt.f64 (pow.f64 (*.f64 y.im (atan2.f64 x.im x.re)) 2)))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
11.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) 3))))
11.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
21.5b
(*.f64 (fma.f64 (/.f64 (log.f64 (hypot.f64 x.im x.re)) (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) y.re (pow.f64 (exp.f64 y.im) (neg.f64 (atan2.f64 x.im x.re)))) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
27.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
27.5b
(*.f64 (exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (pow.f64 x.re 2) (pow.f64 x.im 2)))) y.re)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
Compiler

Compiled 2655 to 953 computations (64.1% saved)

regimes740.0ms (6.5%)

Accuracy

Total 0.6b remaining (15.8%)

Threshold costs 0.6b (15.8%)

Counts
111 → 1
Compiler

Compiled 16202 to 9240 computations (43% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01840
13040
23940
34540
44940
55040
64940

end211.0ms (1.8%)

Compiler

Compiled 376 to 208 computations (44.7% saved)

Profiling

Loading profile data...