Details

Time bar (total: 7.9s)

analyze280.0ms (3.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
31.2%62.4%6.3%7
34.3%56.2%9.5%8
45.3%35.9%18.8%9
46.8%32.8%20.4%10
48.8%19.5%31.7%11
49.8%17.6%32.7%12
Compiler

Compiled 22 to 12 computations (45.5% saved)

sample1.5s (18.4%)

Results
1.2s8256×body256valid
258.0ms1702×body256invalid

preprocess90.0ms (1.1%)

Algorithm
egg-herbie
Rules
780×unsub-neg_binary64
544×fma-def_binary64
526×sub-neg_binary64
352×fma-neg_binary64
303×distribute-lft-neg-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01748
14946
211346
327832
479832
5259232
6530932
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.im))
Outputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 x.re (+.f64 x.im x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 3 (*.f64 x.re (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 3 x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.im))
(fma.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.re (*.f64 x.im (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 x.im (*.f64 x.re (+.f64 x.im x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 x.re (*.f64 (+.f64 x.im x.im) x.im)))
(-.f64 (*.f64 3 (*.f64 x.re (*.f64 x.im x.im))) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 3 x.re) (neg.f64 (pow.f64 x.re 3)))
(fma.f64 (*.f64 x.im x.im) (*.f64 x.re 3) (neg.f64 (pow.f64 x.re 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.im 3))) (pow.f64 x.re 3))
Compiler

Compiled 23 to 13 computations (43.5% saved)

simplify63.0ms (0.8%)

Algorithm
egg-herbie
Rules
578×fma-neg_binary64
486×sub-neg_binary64
453×unsub-neg_binary64
348×distribute-rgt-in_binary64
287×distribute-lft-neg-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01224
12723
26323
315016
442016
5118916
6213916
7551716
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Outputs
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.re (*.f64 x.re (+.f64 x.im x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.re x.re) x.im)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 3 x.im))) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) (pow.f64 x.im 3))

eval1.0ms (0%)

Compiler

Compiled 32 to 18 computations (43.8% saved)

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
5.5b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
5.6b
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) (pow.f64 x.im 3))
5.7b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 34 to 20 computations (41.2% saved)

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))
0.1b
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)
0.1b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
5.3b
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
Compiler

Compiled 67 to 11 computations (83.6% saved)

series29.0ms (0.4%)

Counts
4 → 96
Calls

24 calls:

TimeVariablePointExpression
4.0ms
x.im
@0
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
2.0ms
x.im
@inf
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
2.0ms
x.re
@0
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
2.0ms
x.im
@0
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
1.0ms
x.re
@inf
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)

rewrite143.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
835×fma-def_binary64
636×log-prod_binary64
359×fma-neg_binary64
218×pow1/3_binary64
216×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01256
128644
2402644
Stop Event
node limit
Counts
4 → 216
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.re x.re) x.im) (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) x.im) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6))) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4))) (fma.f64 x.im x.im (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) x.im (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (*.f64 x.re x.re) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 1 (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 1 (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im))))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im))))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (+.f64 x.re x.im)) (-.f64 x.re x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (+.f64 x.re x.im)) (-.f64 x.re x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.im (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0)))) (/.f64 (*.f64 x.re (*.f64 x.re (/.f64 0 0))) (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) (pow.f64 (cbrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 2) (cbrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) (sqrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3)) (/.f64 1 (fma.f64 (*.f64 x.re (/.f64 0 0)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.re (*.f64 x.re (/.f64 0 0)))) (/.f64 1 (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x.re (/.f64 0 0)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2)) (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0))) (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.re (*.f64 x.re (/.f64 0 0))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3)) (fma.f64 (*.f64 x.re (/.f64 0 0)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3)) (fma.f64 x.re (*.f64 x.re (/.f64 0 0)) (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.im (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (/.f64 0 0)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.re (*.f64 x.re (/.f64 0 0)))) (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3))) (neg.f64 (fma.f64 (*.f64 x.re (/.f64 0 0)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.re (*.f64 x.re (/.f64 0 0))))) (neg.f64 (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x.re (*.f64 x.re (/.f64 0 0))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x.re (/.f64 0 0)) (-.f64 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2)) (fma.f64 (/.f64 0 0) (pow.f64 x.re 3) (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0))) (-.f64 (pow.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 2) (*.f64 x.re (*.f64 x.re (/.f64 0 0))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) (pow.f64 (exp.f64 x.re) (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (+.f64 1 (expm1.f64 (*.f64 x.re (/.f64 0 0))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) (+.f64 1 (expm1.f64 (*.f64 x.re (/.f64 0 0))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (/.f64 0 0)))) (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0)) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (/.f64 0 0)))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) 1 (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 0 0) x.re (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 0 0) (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (/.f64 0 0)) (/.f64 0 0) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (/.f64 0 0)) 1 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re (/.f64 0 0)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) (pow.f64 (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) 2) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) 2) (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) x.im) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.re x.re)) (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) 2) (cbrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x.re)) (*.f64 (/.f64 0 0) (sqrt.f64 x.re)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (/.f64 0 0) (sqrt.f64 x.re)) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) x.im) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (sqrt.f64 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 0 0) (cbrt.f64 (*.f64 x.re x.re))) (cbrt.f64 x.re) (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im))))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (+.f64 x.re x.im)) (-.f64 x.re x.im) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.re (/.f64 0 0)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.re (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.re x.im) x.re) (*.f64 (*.f64 x.re x.im) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0))) (cbrt.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.re (/.f64 0 0)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) x.re) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 x.re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.re (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.re 0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (/.f64 0 0)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 0 0) (cbrt.f64 x.re)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 0 0) (sqrt.f64 x.re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 0 0) (pow.f64 x.re 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 x.re (*.f64 x.re (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.re) (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (/.f64 0 0)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (/.f64 0 0) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.re (/.f64 0 0))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (*.f64 x.re x.im) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.im) x.re (*.f64 (*.f64 x.re x.im) x.re))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 0 0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x.re x.im) 2) 0) (/.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.re (+.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re x.im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 0 0) (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 0 0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x.re x.im)) (+.f64 (pow.f64 (cbrt.f64 (*.f64 x.re x.im)) 2) (pow.f64 (cbrt.f64 (*.f64 x.re x.im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x.re x.im)) 2) (+.f64 (cbrt.f64 (*.f64 x.re x.im)) (cbrt.f64 (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x.re x.im)) (+.f64 (sqrt.f64 (*.f64 x.re x.im)) (sqrt.f64 (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 0 (/.f64 1 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0) (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 0 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (*.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (cbrt.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 0) (sqrt.f64 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (sqrt.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (*.f64 0 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) 0) (*.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (/.f64 0 0)) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 (/.f64 0 0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 0 0) (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 0 0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0) (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 0 0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.im))) (pow.f64 (exp.f64 x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.re) x.im) (+.f64 1 (expm1.f64 (*.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.im))) (+.f64 1 (expm1.f64 (*.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 0 0))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 x.re x.im)) (sqrt.f64 (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 0 0)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.im (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im x.re (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.im) (/.f64 0 0) (*.f64 (*.f64 x.re x.im) (/.f64 0 0)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.im) 1 (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 0 0) (*.f64 x.re x.im) (*.f64 (/.f64 0 0) (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.im) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.re x.im)) (pow.f64 (cbrt.f64 (*.f64 x.re x.im)) 2) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.re x.im)) 2) (cbrt.f64 (*.f64 x.re x.im)) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.re x.re)) (*.f64 (cbrt.f64 x.re) x.im) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.im) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.re x.im)) (sqrt.f64 (*.f64 x.re x.im)) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) x.re) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (cbrt.f64 (*.f64 x.re x.re))) (cbrt.f64 x.re) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 x.re x.im))))))

simplify168.0ms (2.1%)

Algorithm
egg-herbie
Rules
403×fma-def_binary64
382×unswap-sqr_binary64
355×associate-*l*_binary64
344×distribute-rgt-neg-in_binary64
333×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0291017
1881017
22421017
37531017
426841017
545701017
656671017
771571017
Stop Event
node limit
Counts
312 → 232
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re x.im))
Outputs
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) x.im (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) -3 (*.f64 x.im x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 2)))
(*.f64 x.im (*.f64 2 (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.im x.re))
(*.f64 x.re (*.f64 x.im 2))
(*.f64 x.im (*.f64 x.re 2))

localize30.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x.re (*.f64 x.re 3))
5.6b
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))
Compiler

Compiled 34 to 21 computations (38.2% saved)

series9.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x.re
@0
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))
1.0ms
x.im
@0
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))
1.0ms
x.re
@inf
(*.f64 x.re (*.f64 x.re 3))
1.0ms
x.im
@-inf
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))
1.0ms
x.im
@inf
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))

rewrite117.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
667×pow1_binary64
614×add-log-exp_binary64
614×log1p-expm1-u_binary64
614×expm1-log1p-u_binary64
601×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
114217
2168017
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x.re (sqrt.f64 3)) (sqrt.f64 x.im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 3)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.im 3) (pow.f64 (*.f64 x.re (*.f64 x.re 3)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re 3)) 3) (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.re (*.f64 x.re 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 x.re 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.re (*.f64 x.re 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.re 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.re 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.re 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.re 3) 3) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 x.re 3))))))))

simplify184.0ms (2.3%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
638×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09324
118324
239324
390324
4246324
5825324
61076324
71490324
81590324
91725324
101894324
112137324
122450324
132822324
143282324
153867324
164575324
175435324
185859324
196173324
206481324
216563324
226599324
Stop Event
node limit
Counts
62 → 30
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))

eval63.0ms (0.8%)

Compiler

Compiled 6023 to 1950 computations (67.6% saved)

