Details

Time bar (total: 2.4s)

analyze117.0ms (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
40.6%46.8%12.6%8
45.3%35.9%18.8%9
46.8%25%28.2%10
48.8%19.5%31.7%11
51.7%13.1%35.2%12
Compiler

Compiled 22 to 12 computations (45.5% saved)

sample1.2s (51.7%)

Results
1.0s8244×body64valid
162.0ms1313×body64invalid
3.0ms12×body128valid

preprocess53.0ms (2.3%)

Algorithm
egg-herbie
Rules
648×sub-neg_binary64
475×distribute-neg-in_binary64
405×distribute-lft-neg-out_binary64
375×fma-neg_binary64
355×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01752
15850
214046
342732
4125532
5399532
6674432
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.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
(-.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.re))
Outputs
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
(-.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (fma.f64 x.re x.im (*.f64 x.re x.im))))
(-.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (*.f64 x.re (+.f64 x.im x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (*.f64 -2 (*.f64 x.re x.im))))
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re (*.f64 x.im x.im)) -3))
(+.f64 (pow.f64 x.re 3) (*.f64 x.im (*.f64 x.re (*.f64 x.im -3))))
(-.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.im x.re) (*.f64 x.re x.im)) x.re))
(-.f64 (*.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re))) (*.f64 x.re (fma.f64 x.re x.im (*.f64 x.re x.im))))
(fma.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 x.re (neg.f64 (*.f64 x.re (+.f64 x.im x.im)))))
(fma.f64 x.im (-.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) (*.f64 x.re (*.f64 -2 (*.f64 x.re x.im))))
(+.f64 (pow.f64 x.im 3) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) -3))
(+.f64 (pow.f64 x.im 3) (*.f64 (*.f64 x.re x.re) (*.f64 x.im -3)))
(+.f64 (pow.f64 x.im 3) (*.f64 x.im (*.f64 (*.f64 x.re x.re) -3)))
Compiler

Compiled 21 to 11 computations (47.6% saved)

simplify47.0ms (2%)

Algorithm
egg-herbie
Rules
677×unsub-neg_binary64
594×fma-neg_binary64
507×sub-neg_binary64
507×fma-def_binary64
396×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01226
13125
27823
324116
474514
5258314
6525414
7744014
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.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Outputs
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
(-.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (fma.f64 x.re x.im (*.f64 x.re x.im))))
(-.f64 (*.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))) (*.f64 x.im (*.f64 x.re (+.f64 x.im x.im))))
(fma.f64 x.re (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) (*.f64 x.im (*.f64 -2 (*.f64 x.re x.im))))
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re (*.f64 x.im x.im)) -3))
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))

prune6.0ms (0.3%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
7.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
7.9b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
7.9b
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 97 to 55 computations (43.3% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x.im (*.f64 x.im -3))
7.4b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))

series6.0ms (0.2%)

Counts
2 → 36
Calls

9 calls:

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