prune47.0ms (0.6%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2548262
Fresh000
Picked011
Done101
Total2559264
Error
0.0b
Counts
264 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
6.1b
(+.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
25.0b
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
0.2b
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
0.2b
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
5.6b
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) (pow.f64 x.im 3))
5.7b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
25.0b
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
46.0b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (/.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)) x.re))
24.9b
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 327 to 193 computations (41% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
0.3b
(*.f64 3 (*.f64 x.re x.im))
Compiler

Compiled 34 to 17 computations (50% saved)

series4.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x.re
@0
(*.f64 3 (*.f64 x.re x.im))
0.0ms
x.im
@0
(*.f64 3 (*.f64 x.re x.im))
0.0ms
x.re
@-inf
(*.f64 3 (*.f64 x.re x.im))
0.0ms
x.im
@inf
(*.f64 3 (*.f64 x.re x.im))
0.0ms
x.im
@-inf
(*.f64 3 (*.f64 x.re x.im))

rewrite50.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
668×pow1_binary64
615×add-log-exp_binary64
615×log1p-expm1-u_binary64
615×expm1-log1p-u_binary64
603×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
114317
2171617
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x.re x.im))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x.re x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 x.re x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (*.f64 x.re x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 x.re x.im) 2) 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 x.re x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x.re x.im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) 3) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 3 (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 3 (*.f64 x.re x.im)) 3) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 (*.f64 x.re x.im) x.re))))))))

simplify164.0ms (2.1%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
640×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
237240
383240
4223240
5736240
6997240
71411240
81511240
91646240
101818240
112061240
122374240
132744240
143202240
153791240
164499240
175361240
185787240
196103240
206411240
216489240
226523240
Stop Event
node limit
Counts
48 → 26
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (*.f64 x.re x.re))
5.6b
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
Compiler

Compiled 20 to 9 computations (55% saved)

series2.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x.im
@0
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
0.0ms
x.re
@inf
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
0.0ms
x.re
@-inf
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
0.0ms
x.im
@inf
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
0.0ms
x.re
@0
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))

rewrite52.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
644×pow1_binary64
593×add-log-exp_binary64
593×log1p-expm1-u_binary64
593×expm1-log1p-u_binary64
580×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
114317
2167017
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re x.re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 x.im 3)) x.re) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 9 (pow.f64 x.re 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) (*.f64 x.re x.re)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x.re x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 x.re x.re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 x.re x.re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x.re x.re))))))))

simplify180.0ms (2.3%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
638×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09324
118324
239324
390324
4246324
5825324
61076324
71490324
81590324
91725324
101894324
112137324
122450324
132822324
143282324
153867324
164575324
175435324
185859324
196173324
206481324
216563324
226599324
Stop Event
node limit
Counts
58 → 26
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.1b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
5.3b
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im)
5.6b
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
Compiler

Compiled 59 to 21 computations (64.4% saved)

series5.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
x.im
@0
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
0.0ms
x.im
@inf
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0ms
x.re
@-inf
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0ms
x.im
@-inf
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0ms
x.re
@inf
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))

rewrite97.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
817×fma-def_binary64
728×log-prod_binary64
321×fma-neg_binary64
242×pow1/3_binary64
239×expm1-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01243
127342
2392940
Stop Event
node limit
Counts
3 → 252
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re))) (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x.im) (*.f64 x.re (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re))))) (/.f64 (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (*.f64 x.re (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (pow.f64 (cbrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 2) (cbrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (sqrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3)) (/.f64 1 (fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4))) (/.f64 1 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re)))) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3)) (fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3)) (fma.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 x.im (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4))) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3))) (neg.f64 (fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)))) (neg.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (-.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.re (+.f64 x.re x.re)))) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 4)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))) (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re)) (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))) (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (pow.f64 (exp.f64 (*.f64 x.im x.re)) (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (fma.f64 x.re (+.f64 x.re x.re) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (*.f64 x.re (+.f64 x.re x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (*.f64 (+.f64 x.re x.re) x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.re) (*.f64 x.im x.re) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (+.f64 x.re x.re)) x.im (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) 1 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) (*.f64 2 x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 1 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (cbrt.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (*.f64 x.re (+.f64 x.re x.re))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 x.re 4) 4)) (*.f64 (cbrt.f64 (*.f64 x.re (+.f64 x.re x.re))) x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) 2) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) 2) (cbrt.f64 (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) (*.f64 x.re (+.f64 x.re x.re))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 2)) (*.f64 (*.f64 x.re (sqrt.f64 2)) x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 x.im) (*.f64 x.re (sqrt.f64 2))) (*.f64 (sqrt.f64 x.im) (*.f64 x.re (sqrt.f64 2))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im x.re) (+.f64 x.re x.re) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (*.f64 x.re x.re)) 2 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im))))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (+.f64 x.re x.re)) x.re (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (cbrt.f64 (*.f64 (pow.f64 x.re 4) 4))) (cbrt.f64 (*.f64 x.re (+.f64 x.re x.re))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (*.f64 x.re (sqrt.f64 2))) (*.f64 x.re (sqrt.f64 2)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.re (+.f64 x.re x.re)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.re (+.f64 x.re x.re)) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im x.re) x.re) 2 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im x.re) 2) x.re (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im x.re) 1) (+.f64 x.re x.re) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im x.re) (cbrt.f64 (*.f64 (*.f64 x.re x.re) 4))) (cbrt.f64 (+.f64 x.re x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im x.re) (sqrt.f64 (+.f64 x.re x.re))) (sqrt.f64 (+.f64 x.re x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (neg.f64 x.im)) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x.re x.im) (+.f64 x.im x.re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4)) (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x.im x.im (*.f64 x.re x.re)) (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (fma.f64 x.im x.im (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6))) (neg.f64 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4))) (neg.f64 (fma.f64 x.im x.im (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x.re 6) (pow.f64 (*.f64 x.im (neg.f64 x.im)) 3)) (+.f64 (pow.f64 x.re 4) (-.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) (*.f64 x.im (neg.f64 x.im))) (*.f64 (*.f64 x.re x.re) (*.f64 x.im (neg.f64 x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 3) (pow.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 3)) (+.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 2) (-.f64 (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.re 4) (*.f64 (*.f64 x.im (neg.f64 x.im)) (*.f64 x.im (neg.f64 x.im)))) (-.f64 (*.f64 x.re x.re) (*.f64 x.im (neg.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 2) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))) (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4)) (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x.im x.im (*.f64 x.re x.re)) (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (pow.f64 (exp.f64 x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x.re) x.re) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (exp.f64 (*.f64 x.im (neg.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.re) x.re) (/.f64 1 (pow.f64 (exp.f64 x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (/.f64 1 (pow.f64 (exp.f64 x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (exp.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x.im (neg.f64 x.im))) (pow.f64 (exp.f64 x.re) x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 x.im) x.im)) (pow.f64 (exp.f64 x.re) x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x.im (neg.f64 x.im))) (+.f64 1 (expm1.f64 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 x.im) x.im)) (+.f64 1 (expm1.f64 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) (+.f64 1 (expm1.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (neg.f64 x.im) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.re (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.re (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.re (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.re (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 1 (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 1 (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 1 (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 1 (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1 (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1 (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1 (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.re) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im (neg.f64 x.im)) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (cbrt.f64 (pow.f64 x.re 4)) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (cbrt.f64 (pow.f64 x.re 4)) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (cbrt.f64 (pow.f64 x.re 4)) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (cbrt.f64 (pow.f64 x.re 4)) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.re) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.re 4)) (pow.f64 (cbrt.f64 x.re) 2) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.re 4)) (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.re 4)) (pow.f64 (cbrt.f64 x.re) 2) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.re 4)) (pow.f64 (cbrt.f64 x.re) 2) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.im 4)) (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.re) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x.im) x.im (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (/.f64 1 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re 4))) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (/.f64 1 (fma.f64 x.im x.im (*.f64 x.re x.re))) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (+.f64 x.im x.re) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (+.f64 x.im x.re) (fma.f64 (*.f64 x.im (neg.f64 x.im)) 1 (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (+.f64 x.im x.re) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 (pow.f64 x.im 4)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (+.f64 x.im x.re) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (+.f64 x.im x.re) (+.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.re)) (sqrt.f64 x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.re)) (sqrt.f64 x.re) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) (cbrt.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))) (cbrt.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 x.im (neg.f64 x.im))) (cbrt.f64 (*.f64 x.im (neg.f64 x.im)))) (cbrt.f64 (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (sqrt.f64 (*.f64 x.im (neg.f64 x.im))) x.im) (hypot.f64 (sqrt.f64 (*.f64 x.im (neg.f64 x.im))) x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im (neg.f64 x.im))) (sqrt.f64 (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x.im 4))) (pow.f64 (cbrt.f64 x.im) 2) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (*.f64 (*.f64 x.im (neg.f64 x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (fma.f64 x.im (neg.f64 x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (neg.f64 (-.f64 (*.f64 x.im x.im) (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x.im) 1) x.im (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x.im) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 x.im) (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.re x.re))))))

simplify93.0ms (1.2%)

Algorithm
egg-herbie
Rules
593×associate-*l*_binary64
457×fma-def_binary64
453×unsub-neg_binary64
449×distribute-rgt-neg-in_binary64
411×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
029804
189786
2244786
3855786
43862786
57186786
Stop Event
node limit
Counts
324 → 269
Calls
Call 1
Inputs
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(pow.f64 x.re 2)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(pow.f64 x.re 2)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(pow.f64 x.re 2)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
Outputs
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(fma.f64 x.re (*.f64 x.re (*.f64 x.im 3)) (neg.f64 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(pow.f64 x.re 2)
(*.f64 x.re x.re)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(pow.f64 x.re 2)
(*.f64 x.re x.re)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(pow.f64 x.re 2)
(*.f64 x.re x.re)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.re))
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.7b
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
Compiler

Compiled 25 to 16 computations (36% saved)

series5.0ms (0.1%)

Counts
1 → 12
Calls

6 calls:

TimeVariablePointExpression
2.0ms
x.re
@inf
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
1.0ms
x.re
@0
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
1.0ms
x.im
@0
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
0.0ms
x.re
@-inf
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
0.0ms
x.im
@-inf
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))

rewrite65.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
927×pow1_binary64
865×add-log-exp_binary64
864×log1p-expm1-u_binary64
864×expm1-log1p-u_binary64
843×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
118110
2246510
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 1) (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (pow.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) 3)) (+.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im))) (-.f64 (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im))) (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))) (-.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x.im 3) (*.f64 8 (pow.f64 x.im 3))) (*.f64 x.re x.re)) (fma.f64 x.im x.im (*.f64 (*.f64 2 x.im) (-.f64 (*.f64 2 x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 x.im 3) (*.f64 x.im -1)) (*.f64 x.re x.re)) (*.f64 x.im -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 x.im 3) (*.f64 8 (pow.f64 x.im 3)))) (fma.f64 x.im x.im (*.f64 (*.f64 2 x.im) (-.f64 (*.f64 2 x.im) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.re x.re) (*.f64 (*.f64 x.im 3) (*.f64 x.im -1))) (*.f64 x.im -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 (*.f64 x.im 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 9 (*.f64 x.im x.im)) (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) x.im) (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.re x.re) 3) (pow.f64 (*.f64 x.im 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.im 3) 3) (pow.f64 (*.f64 x.re x.re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) x.im (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (*.f64 x.re x.re) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))))))

simplify171.0ms (2.2%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
640×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08120
117120
237120
383120
4223120
5736120
6997120
71411120
81511120
91646120
101818120
112061120
122374120
132744120
143202120
153791120
164499120
175361120
185787120
196103120
206411120
216489120
226523120
Stop Event
node limit
Counts
36 → 26
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))

localize35.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 x.im)
2.3b
(*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
3.2b
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
35.1b
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))
Compiler

Compiled 132 to 24 computations (81.8% saved)

series19.0ms (0.2%)

Counts
4 → 37
Calls

18 calls:

TimeVariablePointExpression
6.0ms
x.re
@0
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
3.0ms
x.im
@-inf
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
2.0ms
x.im
@inf
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
2.0ms
x.im
@0
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
1.0ms
x.im
@inf
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))

rewrite79.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
601×log-prod_binary64
475×fma-def_binary64
319×pow2_binary64
269×pow-unpow_binary64
223×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01464
130444
2405642
Stop Event
node limit
Counts
4 → 151
Calls
Call 1
Inputs
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im))
(fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im))
(*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))
(cbrt.f64 x.im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im x.im) (*.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.im (+.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (+.f64 x.im x.im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (+.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (+.f64 x.im x.im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (+.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x.im x.im) (*.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (+.f64 x.im x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (+.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.im (+.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x.im (+.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 x.im x.im)) 2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x.im x.im)) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x.im x.im)) 2) 2) (pow.f64 (cbrt.f64 (hypot.f64 x.im x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x.im x.im) (hypot.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x.im 6) (pow.f64 x.im 6)) (+.f64 (pow.f64 x.im 4) (-.f64 (pow.f64 x.im 4) (pow.f64 x.im 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.im 4) (pow.f64 x.im 4)) (*.f64 x.im (+.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (+.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (+.f64 x.im x.im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (+.f64 x.im x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x.im x.im)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x.im x.im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (+.f64 x.im x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.im) (+.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (+.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x.im) x.im) (pow.f64 (exp.f64 x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.im x.im))) (pow.f64 (exp.f64 x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x.im) x.im) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.im x.im))) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im x.im))) (pow.f64 (exp.f64 x.im) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.im) x.im) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im x.im))) (+.f64 1 (expm1.f64 (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (+.f64 x.im x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 x.im x.im))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) 1) (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) (pow.f64 (cbrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) 2) (cbrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) (sqrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) 3) (pow.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)) 3)) (+.f64 (pow.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) 2) (-.f64 (pow.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)) 2) (*.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) 2) (pow.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)) 2)) (-.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)) (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.im) (+.f64 x.im x.im)) (exp.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3)))) (exp.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) (+.f64 1 (expm1.f64 (+.f64 (pow.f64 x.im 3) (pow.f64 x.im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x.im (*.f64 x.im (+.f64 x.im x.im)) (*.f64 x.im (pow.f64 (+.f64 x.im x.re) 2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (*.f64 (*.f64 x.im x.im) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cbrt.f64 x.im) (*.f64 x.re x.re)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (+.f64 x.im x.re) 2)) (cbrt.f64 x.im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (+.f64 x.im x.re) 2)) (cbrt.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (+.f64 x.im x.re) 2)) (cbrt.f64 x.im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (+.f64 x.im x.re) 2)) (cbrt.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6)) (cbrt.f64 x.im)) (pow.f64 (hypot.f64 (pow.f64 (+.f64 x.im x.re) 2) (*.f64 x.re x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x.re 4) (pow.f64 x.im 4)) (cbrt.f64 x.im)) (pow.f64 (+.f64 x.im x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 x.im) (-.f64 (pow.f64 x.re 6) (pow.f64 x.im 6))) (pow.f64 (hypot.f64 (pow.f64 (+.f64 x.im x.re) 2) (*.f64 x.re x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cbrt.f64 x.im) (+.f64 (pow.f64 x.re 4) (pow.f64 x.im 4))) (pow.f64 (+.f64 x.im x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x.im 1/6) (+.f64 x.im x.re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (pow.f64 (pow.f64 (+.f64 x.im x.re) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 x.im x.re) 2) 3) x.im) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (+.f64 x.im x.re) 2)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 x.im (pow.f64 (pow.f64 (+.f64 x.im x.re) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (+.f64 x.im x.re) 2) 3) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (*.f64 (cbrt.f64 x.im) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) (cbrt.f64 x.im) (*.f64 (*.f64 x.im x.im) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 x.im x.re) 2) (cbrt.f64 x.im) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 x.im x.re) 2) (cbrt.f64 x.im) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 1 (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) 1 (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) 2) (*.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) (cbrt.f64 x.im)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) 2) (*.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) (cbrt.f64 x.im)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2) (*.f64 (cbrt.f64 (cbrt.f64 x.im)) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2) (*.f64 (cbrt.f64 (cbrt.f64 x.im)) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 2) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 2) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 2) (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) 2) (cbrt.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (+.f64 x.im x.re) 2))) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x.im 1/6) (+.f64 x.im x.re)) (*.f64 (pow.f64 x.im 1/6) (+.f64 x.im x.re)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x.im 1/6) (+.f64 x.im x.re)) (*.f64 (pow.f64 x.im 1/6) (+.f64 x.im x.re)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x.im 1/6) (*.f64 (pow.f64 x.im 1/6) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x.im 1/6) (*.f64 (pow.f64 x.im 1/6) (pow.f64 (+.f64 x.im x.re) 2)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (*.f64 (+.f64 x.im x.re) (cbrt.f64 x.im)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (*.f64 (+.f64 x.im x.re) (cbrt.f64 x.im)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) 2)) (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (pow.f64 (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) 2)) (pow.f64 (cbrt.f64 (+.f64 x.im x.re)) 2) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (+.f64 x.im x.re)) (+.f64 x.im x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.im) (+.f64 x.im x.re)) (+.f64 x.im x.re) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 x.im x.re) 2) (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2)) (cbrt.f64 (cbrt.f64 x.im)) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 x.im x.re) 2) (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2)) (cbrt.f64 (cbrt.f64 x.im)) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 x.im x.re) 2) (pow.f64 x.im 1/6)) (pow.f64 x.im 1/6) (*.f64 (*.f64 x.im (+.f64 x.im x.im)) (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 x.im x.re) 2) (pow.f64 x.im 1/6)) (pow.f64 x.im 1/6) (*.f64 (cbrt.f64 x.im) (*.f64 x.im (+.f64 x.im x.im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 x.im))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 x.im)))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 x.im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2) (cbrt.f64 (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 x.im)) (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x.im 1/6) (pow.f64 x.im 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (cbrt.f64 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 x.im (cbrt.f64 x.im)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x.im 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x.im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x.im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 x.im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x.im 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 x.im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x.im) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 x.im)) 1))))))

simplify62.0ms (0.8%)

Algorithm
egg-herbie
Rules
491×unswap-sqr_binary64
424×fma-neg_binary64
323×associate-*l*_binary64
301×cancel-sign-sub-inv_binary64
297×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
033472
1107360
2261329
3671329
42361329
56232329
Stop Event
node limit
Counts
188 → 165
Calls
Call 1
Inputs
0
0
0
0
0
0
0
0
0
0
0
0
0
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3))))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
Outputs
0
0
0
0
0
0
0
0
0
0
0
0
0
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.im 0) (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 1 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re x.re))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 1 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 x.im (*.f64 x.re x.re))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.im) (+.f64 (*.f64 (pow.f64 1 1/3) (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (*.f64 (pow.f64 1 1/3) (pow.f64 x.im 3)))))
(fma.f64 1 (*.f64 x.im (*.f64 x.re x.re)) (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.im (*.f64 -1 (pow.f64 x.im 3))))
(-.f64 (*.f64 x.im (+.f64 0 (*.f64 x.re x.re))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3))
(neg.f64 (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im))
(*.f64 x.re (*.f64 x.re (cbrt.f64 x.im)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im))
(*.f64 x.re (*.f64 x.re (cbrt.f64 x.im)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))
(+.f64 (*.f64 (pow.f64 (*.f64 1 x.im) 1/3) (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 (*.f64 1 (pow.f64 x.im 7)) 1/3)))
(fma.f64 (cbrt.f64 x.im) (*.f64 x.re x.re) (neg.f64 (cbrt.f64 (pow.f64 x.im 7))))
(-.f64 (*.f64 (*.f64 x.re x.re) (cbrt.f64 x.im)) (cbrt.f64 (pow.f64 x.im 7)))
(-.f64 (*.f64 x.re (*.f64 x.re (cbrt.f64 x.im))) (cbrt.f64 (pow.f64 x.im 7)))