rewrite46.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
805×pow1_binary64
747×add-log-exp_binary64
747×log1p-expm1-u_binary64
747×expm1-log1p-u_binary64
730×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
118921
2206821
Stop Event
node limit
Counts
2 → 35
Calls
Call 1
Inputs
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
(*.f64 x.im (*.f64 x.im -3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x.re 3) (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) (pow.f64 x.re 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) 1) (pow.f64 x.re 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x.re (+.f64 (*.f64 -3 (*.f64 x.im x.im)) (*.f64 x.re x.re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) (pow.f64 (cbrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) 2) (cbrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) (sqrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) 3) (pow.f64 (pow.f64 x.re 3) 3)) (+.f64 (*.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))) (-.f64 (pow.f64 x.re 6) (*.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) (pow.f64 x.re 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))) (pow.f64 x.re 6)) (-.f64 (*.f64 x.re (*.f64 -3 (*.f64 x.im x.im))) (pow.f64 x.re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -3 (*.f64 x.im x.im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -3 (*.f64 x.im x.im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -3 (*.f64 x.im x.im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -3 (*.f64 x.im x.im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x.im (sqrt.f64 -3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 -3 (*.f64 x.im x.im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x.im) (*.f64 x.im -3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -3 (*.f64 x.im x.im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x.im 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 x.im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -3 (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -3 (*.f64 x.im x.im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -3 (*.f64 x.im x.im))))))))

simplify143.0ms (6%)

Algorithm
egg-herbie
Rules
1033×sqr-pow_binary64
726×fabs-mul_binary64
725×cube-prod_binary64
450×unswap-sqr_binary64
395×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
012414
130378
263378
3131378
4335378
5980378
61396378
72128378
82287378
92510378
102782378
113178378
123712378
134371378
145186378
155795378
166226378
176611378
186833378
196945378
207786378
Stop Event
node limit
Counts
71 → 42
Calls
Call 1
Inputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (pow.f64 x.im 2))
Outputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 x.re (*.f64 (*.f64 -3 x.im) x.im))
(*.f64 x.re (*.f64 x.im (*.f64 -3 x.im)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 x.re (*.f64 (*.f64 -3 x.im) x.im))
(*.f64 x.re (*.f64 x.im (*.f64 -3 x.im)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 x.re (*.f64 (*.f64 -3 x.im) x.im))
(*.f64 x.re (*.f64 x.im (*.f64 -3 x.im)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 x.re (*.f64 x.im (*.f64 -3 x.im)) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 x.re (*.f64 -3 (*.f64 x.im x.im)) (pow.f64 x.re 3))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))
(*.f64 -3 (pow.f64 x.im 2))
(*.f64 -3 (*.f64 x.im x.im))
(*.f64 (*.f64 -3 x.im) x.im)
(*.f64 x.im (*.f64 -3 x.im))

prune49.0ms (2.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New38442
Fresh101
Picked011
Done000
Total39544
Error
7.6b
Counts
44 → 5
Alt Table
StatusErrorProgram
7.9b
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
7.9b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
7.9b
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))
28.4b
(pow.f64 x.re 3)
26.7b
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
Compiler

Compiled 679 to 425 computations (37.4% saved)

localize6.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -3 (pow.f64 x.im 2))
7.4b
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))

series3.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

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

rewrite44.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
818×pow1_binary64
760×add-log-exp_binary64
759×log1p-expm1-u_binary64
759×expm1-log1p-u_binary64
742×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify131.0ms (5.5%)

Algorithm
egg-herbie
Rules
1024×sqr-pow_binary64
722×cube-prod_binary64
720×fabs-mul_binary64
450×unswap-sqr_binary64
390×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
011330
128294
259294
3123294
4296294
5895294
61351294
72083294
82242294
92444294
102708294
113099294
123625294
134279294
145094294
155703294
166136294
176519294
186741294
196851294
207692294
Stop Event
node limit
Counts
57 → 38
Calls
Call 1
Inputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
Outputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im))
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (*.f64 (*.f64 -3 x.re) (*.f64 x.im x.im)) (pow.f64 x.re 3))
(fma.f64 (*.f64 -3 x.re) (*.f64 x.im x.im) (pow.f64 x.re 3))
(fma.f64 (*.f64 x.im x.im) (*.f64 -3 x.re) (pow.f64 x.re 3))
(*.f64 x.re (fma.f64 -3 (*.f64 x.im x.im) (*.f64 x.re x.re)))
(fma.f64 -3 (*.f64 x.re (*.f64 x.im x.im)) (pow.f64 x.re 3))

prune45.0ms (1.9%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New37138
Fresh123
Picked011
Done011
Total38543
Error
7.6b
Counts
43 → 5
Alt Table
StatusErrorProgram
7.9b
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
7.9b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
7.9b
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))
28.4b
(pow.f64 x.re 3)
7.8b
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re -3) (*.f64 x.im x.im)))
Compiler

Compiled 623 to 385 computations (38.2% saved)