eval179.0ms (2.3%)

Compiler

Compiled 16824 to 5054 computations (70% saved)

prune100.0ms (1.3%)

Pruning

15 alts after pruning (12 fresh and 3 done)

PrunedKeptTotal
New59212604
Fresh303
Picked101
Done235
Total59815613
Error
0b
Counts
613 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
19.5b
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
5.6b
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) (pow.f64 x.im 3))
22.4b
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
19.5b
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
19.5b
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
50.3b
(/.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im))) (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))) (-.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))))
5.7b
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
25.0b
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
40.2b
(pow.f64 (*.f64 (sqrt.f64 (*.f64 x.im 3)) x.re) 2)
25.3b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 3)
5.7b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
29.2b
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
35.8b
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
25.6b
(pow.f64 (neg.f64 x.im) 3)
Compiler

Compiled 411 to 242 computations (41.1% saved)

localize14.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 x.re x.im) x.im)
0.1b
(*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))
0.2b
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
Compiler

Compiled 44 to 9 computations (79.5% saved)

series7.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
x.im
@0
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
1.0ms
x.re
@-inf
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
1.0ms
x.im
@-inf
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
1.0ms
x.re
@inf
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
1.0ms
x.im
@inf
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))

rewrite78.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
589×log-prod_binary64
513×fma-def_binary64
441×pow-prod-down_binary64
297×pow2_binary64
248×pow-unpow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01040
122740
2342628
Stop Event
node limit
Counts
3 → 151
Calls
Call 1
Inputs
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
(*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re))
(*.f64 (-.f64 x.re x.im) x.im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) 1) (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) (pow.f64 (cbrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) 2) (cbrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) (sqrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) 3) (+.f64 x.re x.re)) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) 2) (-.f64 (+.f64 x.re x.re) (*.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) 2) (+.f64 x.re x.re)) (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (neg.f64 (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 2) x.re) (exp.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (+.f64 x.re x.re))) (exp.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im)))) (+.f64 1 (expm1.f64 (+.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (+.f64 x.re x.re))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x.re x.re)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (+.f64 x.re x.re)) (*.f64 x.re (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (*.f64 x.im x.re)) (*.f64 x.re (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x.re x.re) x.re) (*.f64 (+.f64 x.re x.re) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.im x.re) x.re) (*.f64 (*.f64 x.im x.re) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 2) x.re)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 2) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2) x.re))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 2) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 x.re x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 x.re x.re) 0) (/.f64 (*.f64 x.re x.re) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x.re x.re 0) (*.f64 2 (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 x.re 3)) (fma.f64 x.re x.re 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 0 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 2 (pow.f64 x.re 3)) 2) (pow.f64 (fma.f64 x.re x.re 0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 2 (pow.f64 x.re 3))) (cbrt.f64 (fma.f64 x.re x.re 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (pow.f64 x.re 3))) (sqrt.f64 (fma.f64 x.re x.re 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (pow.f64 x.re 3))) (neg.f64 (fma.f64 x.re x.re 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 (*.f64 2 (pow.f64 x.re 3))) (*.f64 0 (fma.f64 x.re x.re 0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 x.re 3)) 0) (*.f64 (fma.f64 x.re x.re 0) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 x.re 3)) (+.f64 x.re x.re)) (fma.f64 x.re x.re 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 (+.f64 x.re x.re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (pow.f64 x.re 3)) (*.f64 x.im x.re)) (fma.f64 x.re x.re 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 0 (*.f64 x.im x.re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x.re x.re) (*.f64 2 (pow.f64 x.re 3))) (fma.f64 x.re x.re 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.im x.re) (*.f64 2 (pow.f64 x.re 3))) (fma.f64 x.re x.re 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.im x.re) 0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x.re x.re) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x.re x.re 0) (*.f64 2 (pow.f64 x.re 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 2) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x.re)) (exp.f64 x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 x.re) (+.f64 1 (expm1.f64 x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 x.re)) (+.f64 1 (expm1.f64 x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (+.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 x.re) (sqrt.f64 x.re))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 x.re x.re)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (+.f64 x.re x.re) (*.f64 x.re (+.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (*.f64 x.im x.re) (*.f64 x.re (*.f64 x.im x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re 1 x.re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.re) x.re (*.f64 (+.f64 x.re x.re) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im x.re) x.re (*.f64 (*.f64 x.im x.re) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x.re x.re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.re) (pow.f64 (cbrt.f64 x.re) 2) x.re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (cbrt.f64 x.re) x.re)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (sqrt.f64 x.re) x.re)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.im (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (-.f64 x.re x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))) (+.f64 x.im x.re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x.re 3) (pow.f64 x.im 3)) x.im) (fma.f64 x.im (+.f64 x.im x.re) (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (-.f64 (pow.f64 x.re 3) (pow.f64 x.im 3))) (fma.f64 x.im (+.f64 x.im x.re) (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (+.f64 x.im x.re))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (-.f64 x.re x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (-.f64 x.re x.im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (-.f64 x.re x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (-.f64 x.re x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (-.f64 x.re x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (-.f64 x.re x.im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im x.re (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im x.re (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.im (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.im (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im x.re) 1 (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im x.re) 1 (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.re)) (cbrt.f64 (pow.f64 (*.f64 x.im x.re) 2)) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.re)) (cbrt.f64 (pow.f64 (*.f64 x.im x.re) 2)) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x.im x.re) 2)) (cbrt.f64 (*.f64 x.im x.re)) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x.im x.re) 2)) (cbrt.f64 (*.f64 x.im x.re)) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.im)) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.im)) (*.f64 (cbrt.f64 x.im) x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.im) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x.re) 2) (*.f64 (cbrt.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im x.re)) (sqrt.f64 (*.f64 x.im x.re)) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im x.re)) (sqrt.f64 (*.f64 x.im x.re)) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (*.f64 (sqrt.f64 x.im) x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.im) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 (sqrt.f64 x.re) x.im) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (sqrt.f64 x.re)) (sqrt.f64 x.re) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (cbrt.f64 (*.f64 x.im x.im))) (cbrt.f64 x.im) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (cbrt.f64 (*.f64 x.im x.im))) (cbrt.f64 x.im) (*.f64 x.im (neg.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 (neg.f64 x.im) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 x.im) (*.f64 x.im (neg.f64 x.im)))))))

simplify66.0ms (0.8%)

Algorithm
egg-herbie
Rules
657×associate-*l*_binary64
533×fma-def_binary64
472×distribute-rgt-neg-in_binary64
467×associate-*r*_binary64
407×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
045876
1143738
2454684
31164684
44677684
Stop Event
node limit
Counts
223 → 173
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 x.re 2)) (*.f64 -2 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 x.re 2)) (*.f64 -2 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
Outputs
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im))
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 x.re 2)) (*.f64 -2 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (pow.f64 x.re 2)) (*.f64 -2 (pow.f64 x.re 2))) x.im)) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(pow.f64 (neg.f64 x.im) 3)
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(*.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re)) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 x.re) (*.f64 x.im x.im) (fma.f64 (*.f64 3 (*.f64 x.re x.re)) x.im (neg.f64 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) (*.f64 x.im 3) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 x.re (*.f64 x.im (*.f64 x.re 3))) (pow.f64 x.im 3))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(*.f64 x.re x.im)
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 x.re x.im))
(fma.f64 -1 (*.f64 x.im x.im) (*.f64 x.re x.im))
(-.f64 (*.f64 x.re x.im) (*.f64 x.im x.im))
(*.f64 x.im (-.f64 x.re x.im))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
0.3b
(*.f64 3 (*.f64 x.re x.im))
Compiler

Compiled 20 to 9 computations (55% saved)

localize27.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (*.f64 x.re x.re))
1.4b
(-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1)
5.2b
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
Compiler

Compiled 41 to 24 computations (41.5% saved)

series5.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x.re
@inf
(-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1)
1.0ms
x.im
@0
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
0.0ms
x.re
@inf
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
0.0ms
x.im
@inf
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
0.0ms
x.im
@-inf
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))

rewrite94.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
526×prod-diff_binary64
482×fma-def_binary64
432×log-prod_binary64
285×pow-prod-down_binary64
240×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01029
121617
2289817
Stop Event
node limit
Counts
2 → 125
Calls
Call 1
Inputs
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x.im (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x.im (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fma.f64 3 (*.f64 x.re x.re) 1) x.im) (*.f64 -1 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) 1)) (*.f64 x.im -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) (*.f64 3 x.re))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) (*.f64 3 x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) (*.f64 3 x.re)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) (*.f64 3 x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1) x.im) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1) x.im) (fma.f64 3 (*.f64 x.re x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1)) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1)) (fma.f64 3 (*.f64 x.re x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 9)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x.im 3) (*.f64 (pow.f64 x.re 6) 27)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x.im) (*.f64 x.re (sqrt.f64 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x.im x.im) (*.f64 (pow.f64 x.re 4) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.im) x.re) (*.f64 3 x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.im 3) (*.f64 (pow.f64 x.re 6) 27)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x.im 3) (*.f64 (pow.f64 x.re 6) 27))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x.im (*.f64 3 (*.f64 x.re x.re))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 x.im) (*.f64 x.re (sqrt.f64 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im 1 (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im 1 (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (fma.f64 3 (*.f64 x.re x.re) 1) (*.f64 x.im -1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x.im (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 x.im (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x.re x.re) 1) x.im (*.f64 -1 x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.im) (cbrt.f64 (*.f64 x.im x.im)) (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x.im) (cbrt.f64 (*.f64 x.im x.im)) (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.im)) (cbrt.f64 x.im) (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im x.im)) (cbrt.f64 x.im) (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (sqrt.f64 x.im) (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.im) (sqrt.f64 x.im) (*.f64 x.im (fma.f64 3 (*.f64 x.re x.re) -1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 3 (*.f64 x.re x.re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 3 (*.f64 x.re x.re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x.re x.re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 3 (*.f64 x.re x.re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 3 (*.f64 x.re x.re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 3 (*.f64 x.re x.re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (exp.f64 x.re) (+.f64 x.re x.re))) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 3 x.re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 3 x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 3 (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.re (*.f64 3 x.re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re x.re) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 x.re x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x.re 4)) (*.f64 (pow.f64 (cbrt.f64 x.re) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))) (cbrt.f64 (*.f64 (pow.f64 x.re 4) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 x.re 4) 9)) (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re (sqrt.f64 3)) (*.f64 x.re (sqrt.f64 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1) (/.f64 1 (fma.f64 3 (*.f64 x.re x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 x.re) x.re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) 1) (-.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (cbrt.f64 (pow.f64 x.re 4))) (pow.f64 (cbrt.f64 x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 3 x.re) 1) x.re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 3 x.re) (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 3 x.re) (sqrt.f64 x.re)) (sqrt.f64 x.re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2)) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 3 (*.f64 x.re x.re) 2) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (-.f64 1 (*.f64 (fma.f64 3 (*.f64 x.re x.re) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1) (fma.f64 3 (*.f64 x.re x.re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1)) (neg.f64 (fma.f64 3 (*.f64 x.re x.re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) -1) 2) (fma.f64 3 (*.f64 x.re x.re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) -1) 2)) (-.f64 1 (fma.f64 3 (*.f64 x.re x.re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x.re x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x.re 4) 9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x.re 6) 27) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2)) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 3 (*.f64 x.re x.re) 2) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x.re 4) 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.re) (*.f64 3 x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.re 6) 27))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (*.f64 x.re (sqrt.f64 3)) (sqrt.f64 (fma.f64 (pow.f64 x.re 4) 9 (*.f64 -3 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 3 (*.f64 x.re x.re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (*.f64 x.re x.re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.re)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.re (sqrt.f64 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 x.re 6) 27)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x.re x.re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x.re x.re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x.re x.re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x.re x.re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (*.f64 3 x.re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 3 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x.re x.re)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 (*.f64 x.re x.re) 1)) (cbrt.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2)) (cbrt.f64 (fma.f64 3 (*.f64 x.re x.re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2)) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x.re x.re) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x.re 4)) (*.f64 (pow.f64 (cbrt.f64 x.re) 2) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))) (cbrt.f64 (*.f64 (pow.f64 x.re 4) 9)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 x.re 4) 9)) (cbrt.f64 (*.f64 3 (*.f64 x.re x.re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) (*.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 3)) (*.f64 x.re (sqrt.f64 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) (fma.f64 3 (*.f64 x.re x.re) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 x.re 6) 27 1) (/.f64 1 (+.f64 1 (fma.f64 (pow.f64 x.re 4) 9 (*.f64 -3 (*.f64 x.re x.re))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x.re x.re) 1) 2) -1) (/.f64 1 (fma.f64 3 (*.f64 x.re x.re) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 (pow.f64 x.re 4) 9)) (/.f64 1 (+.f64 1 (*.f64 -3 (*.f64 x.re x.re)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x.re) x.re 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x.re x.re) -1)) 2) (cbrt.f64 (fma.f64 3 (*.f64 x.re x.re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x.re x.re) -1)) (sqrt.f64 (fma.f64 3 (*.f64 x.re x.re) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) 1) (-.f64 (hypot.f64 1 (*.f64 x.re (sqrt.f64 3))) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x.re (sqrt.f64 3) 1) (fma.f64 x.re (sqrt.f64 3) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (cbrt.f64 (pow.f64 x.re 4))) (pow.f64 (cbrt.f64 x.re) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x.re) 1) x.re 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x.re) (pow.f64 (cbrt.f64 x.re) 2)) (cbrt.f64 x.re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x.re) (sqrt.f64 x.re)) (sqrt.f64 x.re) 0)))))

simplify206.0ms (2.6%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
638×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09324
118324
239324
390324
4246324
5825324
61076324
71490324
81590324
91725324
101894324
112137324
122450324
132822324
143282324
153867324
164575324
175435324
185859324
196173324
206481324
216563324
226599324
Stop Event
node limit
Counts
161 → 128
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (pow.f64 x.re 2))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 3 (*.f64 x.re x.re))

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
0.1b
(*.f64 x.re (*.f64 x.re x.im))
0.2b
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
Compiler

Compiled 33 to 10 computations (69.7% saved)

series9.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
x.im
@-inf
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
1.0ms
x.re
@0
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
1.0ms
x.re
@inf
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
0.0ms
x.im
@inf
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
0.0ms
x.im
@0
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))

rewrite95.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
929×pow1_binary64
865×add-log-exp_binary64
864×log1p-expm1-u_binary64
864×expm1-log1p-u_binary64
848×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0827
117627
2240327
Stop Event
node limit
Counts
3 → 70
Calls
Call 1
Inputs
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)) (/.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re x.im) (+.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re x.im) (+.f64 (*.f64 x.re 2) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)) (cbrt.f64 (*.f64 9 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 9 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2))) (cbrt.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 3) (*.f64 x.re (sqrt.f64 x.im))) (*.f64 (sqrt.f64 3) (*.f64 x.re (sqrt.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3))) (/.f64 1 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (-.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)) (/.f64 1 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 x.re) (*.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 x.re x.im)) x.re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 x.re x.re)) x.im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re x.im))) 2)) (cbrt.f64 (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 x.re (sqrt.f64 x.im))) (*.f64 x.re (sqrt.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (-.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 2))) (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1) (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3))) (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (-.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3))) (+.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (-.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))) (neg.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) (-.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1))) (neg.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4) (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2)) (-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)) (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 3) (*.f64 x.re (sqrt.f64 x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re (*.f64 x.re x.im) (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.im) x.re (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (*.f64 x.re x.im)) 2 (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) x.im (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re x.im))) 2) (cbrt.f64 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))) 2) (cbrt.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.im)) (*.f64 x.re (sqrt.f64 x.im)) (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 2)) (*.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 2)) (*.f64 x.re (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re 2) (*.f64 x.re x.im) (*.f64 x.re (*.f64 x.re x.im)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.re (*.f64 x.re x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 x.im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 x.re x.im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 x.re (sqrt.f64 x.im)) (sqrt.f64 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 8 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2))))))))

simplify89.0ms (1.1%)

Algorithm
egg-herbie
Rules
772×fma-neg_binary64
694×unswap-sqr_binary64
564×unsub-neg_binary64
398×distribute-rgt-neg-in_binary64
375×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022648
159648
2156648
3517648
41694648
53639648
65774648
77061648
Stop Event
node limit
Counts
142 → 79
Calls
Call 1
Inputs
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 (*.f64 x.re x.re) x.im)
(*.f64 x.re (*.f64 x.re x.im))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))
(*.f64 2 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 2 x.im))
(*.f64 x.re (*.f64 2 (*.f64 x.re x.im)))

localize21.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 x.re x.im) x.im)
0.1b
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
0.2b
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
5.6b
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
Compiler

Compiled 71 to 26 computations (63.4% saved)

series6.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
x.re
@-inf
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
0.0ms
x.re
@0
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
0.0ms
x.im
@inf
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
0.0ms
x.im
@0
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
0.0ms
x.im
@-inf
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))

rewrite78.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
775×log-prod_binary64
352×fma-neg_binary64
252×expm1-udef_binary64
252×log1p-udef_binary64
235×pow3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01438
132335
2451335
Stop Event
node limit
Counts
2 → 113
Calls
Call 1
Inputs
(*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (*.f64 x.im (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (*.f64 x.im (-.f64 x.re x.im))) (*.f64 x.re (*.f64 x.im (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) x.re) (*.f64 (*.f64 x.im (-.f64 x.re x.im)) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) x.im) (*.f64 (*.f64 x.im (-.f64 x.re x.im)) x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 0 (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (/.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3)) (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))) (neg.f64 (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x.re 3) (pow.f64 x.im 3)) (*.f64 x.im (-.f64 x.re x.im))) (fma.f64 x.re x.re (*.f64 x.im (-.f64 x.im x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (-.f64 x.re x.im))) (-.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) (+.f64 (pow.f64 x.re 3) (pow.f64 x.im 3))) (fma.f64 x.re x.re (*.f64 x.im (-.f64 x.im x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (-.f64 x.re x.im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.im) (*.f64 x.im (-.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 x.re x.im) (*.f64 x.im (+.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (-.f64 x.re x.im)) (+.f64 x.re x.im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 2) (*.f64 (cbrt.f64 (*.f64 x.im (-.f64 x.re x.im))) (+.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 x.re x.im) 2)) (*.f64 (cbrt.f64 (+.f64 x.re x.im)) (*.f64 x.im (-.f64 x.re x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im (-.f64 x.re x.im))) (*.f64 (sqrt.f64 (*.f64 x.im (-.f64 x.re x.im))) (+.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 x.re x.im)) (*.f64 (sqrt.f64 (+.f64 x.re x.im)) (*.f64 x.im (-.f64 x.re x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (/.f64 1 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (/.f64 1 (neg.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) x.im) (-.f64 x.re x.im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) (pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 2)) (cbrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.re x.im) (sqrt.f64 (*.f64 x.im (-.f64 x.re x.im)))) (sqrt.f64 (*.f64 x.im (-.f64 x.re x.im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) (cbrt.f64 (pow.f64 (+.f64 x.re x.im) 2))) (cbrt.f64 (+.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.im (-.f64 x.re x.im)) (sqrt.f64 (+.f64 x.re x.im))) (sqrt.f64 (+.f64 x.re x.im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) 1) x.im 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (pow.f64 (cbrt.f64 x.im) 2)) (cbrt.f64 x.im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (sqrt.f64 x.im)) (sqrt.f64 x.im) 0)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) (/.f64 (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.im (+.f64 (*.f64 2 (*.f64 x.re x.re)) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) (pow.f64 (cbrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) 2) (cbrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) (sqrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2)) (/.f64 1 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3)) (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3)) (+.f64 (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (+.f64 x.re x.im) (*.f64 (*.f64 x.im (-.f64 x.re x.im)) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2)) (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2))) (neg.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 0 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 3)) (+.f64 0 (-.f64 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 2) (*.f64 0 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 2)) (-.f64 0 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2) (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (*.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (-.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))) (+.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 3) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x.im (-.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) (-.f64 (pow.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) 2) (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (pow.f64 (exp.f64 x.im) (*.f64 2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im)) (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))) (pow.f64 (pow.f64 (exp.f64 x.im) (-.f64 x.re x.im)) (+.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.im) (*.f64 2 (*.f64 x.re x.re))) (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))) (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (*.f64 2 (*.f64 x.re x.re)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.re x.im) (*.f64 x.im (-.f64 x.re x.im)) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.im (-.f64 x.re x.im)) (+.f64 x.re x.im) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (*.f64 x.re x.re)) x.im (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) 2) (cbrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)) 2)) (cbrt.f64 (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (sqrt.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x.re (sqrt.f64 2)) (sqrt.f64 x.im)) (*.f64 (*.f64 x.re (sqrt.f64 2)) (sqrt.f64 x.im)) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im (*.f64 x.re (*.f64 (+.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.im) (+.f64 x.re x.re) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))))))