localize6.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
8.2b
(*.f64 (*.f64 x.re -3) (*.f64 x.im x.im))

series4.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite38.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
646×pow1_binary64
597×add-log-exp_binary64
597×log1p-expm1-u_binary64
597×expm1-log1p-u_binary64
583×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify131.0ms (5.5%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1104×sqr-pow_binary64
633×fabs-mul_binary64
628×pow-sqr_binary64
611×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
237240
379240
4209240
5723240
6973240
71387240
81487240
91620240
101789240
112030240
122345240
132717240
143174240
153749240
164455240
175317240
185741240
196055240
206363240
216443240
226477240
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
Outputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))

prune21.0ms (0.9%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New11213
Fresh112
Picked011
Done022
Total12618
Error
0.0b
Counts
18 → 6
Alt Table
StatusErrorProgram
7.9b
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
7.9b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
7.9b
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))
34.1b
(+.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 (*.f64 x.re -3))) 2))
7.8b
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re -3) (*.f64 x.im x.im)))
0.2b
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
Compiler

Compiled 290 to 194 computations (33.1% saved)

localize6.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite38.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
678×pow1_binary64
625×add-log-exp_binary64
625×log1p-expm1-u_binary64
625×expm1-log1p-u_binary64
612×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify133.0ms (5.6%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1104×sqr-pow_binary64
633×fabs-mul_binary64
628×pow-sqr_binary64
611×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08240
117240
237240
379240
4209240
5723240
6973240
71387240
81487240
91620240
101789240
112030240
122345240
132717240
143174240
153749240
164455240
175317240
185741240
196055240
206363240
216443240
226477240
Stop Event
node limit
Counts
37 → 15
Calls
Call 1
Inputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
Outputs
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))
(*.f64 -3 (*.f64 x.re (pow.f64 x.im 2)))
(*.f64 -3 (*.f64 x.re (*.f64 x.im x.im)))
(*.f64 x.re (*.f64 (*.f64 x.im x.im) -3))
(*.f64 x.re (*.f64 -3 (*.f64 x.im x.im)))
(*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im))

prune21.0ms (0.9%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New14115
Fresh112
Picked011
Done033
Total15621
Error
0.0b
Counts
21 → 6
Alt Table
StatusErrorProgram
7.9b
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))
7.9b
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
7.9b
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
34.1b
(+.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 (*.f64 x.re -3))) 2))
7.8b
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re -3) (*.f64 x.im x.im)))
0.2b
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
Compiler

Compiled 284 to 201 computations (29.2% saved)

regimes22.0ms (0.9%)

Accuracy

Total -57.2b remaining (-32445.2%)

Threshold costs -57.2b (-32445.2%)

Counts
10 → 1
Calls
Call 1
Inputs
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(+.f64 (pow.f64 x.re 3) (pow.f64 (*.f64 x.im (sqrt.f64 (*.f64 x.re -3))) 2))
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re -3) (*.f64 x.im x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 -3 (*.f64 x.re (pow.f64 x.im 2))))
(fma.f64 x.re (*.f64 -3 (pow.f64 x.im 2)) (pow.f64 x.re 3))
(pow.f64 x.re 3)
(*.f64 (*.f64 x.im x.im) (*.f64 -3 x.re))
(fma.f64 x.re (*.f64 x.im (*.f64 x.im -3)) (pow.f64 x.re 3))
(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Outputs
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
Results
7.0ms0.2bx.re
6.0ms0.2bx.im
5.0ms0.2b(-.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.re) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.im))
Compiler

Compiled 134 to 81 computations (39.6% saved)

simplify2.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
11416
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
Outputs
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 -3 x.im)))
(+.f64 (pow.f64 x.re 3) (*.f64 (*.f64 x.re x.im) (*.f64 x.im -3)))

end16.0ms (0.7%)

Stop Event
fuel
Compiler

Compiled 26 to 18 computations (30.8% saved)

Profiling

Loading profile data...