simplify58.0ms (0.7%)

Algorithm
egg-herbie
Rules
640×associate-*l*_binary64
577×distribute-rgt-neg-in_binary64
558×fma-def_binary64
478×distribute-lft-neg-in_binary64
456×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
050762
1162522
2536522
31302522
44813522
Stop Event
node limit
Counts
161 → 138
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) x.im)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (pow.f64 x.re 2) x.im))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
Outputs
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) x.im)
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 x.im (*.f64 x.re x.re))
(*.f64 (*.f64 x.im x.re) x.re)
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (pow.f64 x.re 2) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(+.f64 (*.f64 (pow.f64 x.re 2) x.im) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 x.re x.re) x.im (fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 (*.f64 x.im x.re) x.re) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re x.re)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (+.f64 (*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 x.im) x.im) (pow.f64 x.re 2)) (+.f64 (*.f64 (+.f64 (pow.f64 x.im 2) (*.f64 -1 (pow.f64 x.im 2))) x.re) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 3 (*.f64 (*.f64 x.im x.re) x.re))
(*.f64 (*.f64 3 x.re) (*.f64 x.im x.re))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3)))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -2 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.re 2))) x.im)) (+.f64 (*.f64 -1 (*.f64 (+.f64 x.re (*.f64 -1 x.re)) (pow.f64 x.im 2))) (*.f64 -1 (pow.f64 x.im 3))))
(fma.f64 (*.f64 0 (*.f64 x.im x.im)) x.re (fma.f64 (*.f64 x.re x.re) (*.f64 3 x.im) (neg.f64 (pow.f64 x.im 3))))
(-.f64 (*.f64 3 (*.f64 (*.f64 x.im x.re) x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 3 x.re) (*.f64 x.im x.re)) (pow.f64 x.im 3))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))

eval177.0ms (2.2%)

Compiler

Compiled 12434 to 4926 computations (60.4% saved)

prune98.0ms (1.2%)

Pruning

15 alts after pruning (12 fresh and 3 done)

PrunedKeptTotal
New63610646
Fresh527
Picked101
Done437
Total64615661
Error
0b
Counts
661 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
45.1b
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
22.4b
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
25.6b
(pow.f64 (neg.f64 x.im) 3)
19.5b
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
5.7b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
25.0b
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
25.0b
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
19.5b
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
15.5b
(+.f64 (+.f64 0 (/.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (-.f64 x.re x.im))) (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
40.2b
(pow.f64 (*.f64 (sqrt.f64 (*.f64 x.im 3)) x.re) 2)
5.7b
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
19.5b
(fma.f64 (*.f64 x.re x.im) x.re (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))
19.5b
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
19.5b
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
29.2b
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
Compiler

Compiled 345 to 213 computations (38.3% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))
0.0b
(*.f64 2 (*.f64 x.re x.re))
0.1b
(+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))
5.3b
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
Compiler

Compiled 51 to 15 computations (70.6% saved)

series8.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
3.0ms
x.re
@0
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
1.0ms
x.im
@0
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
0.0ms
x.im
@inf
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
0.0ms
x.re
@inf
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
0.0ms
x.im
@-inf
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))

rewrite81.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
608×log-prod_binary64
496×pow-prod-down_binary64
376×fma-neg_binary64
312×pow2_binary64
215×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01048
123944
2372444
Stop Event
node limit
Counts
3 → 111
Calls
Call 1
Inputs
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))
(*.f64 2 (*.f64 x.re x.re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)) (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) 1) (*.f64 (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.im) (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) 3) (*.f64 (pow.f64 x.im 3) (*.f64 8 (pow.f64 x.re 6)))) (+.f64 (pow.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) 2) (-.f64 (pow.f64 (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)) 2) (*.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) 2) (pow.f64 (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)) 2)) (-.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6))) x.im) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4))) x.im) (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6)))) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x.im (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4)))) (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.im) (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im))) (exp.f64 (*.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.im (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.im (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) x.im (*.f64 2 (*.f64 (*.f64 x.re x.re) x.im)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x.re x.re) (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re)))) (/.f64 (*.f64 4 (pow.f64 x.re 4)) (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 2) (cbrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) (sqrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6))) (/.f64 1 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4))) (/.f64 1 (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re))) (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6))) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6))) (+.f64 (*.f64 4 (pow.f64 x.re 4)) (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4))) (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6)))) (neg.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4)))) (neg.f64 (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.re 6) (pow.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re))) 3)) (+.f64 (pow.f64 x.re 4) (+.f64 (pow.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re))) 2) (*.f64 (*.f64 x.re x.re) (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x.re 4) (pow.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re))) 2)) (+.f64 (*.f64 x.re x.re) (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 4 (pow.f64 x.re 4)) (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2)) (-.f64 (*.f64 x.re (*.f64 x.re 2)) (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (-.f64 (*.f64 4 (pow.f64 x.re 4)) (*.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2))))) (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 3) (*.f64 8 (pow.f64 x.re 6)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 -2 (*.f64 x.re x.re))) (-.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) 2) (*.f64 4 (pow.f64 x.re 4)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (exp.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x.re x.re))) (/.f64 (pow.f64 (exp.f64 x.im) x.im) (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))) (pow.f64 (exp.f64 x.re) (*.f64 x.re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im)) (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))) (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 x.re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 x.re 2)))) (pow.f64 (exp.f64 (+.f64 x.im x.re)) (-.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 x.re 2)))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) (exp.f64 (fma.f64 (neg.f64 x.im) x.im (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)))) (exp.f64 (fma.f64 (neg.f64 x.im) x.im (*.f64 x.im x.im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (log.f64 (pow.f64 (exp.f64 (*.f64 x.re x.re)) 3)) (*.f64 x.im x.im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x.re x.re (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 2 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re x.re) 1 (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re x.re) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x.re (*.f64 x.re 2)) (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 4 (pow.f64 x.re 4))) (cbrt.f64 (*.f64 x.re (*.f64 x.re 2))) (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) 2) (cbrt.f64 (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im))) (*.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x.re x.re)) (*.f64 (cbrt.f64 x.re) x.re) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x.re) x.re) (cbrt.f64 (*.f64 x.re x.re)) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 2)) (*.f64 x.re (sqrt.f64 2)) (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (hypot.f64 x.re (sqrt.f64 (*.f64 x.im (neg.f64 x.im)))) (*.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x.re) (*.f64 x.re (sqrt.f64 x.re)) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 x.im x.re) (-.f64 x.re x.im) (*.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re 2) x.re (*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (sqrt.f64 x.re)) (sqrt.f64 x.re) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x.re (cbrt.f64 (*.f64 x.re x.re))) (cbrt.f64 x.re) (neg.f64 (+.f64 (*.f64 x.im x.im) (*.f64 -2 (*.f64 x.re x.re)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re x.re) (*.f64 x.re x.re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x.re (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x.re (*.f64 x.re 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 x.re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4 (pow.f64 x.re 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (sqrt.f64 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 8 (pow.f64 x.re 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 4 (pow.f64 x.re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.re) (*.f64 x.re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x.re (*.f64 x.re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 8 (pow.f64 x.re 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 x.re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 x.re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 x.re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x.re (*.f64 x.re 2))) 1))))))

simplify60.0ms (0.8%)

Algorithm
egg-herbie
Rules
691×distribute-rgt-neg-in_binary64
671×unswap-sqr_binary64
604×fma-neg_binary64
578×distribute-lft-neg-in_binary64
305×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024693
165693
2147693
3416693
41683693
54000693
Stop Event
node limit
Counts
171 → 131
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 -1 (pow.f64 x.im 3))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(*.f64 3 (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(*.f64 3 (pow.f64 x.re 2))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(*.f64 -1 (pow.f64 x.im 2))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (pow.f64 x.re 2))
Outputs
(*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im)
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 (*.f64 x.re x.im) 3))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2)) x.im) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)) (*.f64 -1 (pow.f64 x.im 3)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 (*.f64 x.re x.im) 3))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 x.im (*.f64 (*.f64 x.re x.re) 3))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 x.re (*.f64 (*.f64 x.re x.im) 3))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 3)) (*.f64 3 (*.f64 (pow.f64 x.re 2) x.im)))
(fma.f64 3 (*.f64 (*.f64 x.re x.re) x.im) (neg.f64 (pow.f64 x.im 3)))
(-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 (*.f64 x.re x.im) 3)) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 (*.f64 x.re x.re) 3)) (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 3 (pow.f64 x.re 2)) (*.f64 -1 (pow.f64 x.im 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) 3)
(*.f64 x.re (*.f64 x.re 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(*.f64 3 (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) 3)
(*.f64 x.re (*.f64 x.re 3))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 -1 (pow.f64 x.im 2)) (*.f64 3 (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (pow.f64 x.re 2))
(*.f64 (*.f64 x.re x.re) 3)
(*.f64 x.re (*.f64 x.re 3))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(*.f64 -1 (pow.f64 x.im 2))
(neg.f64 (*.f64 x.im x.im))
(*.f64 x.im (neg.f64 x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(+.f64 (*.f64 2 (pow.f64 x.re 2)) (+.f64 (*.f64 -1 (pow.f64 x.im 2)) (pow.f64 x.re 2)))
(fma.f64 3 (*.f64 x.re x.re) (neg.f64 (*.f64 x.im x.im)))
(-.f64 (*.f64 (*.f64 x.re x.re) 3) (*.f64 x.im x.im))
(-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))
(*.f64 2 (pow.f64 x.re 2))
(*.f64 2 (*.f64 x.re x.re))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
0.2b
(*.f64 x.im (*.f64 x.re 3))
Compiler

Compiled 20 to 12 computations (40% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
x.im
@0
(*.f64 x.im (*.f64 x.re 3))
0.0ms
x.im
@-inf
(*.f64 x.im (*.f64 x.re 3))
0.0ms
x.im
@-inf
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
0.0ms
x.re
@0
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
0.0ms
x.re
@inf
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))

rewrite52.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
676×pow1_binary64
623×add-log-exp_binary64
623×log1p-expm1-u_binary64
623×expm1-log1p-u_binary64
609×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
114317
2173017
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.re 3))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.im (*.f64 x.re 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (*.f64 x.re 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (*.f64 x.re 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (*.f64 x.re 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (*.f64 x.re 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (*.f64 x.re 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) x.re) x.im))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (*.f64 x.re 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.im 3) (pow.f64 (*.f64 x.re 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.re 3) 3) (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (*.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (*.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (*.f64 x.re 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 x.im x.re)) (*.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (*.f64 x.re 3)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.im (*.f64 x.re 3)) 3) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.im (*.f64 (*.f64 x.re 3) x.re))))))))

simplify185.0ms (2.3%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
642×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010408
123408
245408
384408
4245408
5820408
61059408
71473408
81573408
91708408
101880408
112125408
122440408
132810408
143269408
153852408
164558408
175420408
185850408
196168408
206472408
216552408
226588408
Stop Event
node limit
Counts
74 → 30
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 x.re x.im))
(*.f64 (*.f64 3 x.re) x.im)
(*.f64 x.im (*.f64 3 x.re))
(*.f64 x.re (*.f64 3 x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 x.im (*.f64 x.re x.re)))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.im) (*.f64 3 x.re))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
Compiler

Compiled 18 to 9 computations (50% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x.re
@0
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
0.0ms
x.re
@inf
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
0.0ms
x.im
@-inf
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
0.0ms
x.re
@-inf
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
0.0ms
x.im
@0
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
681×pow1_binary64
627×add-log-exp_binary64
627×log1p-expm1-u_binary64
627×expm1-log1p-u_binary64
613×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114310
2171510
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 x.re) x.im) (*.f64 3 x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 3 x.re) 3) (pow.f64 (*.f64 x.re x.im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 x.re x.im) 3) (pow.f64 (*.f64 3 x.re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 x.im (*.f64 3 x.re)))))))))

simplify165.0ms (2.1%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
640×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
237240
383240
4223240
5736240
6997240
71411240
81511240
91646240
101818240
112061240
122374240
132744240
143202240
153791240
164499240
175361240
185787240
196103240
206411240
216489240
226523240
Stop Event
node limit
Counts
37 → 15
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 x.re (*.f64 x.re x.im))
0.2b
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
Compiler

Compiled 20 to 7 computations (65% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x.re
@0
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
0.0ms
x.im
@-inf
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
0.0ms
x.re
@inf
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
0.0ms
x.im
@inf
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
0.0ms
x.re
@-inf
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)

rewrite47.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
660×pow1_binary64
607×add-log-exp_binary64
607×log1p-expm1-u_binary64
607×expm1-log1p-u_binary64
595×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114210
2166910
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 3) (*.f64 x.re (sqrt.f64 x.im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 (*.f64 x.re (*.f64 x.re x.im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 x.re (*.f64 x.re x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))))))))

simplify164.0ms (2.1%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
640×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
237240
383240
4223240
5736240
6997240
71411240
81511240
91646240
101818240
112061240
122374240
132744240
143202240
153791240
164499240
175361240
185787240
196103240
206411240
216489240
226523240
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
Outputs
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))
(*.f64 3 (*.f64 (pow.f64 x.re 2) x.im))
(*.f64 3 (*.f64 (*.f64 x.re x.re) x.im))
(*.f64 3 (*.f64 x.re (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 x.re (*.f64 3 x.re)))
(*.f64 (*.f64 x.re x.re) (*.f64 3 x.im))
(*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))

localize16.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 x.im (neg.f64 x.im)) x.im)
5.6b
(*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))
Compiler

Compiled 46 to 20 computations (56.5% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x.im
@0
(*.f64 (*.f64 x.im (neg.f64 x.im)) x.im)
0.0ms
x.im
@inf
(*.f64 (*.f64 x.im (neg.f64 x.im)) x.im)
0.0ms
x.im
@-inf
(*.f64 (*.f64 x.im (neg.f64 x.im)) x.im)

rewrite42.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
329×pow1_binary64
317×add-sqr-sqrt_binary64
311×*-un-lft-identity_binary64
304×add-log-exp_binary64
303×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
059
11044
213574
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(*.f64 (*.f64 x.im (neg.f64 x.im)) x.im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x.im 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 x.im 3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x.im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x.im 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x.im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 x.im 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x.im 6) (pow.f64 x.im 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (-.f64 0 (pow.f64 x.im 3)) 3) (pow.f64 (+.f64 0 (fma.f64 x.im x.im (*.f64 0 x.im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 x.im 3)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 x.im 3)) (+.f64 1 (pow.f64 x.im 3))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 x.im 3)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x.im 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x.im 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x.im 6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x.im 9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im x.im) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x.im) 9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x.im 3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 x.im) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 3 (log.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 3 (log.f64 x.im))) 2)) (cbrt.f64 (*.f64 3 (log.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 3 (log.f64 x.im)))) (sqrt.f64 (*.f64 3 (log.f64 x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 x.im 3))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x.im 6))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 x.im 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x.im 9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 x.im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x.im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 x.im 9)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 x.im 3/2)) 2))))))

simplify89.0ms (1.1%)

Algorithm
egg-herbie
Rules
912×fma-def_binary64
685×fma-neg_binary64
600×distribute-lft-neg-in_binary64
583×distribute-rgt-neg-in_binary64
455×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0672
11672
24472
37372
414372
542472
6144772
7273072
8456072
9557172
10629272
11711772
Stop Event
node limit
Counts
41 → 30
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
Outputs
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))
(*.f64 -1 (pow.f64 x.im 3))
(neg.f64 (pow.f64 x.im 3))

eval108.0ms (1.4%)

Compiler

Compiled 8293 to 3406 computations (58.9% saved)

prune63.0ms (0.8%)

Pruning

12 alts after pruning (7 fresh and 5 done)

PrunedKeptTotal
New4073410
Fresh347
Picked101
Done257
Total41312425
Error
0b
Counts
425 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
25.6b
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
40.2b
(pow.f64 (*.f64 (sqrt.f64 (*.f64 x.im 3)) x.re) 2)
5.7b
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
25.6b
(pow.f64 (neg.f64 x.im) 3)
5.7b
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
19.5b
(fma.f64 (*.f64 x.re x.im) x.re (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))
19.5b
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
19.5b
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
19.5b
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
25.0b
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
5.7b
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
15.5b
(+.f64 (+.f64 0 (/.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (-.f64 x.re x.im))) (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
Compiler

Compiled 152 to 93 computations (38.8% saved)

regimes63.0ms (0.8%)

Counts
35 → 1
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (+.f64 0 (/.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (-.f64 x.re x.im))) (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(/.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im))) (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))) (-.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))))
(pow.f64 (neg.f64 x.im) 3)
(pow.f64 (neg.f64 x.im) 3)
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(-.f64 (*.f64 x.im (*.f64 x.re (*.f64 x.re 3))) (pow.f64 x.im 3))
(fma.f64 (*.f64 x.re x.im) x.re (*.f64 x.re (*.f64 (*.f64 x.re x.im) 2)))
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (+.f64 x.re x.re) (*.f64 x.im x.re)))
(pow.f64 (*.f64 (sqrt.f64 (*.f64 x.im 3)) x.re) 2)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 3)
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (/.f64 (*.f64 2 (pow.f64 (*.f64 x.re x.im) 3)) (+.f64 (pow.f64 (*.f64 x.re x.im) 2) 0)) x.re))
(+.f64 (fma.f64 (pow.f64 (cbrt.f64 x.im) 2) (*.f64 (cbrt.f64 x.im) (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 (fma.f64 x.im (neg.f64 x.im) (*.f64 x.im x.im)) x.im)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Outputs
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
Calls

3 calls:

21.0ms
x.re
19.0ms
x.im
12.0ms
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Results
ErrorSegmentsBranch
0.2b1x.re
0.2b1x.im
0.2b1(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 491 to 198 computations (59.7% saved)

regimes45.0ms (0.6%)

Counts
27 → 1
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (+.f64 0 (/.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (-.f64 x.re x.im))) (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(/.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 x.re (*.f64 x.re x.im))) (*.f64 (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))) (-.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im)))))
(pow.f64 (neg.f64 x.im) 3)
(pow.f64 (neg.f64 x.im) 3)
(*.f64 (pow.f64 x.re 2) (+.f64 x.im (*.f64 2 x.im)))
Outputs
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Calls

3 calls:

14.0ms
x.im
13.0ms
x.re
11.0ms
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Results
ErrorSegmentsBranch
0.2b1x.re
0.2b1x.im
0.2b1(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 362 to 148 computations (59.1% saved)

regimes84.0ms (1.1%)

Counts
21 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

3 calls:

29.0ms
x.im
28.0ms
x.re
21.0ms
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Results
ErrorSegmentsBranch
0.2b3x.re
0.4b3x.im
0.2b3(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Compiler

Compiled 256 to 115 computations (55.1% saved)

bsearch48.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
4.952149493142814e+77
1.107201762581277e+80
25.0ms
-2.1902738719736264e+116
-1.6142798987345884e+112
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes72.0ms (0.9%)

Counts
20 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

2 calls:

38.0ms
x.im
28.0ms
x.re
Results
ErrorSegmentsBranch
0.2b3x.re
0.4b3x.im
Compiler

Compiled 216 to 103 computations (52.3% saved)

bsearch33.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
4.952149493142814e+77
1.107201762581277e+80
7.0ms
-2.9694239705063192e+156
-7.04565265212977e+147
Compiler

Compiled 58 to 36 computations (37.9% saved)

regimes59.0ms (0.7%)

Counts
19 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

2 calls:

27.0ms
x.im
27.0ms
x.re
Results
ErrorSegmentsBranch
0.2b3x.re
0.4b3x.im
Compiler

Compiled 197 to 93 computations (52.8% saved)

bsearch48.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
4.952149493142814e+77
1.107201762581277e+80
24.0ms
-1.5576967274412496e+97
-4.506752299480422e+89
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes61.0ms (0.8%)

Counts
18 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re))))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

2 calls:

29.0ms
x.im
27.0ms
x.re
Results
ErrorSegmentsBranch
0.2b3x.re
0.4b3x.im
Compiler

Compiled 180 to 87 computations (51.7% saved)

bsearch48.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
4.952149493142814e+77
1.107201762581277e+80
24.0ms
-429.23650920572146
-2.9234031348856438e-5
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes53.0ms (0.7%)

Counts
16 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.im (-.f64 (+.f64 1 (*.f64 3 (*.f64 x.re x.re))) 1))
(-.f64 (+.f64 1 (*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))) 1)
(+.f64 (+.f64 x.re x.re) (*.f64 (+.f64 x.im x.re) (*.f64 x.im (-.f64 x.re x.im))))
(+.f64 (*.f64 x.re (*.f64 x.re x.im)) (*.f64 2 (*.f64 x.re (*.f64 x.re x.im))))
(+.f64 (*.f64 (*.f64 x.im (neg.f64 x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2))))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

2 calls:

25.0ms
x.re
24.0ms
x.im
Results
ErrorSegmentsBranch
0.2b3x.re
0.4b3x.im
Compiler

Compiled 150 to 77 computations (48.7% saved)

bsearch51.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
1.6960127640473962e+62
2.806818608333645e+73
24.0ms
-1.6142798987345884e+112
-1.5576967274412496e+97
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes43.0ms (0.5%)

Counts
10 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 3 (*.f64 x.re x.im)))
(*.f64 x.im (*.f64 3 (*.f64 x.re x.re)))
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))
Calls

2 calls:

23.0ms
x.re
17.0ms
x.im
Results
ErrorSegmentsBranch
3.5b3x.re
7.1b3x.im
Compiler

Compiled 77 to 42 computations (45.5% saved)

bsearch49.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
24.0ms
8.815162233884706e-77
6.11364627249094e-67
25.0ms
-4.754595221657154e-52
-4.288385177029261e-57
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes35.0ms (0.4%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 (*.f64 x.re (*.f64 x.re x.im)) 3)
Outputs
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))
Calls

2 calls:

18.0ms
x.re
15.0ms
x.im
Results
ErrorSegmentsBranch
3.5b3x.re
7.1b3x.im
Compiler

Compiled 49 to 28 computations (42.9% saved)

bsearch49.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
8.815162233884706e-77
6.11364627249094e-67
24.0ms
-4.754595221657154e-52
-4.288385177029261e-57
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes28.0ms (0.4%)

Accuracy

Total -41.0b remaining (-1172.1%)

Threshold costs -41.0b (-1172.1%)

Counts
4 → 3
Calls
Call 1
Inputs
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 (*.f64 x.re x.re) (*.f64 x.im 3))
Outputs
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))
Calls

2 calls:

13.0ms
x.im
13.0ms
x.re
Results
ErrorSegmentsBranch
3.5b3x.re
7.1b3x.im
Compiler

Compiled 35 to 21 computations (40% saved)

bsearch49.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
8.815162233884706e-77
6.11364627249094e-67
25.0ms
-4.754595221657154e-52
-4.288385177029261e-57
Compiler

Compiled 26 to 15 computations (42.3% saved)

simplify20.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
082452
1126452
2140452
3151452
4155452
5156452
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(if (<=.f64 x.re -219027387197362641924450523547209072786369700326046629223217942877166143961175407350546653742785968481334968228773888) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -15576967274412495564951678903145706956336545783643732664657506534009283560901173952049330620727296) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -7551208527002733/17592186044416) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -16142798987345884257027400443566352016801282628656334906611562919252344801518415949056254496699043390615206232064) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 169601276404739621675119901933890256291720077495923492696096768) (*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))))
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
Outputs
(-.f64 (*.f64 x.re (*.f64 3 (*.f64 x.re x.im))) (pow.f64 x.im 3))
(+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re))
(+.f64 (*.f64 (+.f64 x.re x.im) (*.f64 x.im (-.f64 x.re x.im))) (*.f64 x.re (+.f64 (*.f64 x.re x.im) (*.f64 x.re x.im))))
(if (<=.f64 x.re -219027387197362641924450523547209072786369700326046629223217942877166143961175407350546653742785968481334968228773888) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -219027387197362641924450523547209072786369700326046629223217942877166143961175407350546653742785968481334968228773888) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 x.re (+.f64 (*.f64 x.re x.im) (*.f64 x.re x.im))) (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (+.f64 0 (*.f64 (+.f64 x.re x.im) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -999999999999999980835596172437374590573120014030318793091164810154100112203678582976298268616221151962702060266176005440567032331208403948233373515776) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 (+.f64 x.re x.im) (*.f64 x.im (-.f64 x.re x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -15576967274412495564951678903145706956336545783643732664657506534009283560901173952049330620727296) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -15576967274412495564951678903145706956336545783643732664657506534009283560901173952049330620727296) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (+.f64 (*.f64 x.im (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (*.f64 x.re (*.f64 x.re 2)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -7551208527002733/17592186044416) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 2 (*.f64 x.re x.re)))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -7551208527002733/17592186044416) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 495214949314281362504879255645691764840708505575328245870078794697576896528384) (*.f64 x.im (+.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 (*.f64 x.re x.re) 2))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -16142798987345884257027400443566352016801282628656334906611562919252344801518415949056254496699043390615206232064) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 169601276404739621675119901933890256291720077495923492696096768) (*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -16142798987345884257027400443566352016801282628656334906611562919252344801518415949056254496699043390615206232064) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 169601276404739621675119901933890256291720077495923492696096768) (*.f64 x.im (-.f64 (*.f64 x.re (*.f64 x.re 3)) (*.f64 x.im x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (neg.f64 (*.f64 (*.f64 x.im x.im) x.im)) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) (*.f64 x.re (*.f64 x.im (*.f64 x.re 3)))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 (*.f64 3 x.re) (*.f64 x.re x.im))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (neg.f64 (*.f64 (*.f64 x.im x.im) x.im)) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3)) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) (*.f64 (*.f64 x.re x.im) (*.f64 x.re 3))))
(if (<=.f64 x.re -12818363359976614/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 x.re (*.f64 x.re (*.f64 x.im 3))) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.re (*.f64 x.im 3)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im))) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x.im (*.f64 x.im (neg.f64 x.im))) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im))) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (neg.f64 (*.f64 (*.f64 x.im x.im) x.im)) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))))
(if (<=.f64 x.re -6409181679988307/13479973333575319897333507543509815336818572211270286240551805124608) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im))) (if (<=.f64 x.re 5746176834447431/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) (*.f64 x.re (*.f64 x.re (*.f64 3 x.im)))))
(*.f64 x.im (*.f64 x.im (neg.f64 x.im)))
(neg.f64 (*.f64 (*.f64 x.im x.im) x.im))
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im))
Compiler

Compiled 331 to 198 computations (40.2% saved)

soundness298.0ms (3.8%)

Algorithm
egg-herbie
Rules
657×associate-*l*_binary64
533×fma-def_binary64
472×distribute-rgt-neg-in_binary64
467×associate-*r*_binary64
407×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0291017
1881017
22421017
37531017
426841017
545701017
656671017
771571017
045876
1143738
2454684
31164684
44677684
Stop Event
node limit
node limit
Compiler

Compiled 143 to 103 computations (28% saved)

end217.0ms (2.7%)

Compiler

Compiled 311 to 146 computations (53.1% saved)

Profiling

Loading profile data...