Details

Time bar (total: 15.2s)

analyze171.0ms (1.1%)

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
50%50%0.1%5
50%50%0.1%6
50%37.5%12.6%7
50%37.5%12.6%8
50%31.2%18.8%9
50%31.2%18.8%10
50%28.1%22%11
50%28.1%22%12
Compiler

Compiled 15 to 12 computations (20% saved)

sample7.1s (47%)

Results
3.6s5144×body1024valid
1.3s2019×body1024invalid
616.0ms1675×body512valid
557.0ms996×body512invalid
467.0ms429×body2048valid
295.0ms1521×body256invalid
217.0ms1008×body256valid

preprocess97.0ms (0.6%)

Algorithm
egg-herbie
Rules
738×div-sub_binary64
692×fma-def_binary64
564×times-frac_binary64
463×associate-/r*_binary64
454×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01936
14036
29536
325536
454134
591534
6181934
7375134
8734934
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 im)) (-.f64 (exp.f64 (-.f64 0 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 im)) (-.f64 (exp.f64 (-.f64 0 re)) (exp.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 im) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (cos.f64 im) (fma.f64 (exp.f64 re) -1/2 (/.f64 1/2 (exp.f64 re))))
Compiler

Compiled 16 to 13 computations (18.8% saved)

simplify76.0ms (0.5%)

Algorithm
egg-herbie
Rules
626×associate-/l*_binary64
546×div-sub_binary64
462×times-frac_binary64
367×associate-/r*_binary64
358×fma-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01218
12318
25218
313418
428217
547417
693117
7239117
8625817
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (cos.f64 re) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 25 to 16 computations (36% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
57.9b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
57.9b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
57.9b
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
Compiler

Compiled 27 to 20 computations (25.9% saved)

localize14.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1/2 (exp.f64 im))
0.0b
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
5.0b
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
Compiler

Compiled 33 to 17 computations (48.5% saved)

series9.0ms (0.1%)

Counts
3 → 40
Calls

12 calls:

TimeVariablePointExpression
1.0ms
re
@inf
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
1.0ms
im
@inf
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
1.0ms
re
@0
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
1.0ms
im
@0
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
1.0ms
im
@inf
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))

rewrite72.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
915×pow1_binary64
842×add-log-exp_binary64
842×log1p-expm1-u_binary64
842×expm1-log1p-u_binary64
825×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify73.0ms (0.5%)

Algorithm
egg-herbie
Rules
669×associate-+l+_binary64
519×associate-+r+_binary64
490×fma-def_binary64
381×fma-neg_binary64
375×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
076807
1232731
2753679
32920642
46254642
Stop Event
node limit
Counts
96 → 89
Calls
Call 1
Inputs
(*.f64 -1 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/2 im)))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 im) (*.f64 -1/12 (pow.f64 im 3)))))
Outputs
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)))
(fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(fma.f64 -1/120 (pow.f64 im 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))
(fma.f64 -1/120 (pow.f64 im 5) (-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7))) im))
(-.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (*.f64 -1/6 (pow.f64 im 3)))) im)
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (-.f64 (*.f64 -1/5040 (pow.f64 im 7)) im)))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))
(fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(fma.f64 -1/2 (exp.f64 im) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (*.f64 re re)) (/.f64 1/2 (exp.f64 im))))
(fma.f64 (exp.f64 im) -1/2 (fma.f64 -1/2 (*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (*.f64 re re)) (/.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1 (*.f64 re (*.f64 -1/2 re))) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(fma.f64 1/24 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (pow.f64 re 4)) (fma.f64 -1/2 (exp.f64 im) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (*.f64 re re)) (/.f64 1/2 (exp.f64 im)))))
(fma.f64 1/24 (*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (pow.f64 re 4)) (fma.f64 (exp.f64 im) -1/2 (fma.f64 -1/2 (*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (*.f64 re re)) (/.f64 1/2 (exp.f64 im)))))
(fma.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (*.f64 1/24 (pow.f64 re 4)) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (+.f64 (+.f64 1 (*.f64 re (*.f64 -1/2 re))) (*.f64 1/24 (pow.f64 re 4))))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (+.f64 (*.f64 -1/2 (exp.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(fma.f64 -1/720 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (pow.f64 re 6)) (fma.f64 1/24 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (pow.f64 re 4)) (fma.f64 -1/2 (exp.f64 im) (fma.f64 -1/2 (*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (*.f64 re re)) (/.f64 1/2 (exp.f64 im))))))
(+.f64 (fma.f64 (exp.f64 im) -1/2 (fma.f64 -1/2 (*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (*.f64 re re)) (/.f64 1/2 (exp.f64 im)))) (*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))))
(fma.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4))) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im)))))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (+.f64 (+.f64 1 (*.f64 re (*.f64 -1/2 re))) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 im (neg.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (*.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (-.f64 (*.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re))) (*.f64 im (cos.f64 re))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))
(*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (-.f64 (fma.f64 (*.f64 -1/120 (cos.f64 re)) (pow.f64 im 5) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))) (*.f64 im (cos.f64 re))))
(+.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/120 (pow.f64 im 5)))) (*.f64 (cos.f64 re) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (-.f64 (*.f64 -1/5040 (pow.f64 im 7)) im))))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 -1/2 (exp.f64 im))))
(*.f64 (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)) (cos.f64 re))
(*.f64 (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(+.f64 1/2 (*.f64 im -1/2))
(fma.f64 im -1/2 1/2)
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/2 im)))
(+.f64 1/2 (fma.f64 1/4 (*.f64 im im) (*.f64 im -1/2)))
(+.f64 1/2 (fma.f64 im -1/2 (*.f64 im (*.f64 im 1/4))))
(fma.f64 im -1/2 (fma.f64 im (*.f64 im 1/4) 1/2))
(fma.f64 im (*.f64 im 1/4) (fma.f64 im -1/2 1/2))
(fma.f64 im -1/2 (fma.f64 1/4 (*.f64 im im) 1/2))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 im) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 1/2 (fma.f64 1/4 (*.f64 im im) (fma.f64 -1/2 im (*.f64 (pow.f64 im 3) -1/12))))
(+.f64 1/2 (fma.f64 1/4 (*.f64 im im) (fma.f64 im -1/2 (*.f64 (pow.f64 im 3) -1/12))))
(+.f64 1/2 (fma.f64 (pow.f64 im 3) -1/12 (*.f64 im (+.f64 -1/2 (*.f64 im 1/4)))))
(+.f64 1/2 (*.f64 im (+.f64 (*.f64 im (+.f64 1/4 (*.f64 im -1/12))) -1/2)))
(+.f64 1/2 (*.f64 im (+.f64 -1/2 (*.f64 im (+.f64 1/4 (*.f64 im -1/12))))))

localize20.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
5.0b
(-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
Compiler

Compiled 40 to 24 computations (40% saved)

series7.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
re
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.0ms
im
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.0ms
im
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.0ms
re
@0
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.0ms
im
@0
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))

rewrite353.0ms (2.3%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
557×pow1_binary64
523×add-log-exp_binary64
521×log1p-expm1-u_binary64
521×expm1-log1p-u_binary64
512×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01228
125228
2344528
0710
11518
222538
01218
125218
2344518
01218
Stop Event
iter limit
node limit
node limit
node limit
Counts
2 → 41
Calls
Call 1
Inputs
(-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 im) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 im) (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 im) (exp.f64 im)) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 im) (exp.f64 im)) (fma.f64 (neg.f64 (cbrt.f64 (exp.f64 im))) (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 im) (exp.f64 im)) (fma.f64 (neg.f64 (sqrt.f64 (exp.f64 im))) (sqrt.f64 (exp.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (exp.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 im) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (exp.f64 im) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) (pow.f64 (cbrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) 2) (cbrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) (sqrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3)) (/.f64 1 (+.f64 (pow.f64 (exp.f64 im) 2) (*.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (/.f64 1 (+.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (-.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (exp.f64 im) 2) (*.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 im)))) (-.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (exp.f64 im) (exp.f64 im)) (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3)) (+.f64 (pow.f64 (exp.f64 im) 2) (*.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (+.f64 (exp.f64 im) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3))) (neg.f64 (+.f64 (pow.f64 (exp.f64 im) 2) (*.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2))) (neg.f64 (+.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (neg.f64 (exp.f64 im)) 3)) (+.f64 (pow.f64 (exp.f64 im) 2) (-.f64 (*.f64 (neg.f64 (exp.f64 im)) (neg.f64 (exp.f64 im))) (*.f64 (exp.f64 im) (neg.f64 (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (*.f64 (neg.f64 (exp.f64 im)) (neg.f64 (exp.f64 im)))) (-.f64 (exp.f64 im) (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (exp.f64 im) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (exp.f64 im) (exp.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (exp.f64 im) (exp.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (exp.f64 im) (exp.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (exp.f64 im) (exp.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (exp.f64 im) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (exp.f64 im) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (cbrt.f64 (exp.f64 im)) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im)) (neg.f64 (exp.f64 im)))))))
((#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))) (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))))

simplify160.0ms (1%)

Algorithm
egg-herbie
Rules
470×unswap-sqr_binary64
408×distribute-rgt-in_binary64
358×*-commutative_binary64
334×fma-def_binary64
318×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
071698
1183696
2507642
31880612
44676612
Stop Event
node limit
Counts
77 → 69
Calls
Call 1
Inputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(+.f64 (*.f64 -1/1440 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
Outputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 -2 im (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5))))
(fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -2 im (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))))
(fma.f64 -2 im (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5)))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(fma.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 re re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(+.f64 (*.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(fma.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 re re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)))
(fma.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (*.f64 re re)))))
(+.f64 (*.f64 -1/1440 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))
(fma.f64 -1/1440 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 4)) (fma.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 re re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/1440 (pow.f64 re 6)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 im (neg.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 (cos.f64 re) -1/6)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 3) -1/6) im))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (*.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (*.f64 (cos.f64 re) -1/120) (pow.f64 im 5) (*.f64 (neg.f64 im) (cos.f64 re))))
(fma.f64 (pow.f64 im 3) (*.f64 (cos.f64 re) -1/6) (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 5) -1/120) im)))
(*.f64 (cos.f64 re) (-.f64 (+.f64 (*.f64 (pow.f64 im 5) -1/120) (*.f64 (pow.f64 im 3) -1/6)) im))
(*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (fma.f64 (pow.f64 im 5) -1/120 (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (-.f64 (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040))) (*.f64 im (cos.f64 re))))
(+.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 5) -1/120) im)) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 3) -1/6))))
(*.f64 (cos.f64 re) (+.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 5) -1/120))))
(*.f64 (cos.f64 re) (+.f64 (fma.f64 (pow.f64 im 5) -1/120 (neg.f64 im)) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 3) -1/6))))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))

eval201.0ms (1.3%)

Compiler

Compiled 2681 to 1421 computations (47% saved)

prune30.0ms (0.2%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1517158
Fresh000
Picked101
Done101
Total1537160
Error
0.2b
Counts
160 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
57.9b
(*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)))
1.4b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
1.6b
(*.f64 (cos.f64 re) (neg.f64 im))
57.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
58.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
1.2b
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
Compiler

Compiled 196 to 150 computations (23.5% saved)

localize87.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -1/5040 (pow.f64 im 7))
0.1b
(*.f64 -1/120 (pow.f64 im 5))
0.1b
(*.f64 -1/6 (pow.f64 im 3))
0.2b
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
Compiler

Compiled 109 to 84 computations (22.9% saved)

series15.0ms (0.1%)

Counts
4 → 24
Calls

15 calls:

TimeVariablePointExpression
3.0ms
im
@inf
(*.f64 -1/120 (pow.f64 im 5))
2.0ms
re
@inf
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
1.0ms
re
@0
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
1.0ms
im
@inf
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
1.0ms
im
@0
(*.f64 -1/5040 (pow.f64 im 7))

rewrite178.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
570×fma-neg_binary64
392×expm1-udef_binary64
392×log1p-udef_binary64
244×add-sqr-sqrt_binary64
232×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02250
150048
2665748
Stop Event
node limit
Counts
4 → 67
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/120 (pow.f64 im 5))
(*.f64 -1/5040 (pow.f64 im 7))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3))) (cos.f64 re)) (*.f64 (fma.f64 -1/5040 (pow.f64 im 7) im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) 1) (*.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (cos.f64 re) (fma.f64 -1/5040 (pow.f64 im 7) im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) 3) (pow.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5)))) (-.f64 (*.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) (*.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5)))) (*.f64 (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))) (-.f64 (*.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (pow.f64 im 5) 3) -1/1728000) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) 3)) (cos.f64 re)) (+.f64 (*.f64 (pow.f64 im 10) 1/14400) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) (-.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) (*.f64 -1/120 (pow.f64 im 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 10) 1/14400) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) 2)) (cos.f64 re)) (-.f64 (*.f64 -1/120 (pow.f64 im 5)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 (pow.f64 im 5) 3) -1/1728000) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) 3))) (+.f64 (*.f64 (pow.f64 im 10) 1/14400) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) (-.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) (*.f64 -1/120 (pow.f64 im 5))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 10) 1/14400) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)) 2))) (-.f64 (*.f64 -1/120 (pow.f64 im 5)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))) 3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (*.f64 -1/120 (pow.f64 im 5)) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/120 (pow.f64 im 5)) (cos.f64 re) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -1/6 (pow.f64 im 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 im (cbrt.f64 -1/6)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/216 (pow.f64 (pow.f64 im 3) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/36 (pow.f64 im 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -1/6) (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 -1/216 (pow.f64 (pow.f64 im 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/6 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -1/6 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -1/6 (pow.f64 im 3))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -1/120 (pow.f64 im 5)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/120 (pow.f64 im 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -1/120 (pow.f64 im 5))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -1/120) (pow.f64 im 5/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 im 5) 3) -1/1728000) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 im 10) 1/14400))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 im 5)) -1/120))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/120 (pow.f64 im 5)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 5) 3) -1/1728000))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/120 (pow.f64 im 5))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/120 (pow.f64 im 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -1/120 (pow.f64 im 5))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -1/120 (pow.f64 im 5))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -1/5040 (pow.f64 im 7)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/5040 (pow.f64 im 7)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -1/5040 (pow.f64 im 7))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 -1/5040) (pow.f64 im 7/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 im 7) 3) -1/128024064000) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 im 14) 1/25401600))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 im 7)) -1/5040))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/5040 (pow.f64 im 7)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 7) 3) -1/128024064000))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/5040 (pow.f64 im 7))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/5040 (pow.f64 im 7))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -1/5040 (pow.f64 im 7))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -1/5040 (pow.f64 im 7))) 1))))))

simplify156.0ms (1%)

Algorithm
egg-herbie
Rules
797×fma-neg_binary64
683×sub-neg_binary64
489×fma-def_binary64
453×*-commutative_binary64
407×+-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058818
1170817
2598728
33184665
45587665
Stop Event
node limit
Counts
91 → 90
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 4))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))))
(+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 6))) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 4))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
Outputs
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/2 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 re re)) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (+.f64 1 (*.f64 -1/2 (*.f64 re re))))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 4))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))))
(fma.f64 -1/120 (pow.f64 im 5) (fma.f64 1/24 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (pow.f64 re 4)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/2 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 re re)) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))))
(fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 1/24 (pow.f64 re 4)) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im))))))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 6))) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 4))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))))
(fma.f64 -1/720 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (pow.f64 re 6)) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 1/24 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (pow.f64 re 4)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/2 (*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 re re)) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))))))
(fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 -1/720 (pow.f64 re 6)) (fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 1/24 (pow.f64 re 4)) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))))))
(fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (*.f64 -1/720 (pow.f64 re 6)) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 im (neg.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (*.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (-.f64 (*.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re))) (*.f64 im (cos.f64 re))))
(fma.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)) (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/120 (pow.f64 im 5)) im)))
(*.f64 (cos.f64 re) (-.f64 (fma.f64 -1/120 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3))) im))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))
(+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))
(+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7)))))
(*.f64 (cos.f64 re) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/120 (pow.f64 im 5) (fma.f64 -1/5040 (pow.f64 im 7) (neg.f64 im)))) (cos.f64 re))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 re) (neg.f64 im))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
im
@inf
(*.f64 (cos.f64 re) (neg.f64 im))
1.0ms
im
@0
(*.f64 (cos.f64 re) (neg.f64 im))
1.0ms
re
@inf
(*.f64 (cos.f64 re) (neg.f64 im))
1.0ms
re
@0
(*.f64 (cos.f64 re) (neg.f64 im))
1.0ms
re
@-inf
(*.f64 (cos.f64 re) (neg.f64 im))

rewrite59.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
495×pow1_binary64
474×add-sqr-sqrt_binary64
454×add-log-exp_binary64
453×log1p-expm1-u_binary64
453×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify164.0ms (1.1%)

Algorithm
egg-herbie
Rules
494×cancel-sign-sub-inv_binary64
491×distribute-rgt-neg-in_binary64
463×*-commutative_binary64
455×distribute-lft-neg-in_binary64
438×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
026235
166232
2173221
3582219
42554219
57287219
Stop Event
node limit
Counts
37 → 23
Calls
Call 1
Inputs
(*.f64 -1 im)
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 6) im)) (+.f64 (*.f64 -1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
Outputs
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(fma.f64 -1 im (*.f64 1/2 (*.f64 im (*.f64 re re))))
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 re (*.f64 1/2 re) -1))
(+.f64 (*.f64 -1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im))))
(fma.f64 -1/24 (*.f64 im (pow.f64 re 4)) (fma.f64 -1 im (*.f64 1/2 (*.f64 im (*.f64 re re)))))
(fma.f64 -1/24 (*.f64 im (pow.f64 re 4)) (-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im))
(*.f64 im (+.f64 (*.f64 1/2 (*.f64 re re)) (fma.f64 -1/24 (pow.f64 re 4) -1)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) (fma.f64 -1/24 (pow.f64 re 4) -1)))
(+.f64 (*.f64 1/720 (*.f64 (pow.f64 re 6) im)) (+.f64 (*.f64 -1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))))
(fma.f64 1/720 (*.f64 im (pow.f64 re 6)) (fma.f64 -1/24 (*.f64 im (pow.f64 re 4)) (fma.f64 -1 im (*.f64 1/2 (*.f64 im (*.f64 re re))))))
(fma.f64 1/720 (*.f64 im (pow.f64 re 6)) (fma.f64 -1/24 (*.f64 im (pow.f64 re 4)) (-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)))
(*.f64 im (+.f64 (fma.f64 1/720 (pow.f64 re 6) (*.f64 -1/24 (pow.f64 re 4))) (fma.f64 1/2 (*.f64 re re) -1)))
(*.f64 im (+.f64 (fma.f64 -1/24 (pow.f64 re 4) (*.f64 1/720 (pow.f64 re 6))) (fma.f64 1/2 (*.f64 re re) -1)))
(*.f64 im (+.f64 (*.f64 -1/24 (pow.f64 re 4)) (fma.f64 1/720 (pow.f64 re 6) (fma.f64 re (*.f64 1/2 re) -1))))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.0b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 25 to 9 computations (64% saved)

series1.0ms (0%)

Counts
1 → 8
Calls

3 calls:

TimeVariablePointExpression
0.0ms
im
@0
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
0.0ms
im
@inf
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
0.0ms
im
@-inf
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

rewrite36.0ms (0.2%)

Algorithm
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
68×add-sqr-sqrt_binary64
65×*-un-lft-identity_binary64
65×add-log-exp_binary64
65×pow1_binary64
63×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
112710
2211610
0610
Stop Event
iter limit
unsound
Counts
1 → 12
Calls
Call 1
Inputs
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (neg.f64 im)) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (cbrt.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (cbrt.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (sqrt.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 im)) 3) (pow.f64 (exp.f64 im) 3)) (+.f64 (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (exp.f64 im) (exp.f64 im)) (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 (neg.f64 im))) (*.f64 (exp.f64 im) (exp.f64 im))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))))

simplify65.0ms (0.4%)

Algorithm
egg-herbie
Rules
676×unswap-sqr_binary64
664×fma-def_binary64
377×associate-/l/_binary64
323×associate-/l*_binary64
303×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02598
16398
214198
333698
470398
5157098
6248498
7396998
8546898
Stop Event
node limit
Counts
20 → 21
Calls
Call 1
Inputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
Outputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im))
(*.f64 im (fma.f64 im (*.f64 im -1/3) -2))
(*.f64 im (fma.f64 -1/3 (*.f64 im im) -2))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 -2 im (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5))))
(fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5))))
(fma.f64 im (fma.f64 im (*.f64 im -1/3) -2) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im (fma.f64 -1/3 (*.f64 im im) -2) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -2 im (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5)))))
(fma.f64 -2 im (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/60 (pow.f64 im 5)))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/2520 (pow.f64 im 7)))))
(fma.f64 im (fma.f64 -1/3 (*.f64 im im) -2) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/2520 (pow.f64 im 7))))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
0.1b
(*.f64 -1/6 (pow.f64 im 3))
0.2b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
Compiler

Compiled 33 to 22 computations (33.3% saved)

series13.0ms (0.1%)

Counts
2 → 28
Calls

9 calls:

TimeVariablePointExpression
9.0ms
im
@-inf
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
1.0ms
im
@inf
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
1.0ms
re
@0
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
1.0ms
re
@-inf
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
1.0ms
re
@inf
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))

rewrite187.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
646×prod-diff_binary64
478×log-prod_binary64
333×fma-def_binary64
311×pow-prod-down_binary64
266×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
121825
2264225
Stop Event
node limit
Counts
2 → 139
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re)) (*.f64 (neg.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (cos.f64 re)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (cos.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re) (*.f64 (neg.f64 im) (cos.f64 re)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 -1 im im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (-.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (sqrt.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) (neg.f64 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 im 9) -1/216 (pow.f64 (neg.f64 im) 3)) (fma.f64 (pow.f64 im 6) 1/36 (-.f64 (pow.f64 (neg.f64 im) 2) (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (pow.f64 (neg.f64 im) 2)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 -1/6) (pow.f64 im 3)) (+.f64 1 (expm1.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (+.f64 1 (expm1.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (/.f64 1 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 im)) (pow.f64 (exp.f64 -1/6) (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 im)) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/6 (pow.f64 im 3) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im (*.f64 (*.f64 im im) -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im (*.f64 (*.f64 im im) -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3) -1/6 (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) 1 (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) 1 (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1 (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1 (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1 (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im im) (*.f64 im -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im im) (*.f64 im -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im (cbrt.f64 -1/6)) (pow.f64 (*.f64 im (cbrt.f64 -1/6)) 2) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im (cbrt.f64 -1/6)) (pow.f64 (*.f64 im (cbrt.f64 -1/6)) 2) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 im (cbrt.f64 -1/6)) 2) (*.f64 im (cbrt.f64 -1/6)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 im (cbrt.f64 -1/6)) 2) (*.f64 im (cbrt.f64 -1/6)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3/2) (*.f64 (pow.f64 im 3/2) -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3/2) (*.f64 (pow.f64 im 3/2) -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 im)) 2) (cbrt.f64 (neg.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 im)) (sqrt.f64 (neg.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 im)) (sqrt.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 im (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (-.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (sqrt.f64 im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (-.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (sqrt.f64 im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (-.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (sqrt.f64 im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 im) (*.f64 im im) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 im) (*.f64 im im) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (*.f64 im im)) im (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (*.f64 im im)) im (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3/2)) (pow.f64 im 3/2) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3/2)) (pow.f64 im 3/2) (*.f64 (neg.f64 im) 1))))))

simplify60.0ms (0.4%)

Algorithm
egg-herbie
Rules
855×cancel-sign-sub-inv_binary64
779×unsub-neg_binary64
637×associate-+r+_binary64
338×*-commutative_binary64
258×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041473
1112456
2355387
31962369
45117369
Stop Event
node limit
Counts
167 → 156
Calls
Call 1
Inputs
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
Outputs
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3))) im)
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 -1/2 (*.f64 re re) 1))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 -1/2 (*.f64 re re) 1))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 1/24 (pow.f64 re 4))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 1/24 (pow.f64 re 4))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (*.f64 1/24 (pow.f64 re 4))))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/720 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 6)) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)))))) im)
(fma.f64 -1/2 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 re re)) (-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4))))) im))
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4))) (*.f64 -1/2 (*.f64 re re))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6)))))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -1/4 (*.f64 re re))
5.0b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
17.2b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
Compiler

Compiled 48 to 20 computations (58.3% saved)

series6.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
im
@0
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
1.0ms
re
@inf
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
1.0ms
im
@inf
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
1.0ms
re
@0
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
1.0ms
re
@inf
(*.f64 -1/4 (*.f64 re re))

rewrite266.0ms (1.7%)

Algorithm
egg-rewrite
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
432×pow1_binary64
421×add-sqr-sqrt_binary64
411×*-un-lft-identity_binary64
403×add-log-exp_binary64
403×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
128644
2486344
01322
128622
2486322
01322
057
11027
211507
Stop Event
node limit
iter limit
unsound
unsound
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 -1/4 (*.f64 re re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 -1/4 (*.f64 re re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/4 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re))) (cbrt.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/4 (*.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -1/4 (*.f64 re re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -1/4 (*.f64 re re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/16 (pow.f64 re 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -1/4) (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -1/4 (*.f64 re re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -1/4 (*.f64 re re))))))))

simplify73.0ms (0.5%)

Algorithm
egg-herbie
Rules
669×associate-+l+_binary64
512×*-commutative_binary64
458×associate-+r+_binary64
325×associate-+l-_binary64
311×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046687
1154603
2536577
32433576
45229576
Stop Event
node limit
Counts
58 → 39
Calls
Call 1
Inputs
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -1/2520 (*.f64 (pow.f64 im 7) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
Outputs
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))
(*.f64 -2 (*.f64 im (fma.f64 -1/4 (*.f64 re re) 1/2)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (*.f64 -2 im))
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im)))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (fma.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(fma.f64 -1/3 (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (pow.f64 im 3)) (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3))) (*.f64 -1/60 (pow.f64 im 5))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -1/2520 (*.f64 (pow.f64 im 7) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (fma.f64 -1/2520 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 7)) (fma.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))))
(+.f64 (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))) (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5))) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(*.f64 -1/4 (*.f64 (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(*.f64 -1/4 (*.f64 (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))

eval334.0ms (2.2%)

Compiler

Compiled 7096 to 4493 computations (36.7% saved)

prune204.0ms (1.3%)

Pruning

20 alts after pruning (16 fresh and 4 done)

PrunedKeptTotal
New34815363
Fresh112
Picked011
Done134
Total35020370
Error
0.1b
Counts
370 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
45.7b
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (cos.f64 re)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))
1.4b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
43.3b
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))
1.6b
(*.f64 (cos.f64 re) (neg.f64 im))
30.4b
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
34.4b
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
34.9b
(*.f64 (cos.f64 re) (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))
35.7b
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
30.2b
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
34.9b
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
32.0b
(*.f64 (cos.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3))))
30.5b
(neg.f64 im)
34.9b
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
57.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
2.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
33.8b
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
34.4b
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
58.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
Compiler

Compiled 573 to 436 computations (23.9% saved)

localize26.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -1/6 (pow.f64 im 3))
0.2b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
0.6b
(cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
0.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
Compiler

Compiled 57 to 38 computations (33.3% saved)

series31.0ms (0.2%)

Counts
2 → 40
Calls

12 calls:

TimeVariablePointExpression
10.0ms
im
@-inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
7.0ms
im
@inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
4.0ms
re
@0
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
2.0ms
re
@inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
2.0ms
re
@-inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)

rewrite82.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
646×prod-diff_binary64
536×log-prod_binary64
366×pow-prod-down_binary64
343×fma-def_binary64
286×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01232
126332
2293632
Stop Event
node limit
Counts
2 → 71
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
(cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re)) (*.f64 (neg.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2) (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6) (*.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2) 1) (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2) (cbrt.f64 (cos.f64 re))) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2) (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6)) (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (cos.f64 re)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (cos.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re) (*.f64 (neg.f64 im) (cos.f64 re)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (log.f64 (sqrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cbrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6) (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3) 1/9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) 1))))))

simplify173.0ms (1.1%)

Algorithm
egg-herbie
Rules
804×distribute-rgt-in_binary64
803×distribute-lft-in_binary64
292×fma-def_binary64
271×associate-*r*_binary64
238×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02632272
19352064
238311914
Stop Event
node limit
Counts
111 → 117
Calls
Call 1
Inputs
(*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (+.f64 (*.f64 1/18 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3)))))) (pow.f64 re 4))))
(+.f64 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))))))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (+.f64 (*.f64 1/18 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3)))))) (pow.f64 re 4)))))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3)))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))) im)) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -4/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im))) (*.f64 2/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im)))))))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))))) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (cos.f64 re)) 1/3) (/.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))))) (cbrt.f64 1/6)))) (*.f64 -2/27 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 7))))) (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (pow.f64 im 3)) (pow.f64 (*.f64 (cos.f64 re) 1) 1/3)) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (pow.f64 im 3)))) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))) im)) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 6))))) (*.f64 -4/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im)))))))))))
(*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3)))
(+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))))
(+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))) (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (+.f64 (*.f64 4/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))))) im))))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/27 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (pow.f64 (cbrt.f64 1/6) 2)))) (*.f64 (*.f64 (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 7)))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (cos.f64 re)) 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (cbrt.f64 1/6))))) (cbrt.f64 1/6)) (pow.f64 (*.f64 (cos.f64 re) 1) 1/3))))) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))) (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (+.f64 (*.f64 4/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))))) im)))))
(pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (pow.f64 re 4))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (pow.f64 re 4)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (pow.f64 re 6)))))))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im)))
(+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2)))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2)) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))))) (*.f64 (pow.f64 im 5) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5)))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2)) 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (*.f64 (pow.f64 im 5) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))))))
Outputs
(*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(fma.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/2) (*.f64 re re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(fma.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/2) (*.f64 re re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 1 (*.f64 -1/2 (*.f64 re re))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (+.f64 (*.f64 1/18 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3)))))) (pow.f64 re 4))))
(+.f64 (fma.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/2) (*.f64 re re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (*.f64 (fma.f64 1/18 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)) (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 2/3 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))))))) (pow.f64 re 4)))
(fma.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/2) (*.f64 re re) (fma.f64 (fma.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/18 (fma.f64 1/3 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/24) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 2/3 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))))))) (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (*.f64 (fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/18 (fma.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 2/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2)))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/72))) (pow.f64 re 4)))
(+.f64 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))))))))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (pow.f64 re 2)) (+.f64 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (+.f64 (*.f64 1/18 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (pow.f64 (*.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3)))))) (pow.f64 re 4)))))
(fma.f64 (pow.f64 re 6) (+.f64 (+.f64 (*.f64 -1/9 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)) (*.f64 1/3 (-.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/720) (fma.f64 -1/216 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)))))) (fma.f64 -1/6 (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 2/3 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))))) (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 -1/9 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (*.f64 2/3 (*.f64 (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (-.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/720) (fma.f64 -1/216 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)))))))))) (+.f64 (fma.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/2) (*.f64 re re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (*.f64 (fma.f64 1/18 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)) (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 2/3 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))))))) (pow.f64 re 4))))
(fma.f64 (pow.f64 re 6) (fma.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/24) -1/9 (fma.f64 1/3 (-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 7/2160) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/72)) (fma.f64 -1/6 (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 2/3 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 7/2160) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/72)) (*.f64 (cbrt.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 (*.f64 -1/9 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) -1/24))))))) (fma.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/2) (*.f64 re re) (fma.f64 (fma.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/18 (fma.f64 1/3 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/24) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (fma.f64 2/3 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))))))) (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))
(fma.f64 (pow.f64 re 6) (fma.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) -1/9 (fma.f64 1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -23/2160) (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (+.f64 (*.f64 (fma.f64 2/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2)))) -1/6) (*.f64 (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (+.f64 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) -1/9) (*.f64 2/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -23/2160)))))))) (+.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 1 (*.f64 -1/2 (*.f64 re re)))) (*.f64 (fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/18 (fma.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 2/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/24 (cbrt.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (*.f64 1/36 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2)))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/72))) (pow.f64 re 4))))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 1 1/3))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3)))
(*.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re))) 1)
(*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))) im)) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -4/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im))) (*.f64 2/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im)))))))
(fma.f64 (*.f64 (cos.f64 re) -1) im (fma.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (*.f64 (*.f64 (cbrt.f64 -1) (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 (cbrt.f64 1/6) 4)) -1/9)) (cbrt.f64 1/6)) im) (fma.f64 -1/6 (*.f64 1 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 (/.f64 (cos.f64 re) im) -2/3))))
(fma.f64 im (*.f64 (cos.f64 re) -1) (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (cbrt.f64 -1) im) (*.f64 (cbrt.f64 1/6) (*.f64 -1/9 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6))))))) (fma.f64 (/.f64 (cos.f64 re) im) -2/3 (*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3)))))
(-.f64 (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (cbrt.f64 -1) im) (*.f64 (cbrt.f64 1/6) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6))) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9)))) (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (/.f64 (*.f64 (cos.f64 re) -2/3) im))) (*.f64 im (cos.f64 re)))
(+.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 -1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))) im) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))))) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 (/.f64 (*.f64 (+.f64 (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (cos.f64 re)) 1/3) (/.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))))) (cbrt.f64 1/6)))) (*.f64 -2/27 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 7))))) (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (pow.f64 im 3)) (pow.f64 (*.f64 (cos.f64 re) 1) 1/3)) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (pow.f64 im 3)))) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (*.f64 (+.f64 (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))) im)) (+.f64 (*.f64 2/27 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 6))))) (*.f64 -4/3 (*.f64 (pow.f64 1 1/3) (/.f64 (cos.f64 re) im)))))))))))
(fma.f64 (*.f64 (cos.f64 re) -1) im (fma.f64 -1/6 (*.f64 1 (*.f64 (pow.f64 im 3) (cos.f64 re))) (fma.f64 1/3 (/.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 -1) (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 (cbrt.f64 1/6) 4)) -1/9))) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 2))) (fma.f64 (/.f64 (fma.f64 -2/3 (*.f64 (cbrt.f64 (/.f64 1 (cos.f64 re))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (/.f64 (cbrt.f64 1/6) (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27)))) (*.f64 -2/27 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 (cbrt.f64 1/6) 7)))) (/.f64 (pow.f64 im 3) (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6)))) (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 1/3 (/.f64 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27) (pow.f64 im 3))) (fma.f64 2/3 (/.f64 (cos.f64 re) im) (fma.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (*.f64 (*.f64 (cbrt.f64 -1) (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 -1) 2)) (pow.f64 (cbrt.f64 1/6) 4)) -1/9)) (cbrt.f64 1/6)) im) (fma.f64 2/27 (/.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -4/3 (/.f64 (cos.f64 re) im))))))))))
(+.f64 (fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 3)) (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6)))) (/.f64 (pow.f64 (cbrt.f64 1/6) 2) -1/9)))) (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (fma.f64 -2/3 (*.f64 (cbrt.f64 (/.f64 1 (cos.f64 re))) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (/.f64 (cbrt.f64 1/6) (/.f64 (*.f64 (cos.f64 re) -5/27) 1/36)))) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 7)) -2/27))) (pow.f64 im 3)) (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (fma.f64 1/3 (/.f64 (/.f64 (*.f64 (cos.f64 re) -5/27) 1/36) (pow.f64 im 3)) (+.f64 (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (cbrt.f64 -1) im) (*.f64 (cbrt.f64 1/6) (*.f64 -1/9 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6))))))) (*.f64 2/27 (*.f64 (/.f64 (cos.f64 re) (pow.f64 im 3)) 36))) (*.f64 -2/3 (/.f64 (cos.f64 re) im)))))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(+.f64 (+.f64 (fma.f64 1/3 (/.f64 (*.f64 (/.f64 (cos.f64 re) 1/6) -10/9) (pow.f64 im 3)) (+.f64 (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (/.f64 (cbrt.f64 -1) im) (*.f64 (cbrt.f64 1/6) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6))) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9)))) (*.f64 2/27 (*.f64 (/.f64 (cos.f64 re) (pow.f64 im 3)) 36))) (/.f64 (*.f64 (cos.f64 re) -2/3) im))) (*.f64 (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 1/3 (*.f64 (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 1/6 (cbrt.f64 1/6))) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9)))) (*.f64 (/.f64 (fma.f64 -2/27 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 (pow.f64 (cbrt.f64 -1) 2) (pow.f64 (cbrt.f64 1/6) 7))) (*.f64 (*.f64 -2/3 (*.f64 (/.f64 (pow.f64 (cbrt.f64 -1) 2) (/.f64 (cbrt.f64 1/6) (*.f64 36 (cos.f64 re)))) -5/27)) (cbrt.f64 (/.f64 1 (cos.f64 re))))) (pow.f64 im 3)) (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6)))))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3)))
(*.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re))) 1)
(*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))) (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (+.f64 (*.f64 4/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))))) im))))
(fma.f64 -1/6 (*.f64 1 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 -1 (+.f64 (*.f64 im (cos.f64 re)) (/.f64 (fma.f64 -2/3 (cos.f64 re) (fma.f64 4/3 (cos.f64 re) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))) -1/9))))) im))))
(-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)) (/.f64 (+.f64 (*.f64 2/3 (cos.f64 re)) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9) (*.f64 1/6 (cbrt.f64 1/6)))))) im))
(fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re) (/.f64 (neg.f64 (+.f64 (*.f64 2/3 (cos.f64 re)) (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9) (*.f64 1/6 (cbrt.f64 1/6))) (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6))))) im))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/27 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))))) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (pow.f64 (cbrt.f64 1/6) 2)))) (*.f64 (*.f64 (+.f64 (*.f64 -2/27 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 7)))) (*.f64 -2/3 (*.f64 (pow.f64 (/.f64 1 (cos.f64 re)) 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (cbrt.f64 1/6))))) (cbrt.f64 1/6)) (pow.f64 (*.f64 (cos.f64 re) 1) 1/3))))) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) (pow.f64 1 1/3))) (+.f64 (*.f64 -1 (*.f64 im (+.f64 (*.f64 1/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3)))))) (*.f64 -1 (/.f64 (+.f64 (*.f64 -2/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (+.f64 (*.f64 4/3 (*.f64 (cos.f64 re) (pow.f64 1 1/3))) (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (+.f64 (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4)))) (*.f64 -2/9 (*.f64 (pow.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1) 1/3) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))))) (cbrt.f64 1/6))))) im)))))
(fma.f64 -1 (/.f64 (fma.f64 -2/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) (+.f64 (*.f64 -1/3 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27)) (fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (*.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))) -1/9) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (fma.f64 -2/27 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 7))) (*.f64 (*.f64 -2/3 (cbrt.f64 (/.f64 1 (cos.f64 re)))) (/.f64 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27) (cbrt.f64 1/6)))) (*.f64 (cbrt.f64 1/6) (cbrt.f64 (cos.f64 re))))))) (pow.f64 im 3)) (fma.f64 -1/6 (*.f64 1 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 -1 (+.f64 (*.f64 im (cos.f64 re)) (/.f64 (fma.f64 -2/3 (cos.f64 re) (fma.f64 4/3 (cos.f64 re) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (/.f64 1 (pow.f64 (cbrt.f64 1/6) 4))) -1/9))))) im)))))
(-.f64 (-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)) (/.f64 (+.f64 (*.f64 2/3 (cos.f64 re)) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9) (*.f64 1/6 (cbrt.f64 1/6)))))) im)) (/.f64 (fma.f64 (/.f64 (cos.f64 re) 1/36) -2/27 (fma.f64 -1/3 (/.f64 (*.f64 (cos.f64 re) -5/27) 1/36) (fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (*.f64 1/6 (cbrt.f64 1/6))) (/.f64 (pow.f64 (cbrt.f64 1/6) 2) -1/9))) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (fma.f64 -2/3 (*.f64 (cbrt.f64 (/.f64 1 (cos.f64 re))) (/.f64 (/.f64 (cos.f64 re) 1/36) (/.f64 (cbrt.f64 1/6) -5/27))) (*.f64 -2/27 (/.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 1/6) 7))))))))) (pow.f64 im 3)))
(-.f64 (fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re) (/.f64 (neg.f64 (+.f64 (*.f64 2/3 (cos.f64 re)) (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -1/9) (*.f64 1/6 (cbrt.f64 1/6))) (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6))))) im)) (/.f64 (fma.f64 (*.f64 36 (cos.f64 re)) -2/27 (fma.f64 -1/3 (*.f64 (/.f64 (cos.f64 re) 1/6) -10/9) (*.f64 (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 1/3 (*.f64 (/.f64 (/.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) (pow.f64 (cbrt.f64 1/6) 2)) 1/6) (/.f64 -1/9 (cbrt.f64 1/6)))) (*.f64 (cbrt.f64 1/6) (fma.f64 -2/3 (*.f64 (/.f64 (cbrt.f64 (/.f64 1 (cos.f64 re))) (cbrt.f64 1/6)) (*.f64 (/.f64 (cos.f64 re) 1/6) -10/9)) (/.f64 (*.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)) -2/27) (pow.f64 (cbrt.f64 1/6) 7)))))))) (pow.f64 im 3)))
(pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3)
(cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3))
(fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))
(fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 (+.f64 (*.f64 -1/6 (*.f64 re re)) 1) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (pow.f64 re 4))))))
(+.f64 (fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (*.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))) (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (pow.f64 re 4)))))
(fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/24 (pow.f64 re 4)))) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/6 (*.f64 re re)) 1) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (*.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))) (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (pow.f64 re 4)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3) (pow.f64 re 2))) (+.f64 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/3) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (pow.f64 re 4)))) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)) 1/3) (*.f64 (-.f64 (*.f64 -1/720 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/216 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/3 (-.f64 (*.f64 1/24 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/12 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (pow.f64 re 6)))))))
(+.f64 (fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (*.f64 1/3 (+.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))) (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (pow.f64 re 4))) (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/720) (fma.f64 -1/216 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 -1/3 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24)))))))))
(fma.f64 -1/6 (*.f64 (*.f64 re re) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2))) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/24 (pow.f64 re 4))) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 7/2160) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1/72))))) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/6 (*.f64 re re)) 1) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (*.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))) (+.f64 (*.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -1/24) (pow.f64 re 4)) (*.f64 (pow.f64 re 6) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) -23/2160))))))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 1/3)
(cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))
(cbrt.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re)))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im)))
(*.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 -1)) (*.f64 im (cbrt.f64 1/6)))
(*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 im (cbrt.f64 -1))))
(*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 im (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))))
(+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))
(fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 -1) (*.f64 im (cbrt.f64 1/6))) (*.f64 (*.f64 1/3 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 im (cbrt.f64 -1)))))
(*.f64 (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 im (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (*.f64 1/3 (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2)))))
(+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2)))))))
(fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))) (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 -1) (*.f64 im (cbrt.f64 1/6))) (*.f64 (*.f64 1/3 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2)))))
(fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5)))) (fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 im (cbrt.f64 -1))))))
(fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))) (*.f64 (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 im (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (*.f64 1/3 (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2)) 1/3) (/.f64 (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))))) (*.f64 (pow.f64 im 5) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 -1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))) (+.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 1/6) im))) (*.f64 1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 (cbrt.f64 -1) (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))))
(fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (*.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 5)) (/.f64 (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27) (pow.f64 (cbrt.f64 1/6) 2)))) (fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))) (fma.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 -1) (*.f64 im (cbrt.f64 1/6))) (*.f64 (*.f64 1/3 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))))))
(fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (*.f64 (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 1/6) 2) (pow.f64 im 5))) (/.f64 (*.f64 (cos.f64 re) -5/27) 1/36))) (fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (cbrt.f64 -1) (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5)))) (fma.f64 1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 1/6) (*.f64 im (cbrt.f64 -1)))))))
(fma.f64 -1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (*.f64 (*.f64 (/.f64 (*.f64 36 (cos.f64 re)) (pow.f64 (cbrt.f64 1/6) 2)) (/.f64 -5/27 (pow.f64 im 5))) (cbrt.f64 -1))) (fma.f64 -1/9 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 (cbrt.f64 -1) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))) (*.f64 (cbrt.f64 (cos.f64 re)) (+.f64 (*.f64 im (*.f64 (cbrt.f64 -1) (cbrt.f64 1/6))) (*.f64 1/3 (/.f64 (/.f64 (cbrt.f64 -1) im) (pow.f64 (cbrt.f64 1/6) 2)))))))
(*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im)))
(neg.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6)) im))
(*.f64 (*.f64 im (cbrt.f64 1/6)) (neg.f64 (cbrt.f64 (cos.f64 re))))
(*.f64 im (neg.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))))
(fma.f64 -1 (*.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6)) im) (*.f64 (*.f64 -1/3 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 1 im) (pow.f64 (cbrt.f64 1/6) 2))))
(-.f64 (*.f64 -1/3 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 im (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6))))
(*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))) -1/3) (*.f64 im (cbrt.f64 1/6))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5)))))))
(fma.f64 -1 (*.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6)) im) (fma.f64 -1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 1 im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (*.f64 1/9 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 1 (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5)))))
(-.f64 (fma.f64 -1/3 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) im) (pow.f64 (cbrt.f64 1/6) 2)) (*.f64 1/9 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5)))) (*.f64 im (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6))))
(+.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))) -1/3) (*.f64 im (cbrt.f64 1/6)))) (*.f64 1/9 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2)) 1/3) (/.f64 (+.f64 (*.f64 1/27 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6))) (*.f64 -2/9 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)))) (*.f64 (pow.f64 im 5) (pow.f64 (cbrt.f64 1/6) 2))))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (*.f64 (cbrt.f64 1/6) im))) (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))))) (*.f64 1/9 (*.f64 (pow.f64 (*.f64 (cos.f64 re) 1) 1/3) (/.f64 1 (*.f64 (pow.f64 im 3) (pow.f64 (cbrt.f64 1/6) 5))))))))
(fma.f64 1/3 (/.f64 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (*.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 1/6) 6)) -5/27)) (*.f64 (pow.f64 (cbrt.f64 1/6) 2) (pow.f64 im 5))) (fma.f64 -1 (*.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6)) im) (fma.f64 -1/3 (*.f64 (cbrt.f64 (cos.f64 re)) (/.f64 (/.f64 1 im) (pow.f64 (cbrt.f64 1/6) 2))) (*.f64 (*.f64 1/9 (cbrt.f64 (cos.f64 re))) (/.f64 (/.f64 1 (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5))))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (/.f64 (/.f64 (*.f64 (cos.f64 re) -5/27) 1/36) (*.f64 (pow.f64 (cbrt.f64 1/6) 2) (pow.f64 im 5)))) (-.f64 (fma.f64 -1/3 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) im) (pow.f64 (cbrt.f64 1/6) 2)) (*.f64 1/9 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5)))) (*.f64 im (*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 1/6)))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (pow.f64 (cos.f64 re) 2))) (*.f64 (/.f64 (*.f64 36 (cos.f64 re)) (pow.f64 (cbrt.f64 1/6) 2)) (/.f64 -5/27 (pow.f64 im 5)))) (+.f64 (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 (/.f64 1 (*.f64 im (pow.f64 (cbrt.f64 1/6) 2))) -1/3) (*.f64 im (cbrt.f64 1/6)))) (*.f64 1/9 (/.f64 (/.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 im 3)) (pow.f64 (cbrt.f64 1/6) 5)))))

localize5.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -1/4 (*.f64 re re))
2.2b
(-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)
5.0b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
17.2b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
Compiler

Compiled 73 to 39 computations (46.6% saved)

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
im
@0
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
0.0ms
re
@inf
(-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)
0.0ms
re
@inf
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
0.0ms
re
@-inf
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
0.0ms
im
@inf
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))

rewrite258.0ms (1.7%)

Algorithm
egg-rewrite
egg-rewrite-iter-limit
batch-egg-rewrite
Rules
816×pow1_binary64
769×add-log-exp_binary64
768×log1p-expm1-u_binary64
768×expm1-log1p-u_binary64
756×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01656
136156
2643956
01628
136128
2643928
01628
0813
11787
223997
Stop Event
node limit
iter limit
unsound
unsound
Counts
2 → 54
Calls
Call 1
Inputs
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
(-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (+.f64 1 (-.f64 (*.f64 -1/4 (*.f64 re re)) 1))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 -1/4 (*.f64 re re) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 -1/4 (*.f64 re re) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/4 (*.f64 re re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/4 (*.f64 re re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 -1/4 (*.f64 re re) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/4 (*.f64 re re) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -1/4 (*.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/4 (*.f64 re re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 re (*.f64 -1/4 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 re re) -1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/4 (*.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 re 4)) (*.f64 (pow.f64 (cbrt.f64 re) 2) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 -1/4 (*.f64 re re))) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (cbrt.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 re (sqrt.f64 -1/4)) (*.f64 re (sqrt.f64 -1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) (+.f64 (*.f64 -1/4 (*.f64 re re)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) -1) (/.f64 1 (+.f64 (*.f64 -1/4 (*.f64 re re)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/4 re) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 -1/4))) 1) (-.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 -1/4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1/4 (cbrt.f64 (pow.f64 re 4))) (pow.f64 (cbrt.f64 re) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 -1/4 re) 1) re)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 -1/4 re) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 -1/4 re) (sqrt.f64 re)) (sqrt.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) (+.f64 (*.f64 -1/4 (*.f64 re re)) 2)) (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 -1/4 (*.f64 re re)) 2) (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) (+.f64 (*.f64 -1/4 (*.f64 re re)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) (-.f64 1 (*.f64 (fma.f64 -1/4 (*.f64 re re) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) -1) (+.f64 (*.f64 -1/4 (*.f64 re re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) -1) (-.f64 (fma.f64 -1/4 (*.f64 re re) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) (+.f64 (*.f64 -1/4 (*.f64 re re)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2) -1)) (neg.f64 (+.f64 (*.f64 -1/4 (*.f64 re re)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 -1/4 (*.f64 re re) -1) 3)) (+.f64 1 (-.f64 (*.f64 (fma.f64 -1/4 (*.f64 re re) -1) (fma.f64 -1/4 (*.f64 re re) -1)) (fma.f64 -1/4 (*.f64 re re) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 (fma.f64 -1/4 (*.f64 re re) -1) (fma.f64 -1/4 (*.f64 re re) -1))) (-.f64 1 (fma.f64 -1/4 (*.f64 re re) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/4 (*.f64 re re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -1/4 (*.f64 re re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 re re) 3) -1/64) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 re) re) -1/4))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 re re) 3) -1/64))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -1/4 (*.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 -1/4 (*.f64 re re) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 -1/4 (*.f64 re re) 1) 2)) (cbrt.f64 (fma.f64 -1/4 (*.f64 re re) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 re (sqrt.f64 -1/4))) (hypot.f64 1 (*.f64 re (sqrt.f64 -1/4))) -1)))))

simplify67.0ms (0.4%)

Algorithm
egg-herbie
Rules
669×associate-+l+_binary64
512×*-commutative_binary64
458×associate-+r+_binary64
325×associate-+l-_binary64
311×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
046687
1154603
2536577
32433576
45229576
Stop Event
node limit
Counts
90 → 70
Calls
Call 1
Inputs
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -1/2520 (*.f64 (pow.f64 im 7) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
Outputs
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))
(*.f64 -2 (*.f64 im (fma.f64 -1/4 (*.f64 re re) 1/2)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (*.f64 -2 im))
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im)))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (fma.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(fma.f64 -1/3 (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (pow.f64 im 3)) (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3))) (*.f64 -1/60 (pow.f64 im 5))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -2 im))))
(+.f64 (*.f64 -1/3 (*.f64 (pow.f64 im 3) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -1/2520 (*.f64 (pow.f64 im 7) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (+.f64 (*.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 -1/60 (*.f64 (pow.f64 im 5) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))))))
(fma.f64 -1/3 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 3)) (fma.f64 -1/2520 (*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (pow.f64 im 7)) (fma.f64 -2 (*.f64 im (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))) (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))))
(+.f64 (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))) (*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5))) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (+.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)) (fma.f64 -1/3 (pow.f64 im 3) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(*.f64 -1/4 (*.f64 (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2)))
(*.f64 -1/4 (*.f64 (*.f64 re re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 2))) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (fma.f64 -1/4 (*.f64 re re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))

localize26.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
0.1b
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
0.1b
(*.f64 -1/6 (pow.f64 im 3))
0.2b
(pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)
Compiler

Compiled 55 to 40 computations (27.3% saved)

series9.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

TimeVariablePointExpression
5.0ms
im
@inf
(pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)
1.0ms
im
@0
(pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)
1.0ms
im
@-inf
(pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)
1.0ms
im
@inf
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
0.0ms
re
@0
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))

rewrite82.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
646×prod-diff_binary64
533×log-prod_binary64
358×fma-def_binary64
356×pow-prod-down_binary64
300×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01325
128325
2305725
Stop Event
node limit
Counts
2 → 142
Calls
Call 1
Inputs
(pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 -1 im im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 im 9) -1/216) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (/.f64 (pow.f64 im 3) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 im 6) 1/36) (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (neg.f64 (sqrt.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) (neg.f64 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 im 9) -1/216 (pow.f64 (neg.f64 im) 3)) (fma.f64 (pow.f64 im 6) 1/36 (-.f64 (pow.f64 (neg.f64 im) 2) (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (pow.f64 (neg.f64 im) 2)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) -1/6) (+.f64 1 (expm1.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (+.f64 1 (expm1.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3)))) (pow.f64 (exp.f64 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 im)) (pow.f64 (exp.f64 (pow.f64 im 3)) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 im) -1) (+.f64 1 (expm1.f64 (*.f64 -1/6 (pow.f64 im 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/6 (pow.f64 im 3) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im (*.f64 (*.f64 im im) -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im (*.f64 (*.f64 im im) -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3) -1/6 (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) 1 (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) 1 (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1 (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1 (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1 (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im im) (*.f64 im -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im im) (*.f64 im -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im (cbrt.f64 -1/6)) (cbrt.f64 (*.f64 (pow.f64 im 6) 1/36)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 im (cbrt.f64 -1/6)) (cbrt.f64 (*.f64 (pow.f64 im 6) 1/36)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 im 6) 1/36)) (*.f64 im (cbrt.f64 -1/6)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 im 6) 1/36)) (*.f64 im (cbrt.f64 -1/6)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) 2) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2)) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (/.f64 1 (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36))) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3/2) (*.f64 (pow.f64 im 3/2) -1/6) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im 3/2) (*.f64 (pow.f64 im 3/2) -1/6) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 3/2)) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/4) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 im)) 2) (cbrt.f64 (neg.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 im)) (sqrt.f64 (neg.f64 im)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 im)) (sqrt.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 im (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (neg.f64 (sqrt.f64 im))) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (neg.f64 (sqrt.f64 im))) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (sqrt.f64 im)) (fma.f64 (sqrt.f64 -1/6) (pow.f64 im 3/2) (neg.f64 (sqrt.f64 im))) (+.f64 (neg.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (*.f64 im im))) (cbrt.f64 im) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 im) (*.f64 im im) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 im) (*.f64 im im) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (*.f64 im im)) im (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (*.f64 im im)) im (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3/2)) (pow.f64 im 3/2) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3/2)) (pow.f64 im 3/2) (*.f64 (neg.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/6) (fma.f64 (neg.f64 im) 1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/6) (fma.f64 (neg.f64 (cbrt.f64 im)) (cbrt.f64 (*.f64 im im)) im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) 1/6) (+.f64 (neg.f64 im) im))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re)) (*.f64 (neg.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (cos.f64 re)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3))) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -1/6 (pow.f64 im 3)) (cos.f64 re) (*.f64 (neg.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (cos.f64 re) (neg.f64 im)))))))

simplify59.0ms (0.4%)

Algorithm
egg-herbie
Rules
791×fma-neg_binary64
726×cancel-sign-sub-inv_binary64
577×unsub-neg_binary64
498×*-commutative_binary64
464×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048457
1132424
2420400
32132382
45241382
Stop Event
node limit
Counts
166 → 157
Calls
Call 1
Inputs
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
Outputs
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3))) im)
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (fma.f64 -1/2 (*.f64 re re) 1))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 -1/2 (*.f64 re re) 1))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 1/24 (pow.f64 re 4))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 1/24 (pow.f64 re 4))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (*.f64 1/24 (pow.f64 re 4))))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/720 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 6)) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (+.f64 (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))) (*.f64 -1/2 (*.f64 re re))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6)))))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3))))
(*.f64 (*.f64 1/6 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 im 3) (cos.f64 re)))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 (sqrt.f64 -1) 2) im)) (*.f64 1/6 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (cos.f64 re) (pow.f64 im 3)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (*.f64 1/6 (pow.f64 (sqrt.f64 -1) 2)) (*.f64 (pow.f64 im 3) (cos.f64 re)))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))

localize40.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 im 6) 1/36)
0.2b
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
0.2b
(/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
33.6b
(/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))
Compiler

Compiled 95 to 61 computations (35.8% saved)

series12.0ms (0.1%)

Counts
4 → 60
Calls

15 calls:

TimeVariablePointExpression
2.0ms
re
@inf
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
1.0ms
re
@0
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
1.0ms
im
@inf
(/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
1.0ms
re
@-inf
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
1.0ms
im
@-inf
(/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))

rewrite128.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
900×prod-diff_binary64
469×fma-def_binary64
307×expm1-udef_binary64
307×log1p-udef_binary64
221×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01884
140081
2491381
Stop Event
node limit
Counts
4 → 168
Calls
Call 1
Inputs
(/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))
(/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
(*.f64 (pow.f64 im 6) 1/36)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2) (*.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2) (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 1 (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2) 1) (/.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 1) (/.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (/.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (/.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 1/46656 (pow.f64 (pow.f64 im 6) 3)) (pow.f64 im 6))) (fma.f64 (*.f64 im im) (fma.f64 (pow.f64 im 6) 1/36 (*.f64 im im)) (*.f64 1/1296 (pow.f64 im 12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 1/1296 (pow.f64 im 12)) (pow.f64 im 4))) (fma.f64 (pow.f64 im 6) 1/36 (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 3) (pow.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (pow.f64 im 6) 1/36) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (*.f64 im (neg.f64 im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (pow.f64 im 6) 1/36)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 im 6) 1/36) (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2) (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2) -1) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) 1) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) 3) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (log.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 im 6) 1/36) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (*.f64 im (neg.f64 im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 1 (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 1 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2) (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) 2) (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (pow.f64 im 6) 1/36) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -1) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) -1) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2) -1) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2) -1) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (pow.f64 (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) -1) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (neg.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) 1) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) 1) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 im (neg.f64 im) (*.f64 im im))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 re) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cbrt.f64 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (cos.f64 re)) (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (sqrt.f64 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cos.f64 re)) (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))) (sqrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 1 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) 1) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2)) (cbrt.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (cos.f64 re)) (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) -1) (/.f64 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 im 6) 1/36))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 im 6) 1/36) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 im im) (cbrt.f64 1/36)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 im 3) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/46656 (pow.f64 (pow.f64 im 6) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/1296 (pow.f64 im 12)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/36) (pow.f64 im 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 im 6) 1/36))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 1/46656 (pow.f64 (pow.f64 im 6) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 6 (log.f64 im) (log.f64 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 6 (log.f64 im) (log.f64 1/36)) 1))))))

simplify82.0ms (0.5%)

Algorithm
egg-herbie
Rules
610×associate-/l*_binary64
553×associate-/r*_binary64
400×*-commutative_binary64
302×times-frac_binary64
187×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0931152
12451128
26801081
323511037
478471037
Stop Event
node limit
Counts
228 → 205
Calls
Call 1
Inputs
(/.f64 -1 im)
(-.f64 (*.f64 1/6 im) (/.f64 1 im))
(-.f64 (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im)) (/.f64 1 im))
(-.f64 (+.f64 (*.f64 1/216 (pow.f64 im 5)) (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im))) (/.f64 1 im))
(/.f64 -6 (pow.f64 im 3))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 6 (/.f64 1 (pow.f64 im 3))))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(-.f64 (+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 1296 (/.f64 1 (pow.f64 im 9)))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(/.f64 -6 (pow.f64 im 3))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 6 (/.f64 1 (pow.f64 im 3))))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(-.f64 (+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 1296 (/.f64 1 (pow.f64 im 9)))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(*.f64 -1 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/720 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
Outputs
(/.f64 -1 im)
(-.f64 (*.f64 1/6 im) (/.f64 1 im))
(-.f64 (*.f64 im 1/6) (/.f64 1 im))
(fma.f64 im 1/6 (/.f64 -1 im))
(-.f64 (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im)) (/.f64 1 im))
(-.f64 (fma.f64 -1/36 (pow.f64 im 3) (*.f64 im 1/6)) (/.f64 1 im))
(fma.f64 -1/36 (pow.f64 im 3) (fma.f64 im 1/6 (/.f64 -1 im)))
(fma.f64 im 1/6 (fma.f64 -1/36 (pow.f64 im 3) (/.f64 -1 im)))
(-.f64 (+.f64 (*.f64 1/216 (pow.f64 im 5)) (+.f64 (*.f64 -1/36 (pow.f64 im 3)) (*.f64 1/6 im))) (/.f64 1 im))
(-.f64 (fma.f64 1/216 (pow.f64 im 5) (fma.f64 -1/36 (pow.f64 im 3) (*.f64 im 1/6))) (/.f64 1 im))
(fma.f64 1/216 (pow.f64 im 5) (fma.f64 -1/36 (pow.f64 im 3) (fma.f64 im 1/6 (/.f64 -1 im))))
(fma.f64 1/216 (pow.f64 im 5) (fma.f64 im 1/6 (fma.f64 -1/36 (pow.f64 im 3) (/.f64 -1 im))))
(/.f64 -6 (pow.f64 im 3))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 6 (/.f64 1 (pow.f64 im 3))))
(-.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 6 (pow.f64 im 3)))
(+.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 -6 (pow.f64 im 3)))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(-.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7))))
(+.f64 (/.f64 -6 (pow.f64 im 3)) (+.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 -216 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 -6 (pow.f64 im 3)) (/.f64 -216 (pow.f64 im 7))))
(-.f64 (+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 1296 (/.f64 1 (pow.f64 im 9)))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (-.f64 (/.f64 1296 (pow.f64 im 9)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7)))))
(+.f64 (/.f64 1296 (pow.f64 im 9)) (-.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7)))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (+.f64 (/.f64 1296 (pow.f64 im 9)) (/.f64 -6 (pow.f64 im 3))) (/.f64 -216 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 1296 (pow.f64 im 9)) (+.f64 (/.f64 -6 (pow.f64 im 3)) (/.f64 -216 (pow.f64 im 7)))))
(/.f64 -6 (pow.f64 im 3))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 6 (/.f64 1 (pow.f64 im 3))))
(-.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 6 (pow.f64 im 3)))
(+.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 -6 (pow.f64 im 3)))
(-.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(-.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7))))
(+.f64 (/.f64 -6 (pow.f64 im 3)) (+.f64 (/.f64 36 (pow.f64 im 5)) (/.f64 -216 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 -6 (pow.f64 im 3)) (/.f64 -216 (pow.f64 im 7))))
(-.f64 (+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 5))) (*.f64 1296 (/.f64 1 (pow.f64 im 9)))) (+.f64 (*.f64 6 (/.f64 1 (pow.f64 im 3))) (*.f64 216 (/.f64 1 (pow.f64 im 7)))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (-.f64 (/.f64 1296 (pow.f64 im 9)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7)))))
(+.f64 (/.f64 1296 (pow.f64 im 9)) (-.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 6 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 7)))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (+.f64 (/.f64 1296 (pow.f64 im 9)) (/.f64 -6 (pow.f64 im 3))) (/.f64 -216 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 5)) (+.f64 (/.f64 1296 (pow.f64 im 9)) (+.f64 (/.f64 -6 (pow.f64 im 3)) (/.f64 -216 (pow.f64 im 7)))))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 (pow.f64 im 3) -1/6)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 (pow.f64 im 3) -1/6)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) im)
(fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re)))) (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (*.f64 re re))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 re re) (fma.f64 (pow.f64 im 3) -1/6 im)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im)))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(fma.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 re (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) re))) (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (fma.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re))) (fma.f64 1/36 (/.f64 (pow.f64 im 6) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 1/24 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (pow.f64 re 4)))))) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (*.f64 re re))) (+.f64 (/.f64 (*.f64 (*.f64 1/24 (pow.f64 re 4)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im)))) (fma.f64 (pow.f64 im 3) -1/6 im)) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 re re) (fma.f64 (pow.f64 im 3) -1/6 im)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im)))) (fma.f64 1/24 (*.f64 (pow.f64 re 4) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))))
(+.f64 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im)) (*.f64 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im)) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 1/24 (pow.f64 re 4)))))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/720 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (fma.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re))) (fma.f64 1/36 (/.f64 (pow.f64 im 6) (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 1/24 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (pow.f64 re 4))) (*.f64 -1/720 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (pow.f64 re 6))))))) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (*.f64 re re))) (+.f64 (fma.f64 -1/720 (/.f64 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (pow.f64 re 6)) (fma.f64 (pow.f64 im 3) -1/6 im)) (/.f64 (*.f64 (*.f64 1/24 (pow.f64 re 4)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im)))) (fma.f64 (pow.f64 im 3) -1/6 im))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))))
(+.f64 (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 re re) (fma.f64 (pow.f64 im 3) -1/6 im)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im)))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))) (fma.f64 1/24 (*.f64 (pow.f64 re 4) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im))) (/.f64 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (pow.f64 re 6)) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) -1/720))))
(+.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 re (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) re))) (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im))) (*.f64 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 (pow.f64 im 3) -1/6 im)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (/.f64 (fma.f64 (pow.f64 im 3) -1/6 im) (cos.f64 re)))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 im (neg.f64 im))) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 im)))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 im (neg.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3))
(*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3))
(*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 (*.f64 (pow.f64 im 3) -1/6) (cos.f64 re)) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 3) -1/6 (neg.f64 im)))
(*.f64 (-.f64 (*.f64 (pow.f64 im 3) -1/6) im) (cos.f64 re))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))
(*.f64 1/36 (pow.f64 im 6))

eval700.0ms (4.6%)

Compiler

Compiled 19857 to 12986 computations (34.6% saved)

prune182.0ms (1.2%)

Pruning

28 alts after pruning (22 fresh and 6 done)

PrunedKeptTotal
New75414768
Fresh3811
Picked101
Done268
Total76028788
Error
0.0b
Counts
788 → 28
Alt Table
Click to see full alt table
StatusErrorProgram
30.4b
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
1.4b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
34.9b
(*.f64 (cos.f64 re) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
32.0b
(*.f64 (cos.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3))))
30.5b
(neg.f64 im)
2.6b
(*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))
43.3b
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))
1.6b
(*.f64 (cos.f64 re) (neg.f64 im))
1.6b
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
3.2b
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
34.4b
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
35.7b
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)
2.8b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
33.9b
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (neg.f64 im)) 2))
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
33.9b
(*.f64 (*.f64 (cos.f64 re) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
34.4b
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
2.7b
(*.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
34.9b
(/.f64 1 (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)))
30.2b
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
2.8b
(pow.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cbrt.f64 (cos.f64 re))) 3)
34.9b
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
1.9b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
57.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
1.7b
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
17.5b
(*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
58.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
Compiler

Compiled 855 to 645 computations (24.6% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 1/6 im) (/.f64 1 im))
0.2b
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
0.2b
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
0.4b
(*.f64 1/6 im)
Compiler

Compiled 42 to 29 computations (31% saved)

series9.0ms (0.1%)

Counts
4 → 39
Calls

15 calls:

TimeVariablePointExpression
2.0ms
re
@inf
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
1.0ms
re
@0
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
1.0ms
re
@-inf
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
1.0ms
im
@inf
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
1.0ms
im
@inf
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))

rewrite98.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
634×prod-diff_binary64
549×log-prod_binary64
294×pow2_binary64
247×fma-def_binary64
205×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01142
123736
2308536
Stop Event
node limit
Counts
4 → 218
Calls
Call 1
Inputs
(*.f64 1/6 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(-.f64 (*.f64 1/6 im) (/.f64 1 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) im)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/6) im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) im))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/6) im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 1/6 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/6 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/36 (*.f64 im im)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 1/6 im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 1/6 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/216 (pow.f64 im 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/36 (*.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 1/6) im))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 1/6 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 1/216 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 1/6 im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 1/6 im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 1/6 im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 1/6 im)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))) (cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -2)) (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1/2) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -2) (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3))) (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2)))) (fma.f64 1/6 im (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (fma.f64 1/6 im (/.f64 -1 im)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 1/6 im (/.f64 -1 im))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (fma.f64 1/6 im (/.f64 -1 im)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cbrt.f64 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (cos.f64 re)) (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (sqrt.f64 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (cos.f64 re)) (neg.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) 1) (fma.f64 1/6 im (/.f64 -1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2)) (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (cos.f64 re)) (neg.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) -1) (neg.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3) (pow.f64 (cos.f64 re) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (cos.f64 re) (fma.f64 1/6 im (/.f64 -1 im)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/6 im) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/6 im) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (/.f64 -1 im)) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 -1 (/.f64 1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 im -2))) (/.f64 1 (cbrt.f64 im)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 1/6 im (/.f64 -1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 im) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 im 1/6 (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 im) 1 (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (*.f64 1/6 im) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) 1/6) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (*.f64 1/6 im)) (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (cbrt.f64 (*.f64 1/6 im)) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) 1/6) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (*.f64 1/6 im)) (sqrt.f64 (*.f64 1/6 im)) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 (sqrt.f64 im)) (sqrt.f64 im) (neg.f64 (*.f64 (/.f64 -1 im) -1))) (fma.f64 (neg.f64 (/.f64 -1 im)) -1 (*.f64 (/.f64 -1 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1/6 im (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 im 1/6 (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 im) 1 (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (*.f64 1/6 im) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) 1/6) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (cbrt.f64 (*.f64 1/6 im)) (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (cbrt.f64 (*.f64 1/6 im)) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) 1/6) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (*.f64 1/6 im)) (sqrt.f64 (*.f64 1/6 im)) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 1/6 (sqrt.f64 im)) (sqrt.f64 im) (neg.f64 (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2)))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (pow.f64 (cbrt.f64 im) -2) (*.f64 (/.f64 1 (cbrt.f64 im)) (pow.f64 (cbrt.f64 im) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/6 im (/.f64 -1 im)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/6 im (/.f64 -1 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/6 im (/.f64 -1 im))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/6 im (/.f64 -1 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 1/6 im (/.f64 -1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3)) (/.f64 1 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2))) (/.f64 1 (fma.f64 1/6 im (/.f64 1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (-.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im)) (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 1 im)) (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 1/6 im (/.f64 -1 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3)) (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2))) (fma.f64 1/6 im (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3))) (neg.f64 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2)))) (neg.f64 (fma.f64 1/6 im (/.f64 1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/216 (pow.f64 im 3) (pow.f64 (/.f64 -1 im) 3)) (fma.f64 1/36 (*.f64 im im) (-.f64 (pow.f64 (/.f64 -1 im) 2) (*.f64 (*.f64 1/6 im) (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 1/36 (*.f64 im im)) (pow.f64 (/.f64 -1 im) 2)) (-.f64 (*.f64 1/6 im) (/.f64 -1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 1/6 im (/.f64 -1 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im)))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -1/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im)) (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 1/6 im (/.f64 1 im)) (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/6 im (/.f64 -1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 1/6 im))) (exp.f64 (/.f64 1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 1/6) im) (+.f64 1 (expm1.f64 (/.f64 1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 1/6 im))) (+.f64 1 (expm1.f64 (/.f64 1 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/6 im))) (exp.f64 (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/6 im))) (pow.f64 (E.f64) (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 -1 im)) (pow.f64 (exp.f64 1/6) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (/.f64 -1 im)) (+.f64 1 (expm1.f64 (*.f64 1/6 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (E.f64) (/.f64 -1 im)) (+.f64 1 (expm1.f64 (*.f64 1/6 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 1/6 im (/.f64 -1 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 1/6 im (/.f64 -1 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 im (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/6 im (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im 1/6 (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 im 1/6 (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 im) 1 (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 im) 1 (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 1/6 im) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 1/6 im) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 1/6 im (/.f64 -1 im)) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 1/6 im (/.f64 -1 im)) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 -1 im) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1 (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1 (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/6 im (/.f64 -1 im)) 1 (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 im -2)) (neg.f64 (/.f64 1 (cbrt.f64 im))) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) 1/6) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) 1/6) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) 2) (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/6 im)) (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/6 im)) (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (cbrt.f64 (*.f64 1/6 im)) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/6 im)) 2) (cbrt.f64 (*.f64 1/6 im)) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 im -1/2) (neg.f64 (pow.f64 im -1/2)) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) 1/6) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) 1/6) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (sqrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 1/6 im)) (sqrt.f64 (*.f64 1/6 im)) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 1/6 im)) (sqrt.f64 (*.f64 1/6 im)) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 im) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3)) (/.f64 1 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im))) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3)) (/.f64 1 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 1/216 (pow.f64 im 3)) (pow.f64 im -3)) (/.f64 1 (+.f64 (fma.f64 1/36 (*.f64 im im) (pow.f64 im -2)) (/.f64 (*.f64 1/6 im) im))) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2))) (/.f64 1 (fma.f64 1/6 im (/.f64 1 im))) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2))) (/.f64 1 (fma.f64 1/6 im (/.f64 1 im))) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 1/36 (*.f64 im im) (neg.f64 (pow.f64 im -2))) (/.f64 1 (fma.f64 1/6 im (/.f64 1 im))) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 -1 im)) 2) (cbrt.f64 (/.f64 -1 im)) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 -1 im)) (sqrt.f64 (/.f64 -1 im)) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 im -1/2)) (pow.f64 im -1/2) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (-.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (fma.f64 (/.f64 -1 im) 1 (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (-.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (fma.f64 (neg.f64 (/.f64 1 (cbrt.f64 im))) (cbrt.f64 (pow.f64 im -2)) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (-.f64 (sqrt.f64 (*.f64 1/6 im)) (pow.f64 im -1/2)) (+.f64 (/.f64 -1 im) (/.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 im -2))) (/.f64 1 (cbrt.f64 im)) (*.f64 1/6 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im) (*.f64 (/.f64 -1 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (sqrt.f64 im)) (sqrt.f64 im) (/.f64 -1 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/6 (sqrt.f64 im)) (sqrt.f64 im) (*.f64 (/.f64 -1 im) 1))))))

simplify67.0ms (0.4%)

Algorithm
egg-herbie
Rules
941×fma-def_binary64
512×fma-neg_binary64
501×cancel-sign-sub-inv_binary64
402×associate-*l*_binary64
349×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
092813
1245776
2624740
31673722
45006722
Stop Event
node limit
Counts
257 → 262
Calls
Call 1
Inputs
(*.f64 -1 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/36 (pow.f64 im 5)) (*.f64 -1 im)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/216 (pow.f64 im 7)) (+.f64 (*.f64 -1/36 (pow.f64 im 5)) (*.f64 -1 im))))
(/.f64 6 im)
(+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 3))) (*.f64 6 (/.f64 1 im)))
(+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3)))))
(+.f64 (*.f64 1296 (/.f64 1 (pow.f64 im 7))) (+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3))))))
(/.f64 6 im)
(+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 3))) (*.f64 6 (/.f64 1 im)))
(+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3)))))
(+.f64 (*.f64 1296 (/.f64 1 (pow.f64 im 7))) (+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3))))))
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))))
(+.f64 (*.f64 -1/720 (/.f64 (pow.f64 re 6) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/36 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (cos.f64 re) im))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/36 (*.f64 (cos.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/216 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(*.f64 6 (/.f64 (cos.f64 re) im))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 6 (/.f64 (cos.f64 re) im)))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)))))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5))))))
(*.f64 6 (/.f64 (cos.f64 re) im))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 6 (/.f64 (cos.f64 re) im)))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)))))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5))))))
(/.f64 -1 im)
(*.f64 1/6 im)
(*.f64 1/6 im)
Outputs
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im))
(fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/36 (pow.f64 im 5)) (*.f64 -1 im)))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/36 (pow.f64 im 5) (neg.f64 im)))
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/36 (pow.f64 im 5))) im)
(-.f64 (fma.f64 -1/36 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3))) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/216 (pow.f64 im 7)) (+.f64 (*.f64 -1/36 (pow.f64 im 5)) (*.f64 -1 im))))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/216 (pow.f64 im 7) (fma.f64 -1/36 (pow.f64 im 5) (neg.f64 im))))
(fma.f64 -1/6 (pow.f64 im 3) (-.f64 (fma.f64 -1/216 (pow.f64 im 7) (*.f64 -1/36 (pow.f64 im 5))) im))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/36 (pow.f64 im 5) (fma.f64 -1/216 (pow.f64 im 7) (neg.f64 im))))
(fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/36 (pow.f64 im 5) (-.f64 (*.f64 -1/216 (pow.f64 im 7)) im)))
(fma.f64 -1/36 (pow.f64 im 5) (fma.f64 -1/216 (pow.f64 im 7) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im))))
(/.f64 6 im)
(+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 3))) (*.f64 6 (/.f64 1 im)))
(+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))
(+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3)))))
(+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 6 im) (/.f64 216 (pow.f64 im 5))))
(+.f64 (/.f64 6 im) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 5))))
(+.f64 (*.f64 1296 (/.f64 1 (pow.f64 im 7))) (+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3))))))
(+.f64 (+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))) (/.f64 1296 (pow.f64 im 7)))
(+.f64 (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)) (+.f64 (/.f64 216 (pow.f64 im 5)) (/.f64 1296 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 1296 (pow.f64 im 7)) (+.f64 (/.f64 6 im) (/.f64 216 (pow.f64 im 5)))))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 6 im) (/.f64 1296 (pow.f64 im 7)))))
(/.f64 6 im)
(+.f64 (*.f64 36 (/.f64 1 (pow.f64 im 3))) (*.f64 6 (/.f64 1 im)))
(+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))
(+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3)))))
(+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 6 im) (/.f64 216 (pow.f64 im 5))))
(+.f64 (/.f64 6 im) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 216 (pow.f64 im 5))))
(+.f64 (*.f64 1296 (/.f64 1 (pow.f64 im 7))) (+.f64 (*.f64 216 (/.f64 1 (pow.f64 im 5))) (+.f64 (*.f64 6 (/.f64 1 im)) (*.f64 36 (/.f64 1 (pow.f64 im 3))))))
(+.f64 (+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))) (/.f64 1296 (pow.f64 im 7)))
(+.f64 (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)) (+.f64 (/.f64 216 (pow.f64 im 5)) (/.f64 1296 (pow.f64 im 7))))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 1296 (pow.f64 im 7)) (+.f64 (/.f64 6 im) (/.f64 216 (pow.f64 im 5)))))
(+.f64 (/.f64 36 (pow.f64 im 3)) (+.f64 (/.f64 216 (pow.f64 im 5)) (+.f64 (/.f64 6 im) (/.f64 1296 (pow.f64 im 7)))))
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 1 (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (/.f64 1 (-.f64 (*.f64 im 1/6) (/.f64 1 im))))
(fma.f64 -1/2 (/.f64 re (/.f64 (fma.f64 im 1/6 (/.f64 -1 im)) re)) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))
(fma.f64 -1/2 (*.f64 (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im))) re) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))
(fma.f64 (/.f64 -1/2 (fma.f64 im 1/6 (/.f64 -1 im))) (*.f64 re re) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))
(fma.f64 -1/2 (*.f64 re (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im)))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (/.f64 1 (-.f64 (*.f64 im 1/6) (/.f64 1 im)))))
(fma.f64 -1/2 (/.f64 re (/.f64 (fma.f64 im 1/6 (/.f64 -1 im)) re)) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im)))))
(fma.f64 -1/2 (*.f64 (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im))) re) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im)))))
(fma.f64 (/.f64 1/24 (fma.f64 im 1/6 (/.f64 -1 im))) (pow.f64 re 4) (fma.f64 (/.f64 -1/2 (fma.f64 im 1/6 (/.f64 -1 im))) (*.f64 re re) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im)))))
(fma.f64 -1/2 (*.f64 re (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im)))) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im)))))
(+.f64 (*.f64 -1/720 (/.f64 (pow.f64 re 6) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 re 2) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))))
(fma.f64 -1/720 (/.f64 (pow.f64 re 6) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (fma.f64 -1/2 (/.f64 (*.f64 re re) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (-.f64 (*.f64 im 1/6) (/.f64 1 im))) (/.f64 1 (-.f64 (*.f64 im 1/6) (/.f64 1 im))))))
(fma.f64 -1/720 (/.f64 (pow.f64 re 6) (fma.f64 im 1/6 (/.f64 -1 im))) (fma.f64 -1/2 (/.f64 re (/.f64 (fma.f64 im 1/6 (/.f64 -1 im)) re)) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))))
(fma.f64 -1/2 (*.f64 (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im))) re) (fma.f64 -1/720 (/.f64 (pow.f64 re 6) (fma.f64 im 1/6 (/.f64 -1 im))) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))))
(fma.f64 -1/2 (*.f64 re (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im)))) (fma.f64 (/.f64 1/24 (fma.f64 im 1/6 (/.f64 -1 im))) (pow.f64 re 4) (fma.f64 (/.f64 -1/720 (fma.f64 im 1/6 (/.f64 -1 im))) (pow.f64 re 6) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))))
(fma.f64 -1/2 (*.f64 re (/.f64 re (fma.f64 im 1/6 (/.f64 -1 im)))) (fma.f64 1/24 (/.f64 (pow.f64 re 4) (fma.f64 im 1/6 (/.f64 -1 im))) (fma.f64 -1/720 (/.f64 (pow.f64 re 6) (fma.f64 im 1/6 (/.f64 -1 im))) (/.f64 1 (fma.f64 im 1/6 (/.f64 -1 im))))))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (fma.f64 im 1/6 (/.f64 -1 im)))
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 im (neg.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re))))
(-.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re))) (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (cos.f64 re))
(*.f64 (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)) (cos.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/36 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (cos.f64 re) im))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/36 (*.f64 (pow.f64 im 5) (cos.f64 re)) (neg.f64 (*.f64 im (cos.f64 re)))))
(-.f64 (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (*.f64 (pow.f64 im 5) (*.f64 -1/36 (cos.f64 re)))) (*.f64 im (cos.f64 re)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 -1/36 (pow.f64 im 5) (neg.f64 im))))
(*.f64 (cos.f64 re) (-.f64 (fma.f64 -1/36 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 im 3))) im))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/36 (pow.f64 im 5) (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/36 (*.f64 (cos.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1 (*.f64 (cos.f64 re) im)) (*.f64 -1/216 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/36 (*.f64 (pow.f64 im 5) (cos.f64 re)) (fma.f64 -1 (*.f64 im (cos.f64 re)) (*.f64 -1/216 (*.f64 (pow.f64 im 7) (cos.f64 re))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/36 (*.f64 (pow.f64 im 5) (cos.f64 re)) (-.f64 (*.f64 -1/216 (*.f64 (pow.f64 im 7) (cos.f64 re))) (*.f64 im (cos.f64 re)))))
(+.f64 (*.f64 (cos.f64 re) (fma.f64 -1/36 (pow.f64 im 5) (neg.f64 im))) (*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/216 (pow.f64 im 7)))))
(*.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/36 (pow.f64 im 5) (-.f64 (*.f64 -1/216 (pow.f64 im 7)) im))))
(*.f64 (cos.f64 re) (fma.f64 -1/36 (pow.f64 im 5) (fma.f64 -1/216 (pow.f64 im 7) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))
(*.f64 6 (/.f64 (cos.f64 re) im))
(/.f64 (*.f64 6 (cos.f64 re)) im)
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 6 (/.f64 (cos.f64 re) im)))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (*.f64 6 (/.f64 (cos.f64 re) im)))
(fma.f64 6 (/.f64 (cos.f64 re) im) (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))))
(*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))))
(*.f64 (cos.f64 re) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)))))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (fma.f64 6 (/.f64 (cos.f64 re) im) (/.f64 (*.f64 216 (cos.f64 re)) (pow.f64 im 5))))
(fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im)))))
(fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (cos.f64 re) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5))))))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (fma.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7)) (fma.f64 6 (/.f64 (cos.f64 re) im) (/.f64 (*.f64 216 (cos.f64 re)) (pow.f64 im 5)))))
(fma.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7)) (fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))))))
(fma.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))) (*.f64 (cos.f64 re) (+.f64 (/.f64 216 (pow.f64 im 5)) (/.f64 1296 (pow.f64 im 7)))))
(*.f64 6 (/.f64 (cos.f64 re) im))
(/.f64 (*.f64 6 (cos.f64 re)) im)
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 6 (/.f64 (cos.f64 re) im)))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (*.f64 6 (/.f64 (cos.f64 re) im)))
(fma.f64 6 (/.f64 (cos.f64 re) im) (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))))
(*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))))
(*.f64 (cos.f64 re) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im)))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)))))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (fma.f64 6 (/.f64 (cos.f64 re) im) (/.f64 (*.f64 216 (cos.f64 re)) (pow.f64 im 5))))
(fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im)))))
(fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (cos.f64 re) (+.f64 (/.f64 36 (pow.f64 im 3)) (/.f64 6 im))))
(+.f64 (*.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 6 (/.f64 (cos.f64 re) im)) (*.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5))))))
(fma.f64 36 (/.f64 (cos.f64 re) (pow.f64 im 3)) (fma.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7)) (fma.f64 6 (/.f64 (cos.f64 re) im) (/.f64 (*.f64 216 (cos.f64 re)) (pow.f64 im 5)))))
(fma.f64 1296 (/.f64 (cos.f64 re) (pow.f64 im 7)) (fma.f64 216 (/.f64 (cos.f64 re) (pow.f64 im 5)) (*.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))))))
(fma.f64 (/.f64 (cos.f64 re) im) (+.f64 6 (/.f64 36 (*.f64 im im))) (*.f64 (cos.f64 re) (+.f64 (/.f64 216 (pow.f64 im 5)) (/.f64 1296 (pow.f64 im 7)))))
(/.f64 -1 im)
(*.f64 1/6 im)
(*.f64 im 1/6)
(*.f64 1/6 im)
(*.f64 im 1/6)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (*.f64 im (*.f64 re re)))
0.0b
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
10.6b
(*.f64 im (*.f64 re re))
Compiler

Compiled 29 to 10 computations (65.5% saved)

series7.0ms (0%)

Counts
3 → 72
Calls

18 calls:

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

rewrite74.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
912×pow1_binary64
848×add-log-exp_binary64
848×log1p-expm1-u_binary64
848×expm1-log1p-u_binary64
829×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify137.0ms (0.9%)

Algorithm
egg-herbie
Rules
1013×fma-neg_binary64
889×fma-def_binary64
436×unswap-sqr_binary64
407×distribute-rgt-neg-in_binary64
351×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020662
145662
2102662
3281662
4891662
51857662
63390662
74504662
85635662
96338662
106760662
117073662
127877662
Stop Event
node limit
Counts
134 → 72
Calls
Call 1
Inputs
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (pow.f64 re 2) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 -1 im)
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
Outputs
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (pow.f64 re 2) im)
(*.f64 (*.f64 re re) im)
(*.f64 re (*.f64 re im))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 (-.f64 (*.f64 1/2 (pow.f64 re 2)) 1) im)
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 -1 (*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) im))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 -1 im)
(neg.f64 im)
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(+.f64 (*.f64 -1 im) (*.f64 1/2 (*.f64 (pow.f64 re 2) im)))
(*.f64 im (fma.f64 1/2 (*.f64 re re) -1))
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(*.f64 im (fma.f64 re (*.f64 re 1/2) -1))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) im))
(*.f64 (*.f64 (*.f64 re re) im) 1/2)
(*.f64 (*.f64 re re) (*.f64 im 1/2))
(*.f64 re (*.f64 (*.f64 re im) 1/2))
(*.f64 re (*.f64 1/2 (*.f64 re im)))
(*.f64 re (*.f64 re (*.f64 im -1/2)))

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 re) (neg.f64 im))
0.6b
(cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im)))
0.7b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
Compiler

Compiled 28 to 9 computations (67.9% saved)

series18.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
5.0ms
re
@inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
4.0ms
re
@0
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
2.0ms
re
@-inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
1.0ms
im
@0
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
1.0ms
im
@inf
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)

rewrite198.0ms (1.3%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0918
119114
2206814
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
(cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (cos.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 re) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (cos.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) (cbrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 im) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 im) 2) (*.f64 (cbrt.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) (sqrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) (*.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 im) (*.f64 (sqrt.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (cos.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)) 3) (cbrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) 3) (pow.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (cos.f64 re)) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 im) 2)) (cbrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) (sqrt.f64 im)) (sqrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 re) -1) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) 1) (cbrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) (cbrt.f64 (cos.f64 re))) (cbrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2))) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) (pow.f64 (*.f64 (cos.f64 re) im) 1/6)) (pow.f64 (*.f64 (cos.f64 re) im) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (cos.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 im) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 im 3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) im)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 (cos.f64 re) im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 im) (cbrt.f64 (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2)) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) (pow.f64 (*.f64 (cos.f64 re) im) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) 1/3) (pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) im) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) im) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) im))))))))

simplify76.0ms (0.5%)

Algorithm
egg-herbie
Rules
717×fma-def_binary64
479×unsub-neg_binary64
376×*-commutative_binary64
370×neg-mul-1_binary64
364×neg-sub0_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0108691
1364659
21287573
34989551
47271551
Stop Event
node limit
Counts
83 → 79
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 1 1/3) im))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/18 (*.f64 (pow.f64 1 1/3) im)))) (pow.f64 re 4)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im))))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (+.f64 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/18 (*.f64 (pow.f64 1 1/3) im)))) (pow.f64 re 4)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im)))))))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)) (pow.f64 re 4))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)) (pow.f64 re 4))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1)) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
Outputs
(*.f64 -1 (*.f64 (pow.f64 1 1/3) im))
(neg.f64 im)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im)))))
(fma.f64 -1 im (*.f64 (*.f64 re re) (*.f64 im 1/2)))
(fma.f64 (*.f64 re re) (*.f64 im 1/2) (neg.f64 im))
(-.f64 (*.f64 (*.f64 re re) (*.f64 im 1/2)) im)
(*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/18 (*.f64 (pow.f64 1 1/3) im)))) (pow.f64 re 4)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im))))))
(fma.f64 -1 im (fma.f64 (+.f64 (fma.f64 (cbrt.f64 im) (*.f64 (cbrt.f64 -1) (fma.f64 1/36 (*.f64 (cbrt.f64 (*.f64 im im)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 im))) (*.f64 (*.f64 im -1/24) (pow.f64 (cbrt.f64 -1) 2))))) (*.f64 im -1/18)) (*.f64 -1/3 (*.f64 im -1/24))) (pow.f64 re 4) (*.f64 (*.f64 re re) (*.f64 im 1/2))))
(-.f64 (fma.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (fma.f64 2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (*.f64 im -1/24)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (pow.f64 (cbrt.f64 -1) 2) 1/36))) (*.f64 im -1/18)) (*.f64 im 1/72)) (pow.f64 re 4) (*.f64 im (*.f64 1/2 (*.f64 re re)))) im)
(-.f64 (fma.f64 (fma.f64 (cbrt.f64 im) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (cbrt.f64 (/.f64 1 im))))))) (*.f64 im -1/24)) (pow.f64 re 4) (*.f64 (*.f64 re re) (*.f64 im 1/2))) im)
(fma.f64 (fma.f64 (cbrt.f64 im) (fma.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im))))) (neg.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))))) (*.f64 im -1/24)) (pow.f64 re 4) (*.f64 im (fma.f64 (*.f64 re re) 1/2 -1)))
(fma.f64 (fma.f64 (cbrt.f64 im) (-.f64 (*.f64 2/3 (*.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im)))))) (*.f64 1/36 (cbrt.f64 (*.f64 im im)))) (*.f64 im -1/24)) (pow.f64 re 4) (*.f64 im (fma.f64 (*.f64 re re) 1/2 -1)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 1 1/3) im)) (+.f64 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))) (+.f64 (*.f64 1/9 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/9 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))))) (+.f64 (*.f64 (+.f64 (*.f64 -1/3 (*.f64 (pow.f64 1 1/3) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 (*.f64 1 (pow.f64 im 2)) 1/3) (pow.f64 (cbrt.f64 -1) 2))) (*.f64 2/3 (*.f64 (pow.f64 (/.f64 1 im) 1/3) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)))))))) (*.f64 -1/18 (*.f64 (pow.f64 1 1/3) im)))) (pow.f64 re 4)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/3 (*.f64 (pow.f64 1 1/3) im)) (*.f64 1/6 (*.f64 (pow.f64 1 1/3) im)))))))
(fma.f64 -1 im (fma.f64 (pow.f64 re 6) (fma.f64 -1/6 (*.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (fma.f64 1/36 (*.f64 (cbrt.f64 (*.f64 im im)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 im))) (*.f64 (*.f64 im -1/24) (pow.f64 (cbrt.f64 -1) 2))))) (+.f64 (*.f64 1/9 (*.f64 im -1/24)) (fma.f64 (cbrt.f64 im) (*.f64 (cbrt.f64 -1) (fma.f64 2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (pow.f64 (cbrt.f64 -1) 2)) (-.f64 (*.f64 im -1/720) (fma.f64 -1/216 im (*.f64 -1/3 (*.f64 im -1/24))))) (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (*.f64 (*.f64 im -1/24) (pow.f64 (cbrt.f64 -1) 2))) -1/9))) (*.f64 -1/3 (-.f64 (*.f64 im -1/720) (fma.f64 -1/216 im (*.f64 -1/3 (*.f64 im -1/24)))))))) (fma.f64 (+.f64 (fma.f64 (cbrt.f64 im) (*.f64 (cbrt.f64 -1) (fma.f64 1/36 (*.f64 (cbrt.f64 (*.f64 im im)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (*.f64 2/3 (cbrt.f64 (/.f64 1 im))) (*.f64 (*.f64 im -1/24) (pow.f64 (cbrt.f64 -1) 2))))) (*.f64 im -1/18)) (*.f64 -1/3 (*.f64 im -1/24))) (pow.f64 re 4) (*.f64 (*.f64 re re) (*.f64 im 1/2)))))
(-.f64 (fma.f64 (pow.f64 re 6) (fma.f64 (*.f64 (fma.f64 2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (*.f64 im -1/24)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (pow.f64 (cbrt.f64 -1) 2) 1/36))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))) -1/6 (fma.f64 (*.f64 im -1/24) 1/9 (fma.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (fma.f64 2/3 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (*.f64 (-.f64 (*.f64 im 7/2160) (*.f64 im 1/72)) (cbrt.f64 (/.f64 1 im)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (*.f64 im -1/24)) (pow.f64 (cbrt.f64 -1) 2)) -1/9)) (*.f64 -1/3 (-.f64 (*.f64 im 7/2160) (*.f64 im 1/72)))))) (fma.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (fma.f64 2/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 im)) (*.f64 im -1/24)) (pow.f64 (cbrt.f64 -1) 2)) (*.f64 (cbrt.f64 (*.f64 im im)) (*.f64 (pow.f64 (cbrt.f64 -1) 2) 1/36))) (*.f64 im -1/18)) (*.f64 im 1/72)) (pow.f64 re 4) (*.f64 im (*.f64 1/2 (*.f64 re re))))) im)
(-.f64 (fma.f64 (fma.f64 (cbrt.f64 im) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (cbrt.f64 (/.f64 1 im))))))) (*.f64 im -1/24)) (pow.f64 re 4) (fma.f64 (pow.f64 re 6) (fma.f64 (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (cbrt.f64 (/.f64 1 im))))))) (*.f64 (cbrt.f64 im) -1/6) (fma.f64 -1/3 (*.f64 im -23/2160) (fma.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im))) (+.f64 (*.f64 2/3 (*.f64 im -23/2160)) (*.f64 (*.f64 im -1/24) -1/9))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (*.f64 (*.f64 im -1/24) 1/9)))) (*.f64 (*.f64 re re) (*.f64 im 1/2)))) im)
(fma.f64 (pow.f64 re 6) (+.f64 (fma.f64 -1/3 (*.f64 im -23/2160) (*.f64 -1/24 (*.f64 im 1/9))) (*.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (+.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im))) (+.f64 (*.f64 2/3 (*.f64 im -23/2160)) (*.f64 (*.f64 im -1/24) -1/9))) (*.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (cbrt.f64 (/.f64 1 im)))))) -1/6)))) (fma.f64 (fma.f64 (cbrt.f64 im) (fma.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im))))) (neg.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))))) (*.f64 im -1/24)) (pow.f64 re 4) (*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))))
(fma.f64 (pow.f64 re 6) (+.f64 (fma.f64 -1/3 (*.f64 im -23/2160) (*.f64 -1/24 (*.f64 im 1/9))) (*.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 -1)) (+.f64 (*.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im))) (+.f64 (*.f64 2/3 (*.f64 im -23/2160)) (*.f64 (*.f64 im -1/24) -1/9))) (*.f64 (*.f64 (pow.f64 (cbrt.f64 -1) 2) (+.f64 (*.f64 1/36 (cbrt.f64 (*.f64 im im))) (*.f64 (*.f64 im -1/24) (*.f64 2/3 (cbrt.f64 (/.f64 1 im)))))) -1/6)))) (fma.f64 (fma.f64 (cbrt.f64 im) (-.f64 (*.f64 2/3 (*.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (*.f64 (pow.f64 (cbrt.f64 -1) 2) (cbrt.f64 (/.f64 1 im)))))) (*.f64 1/36 (cbrt.f64 (*.f64 im im)))) (*.f64 im -1/24)) (pow.f64 re 4) (*.f64 im (fma.f64 (*.f64 re re) 1/2 -1))))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 -1 (*.f64 (*.f64 (cos.f64 re) im) (pow.f64 1 1/3)))
(neg.f64 (*.f64 im (cos.f64 re)))
(*.f64 (neg.f64 im) (cos.f64 re))
(*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 im) (cbrt.f64 -1))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1)))
(fma.f64 -1/6 (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) (cbrt.f64 -1))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1)))
(fma.f64 -1/6 (*.f64 (*.f64 re re) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1)))
(*.f64 (cbrt.f64 im) (+.f64 (cbrt.f64 -1) (*.f64 -1/6 (*.f64 re (*.f64 re (cbrt.f64 -1))))))
(*.f64 (+.f64 (*.f64 (*.f64 re re) -1/6) 1) (*.f64 (cbrt.f64 im) (cbrt.f64 -1)))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)) (pow.f64 re 4))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (pow.f64 re 4)))) (fma.f64 -1/6 (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) (cbrt.f64 -1))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))))
(fma.f64 1/3 (*.f64 (*.f64 (*.f64 im -1/24) (pow.f64 re 4)) (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 1 (*.f64 im im))))) (fma.f64 -1/6 (*.f64 (*.f64 re re) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))))
(fma.f64 1/3 (*.f64 (cbrt.f64 -1) (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 im (*.f64 (pow.f64 re 4) -1/24)))) (*.f64 (cbrt.f64 im) (+.f64 (cbrt.f64 -1) (*.f64 -1/6 (*.f64 re (*.f64 re (cbrt.f64 -1)))))))
(*.f64 (cbrt.f64 -1) (+.f64 (+.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) (*.f64 (cbrt.f64 im) -1/6))) (*.f64 (*.f64 im (*.f64 (pow.f64 re 4) -1/24)) (*.f64 1/3 (cbrt.f64 (/.f64 1 (*.f64 im im)))))))
(+.f64 (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im)) (pow.f64 re 4))))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (*.f64 (cbrt.f64 -1) (pow.f64 re 2)))) (+.f64 (*.f64 (pow.f64 (*.f64 1 im) 1/3) (cbrt.f64 -1)) (*.f64 1/3 (*.f64 (pow.f64 (/.f64 1 (pow.f64 im 2)) 1/3) (*.f64 (cbrt.f64 -1) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/720 im) (+.f64 (*.f64 -1/216 im) (*.f64 -1/3 (-.f64 (*.f64 1/24 im) (*.f64 1/12 im))))))))))))
(fma.f64 1/3 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (*.f64 (cbrt.f64 -1) (*.f64 (*.f64 im -1/24) (pow.f64 re 4)))) (fma.f64 -1/6 (*.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) (cbrt.f64 -1))) (fma.f64 (cbrt.f64 im) (cbrt.f64 -1) (*.f64 1/3 (*.f64 (*.f64 (cbrt.f64 (/.f64 1 (*.f64 im im))) (cbrt.f64 -1)) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 im -1/720) (fma.f64 -1/216 im (*.f64 -1/3 (*.f64 im -1/24))))))))))
(fma.f64 1/3 (*.f64 (*.f64 (*.f64 im -1/24) (pow.f64 re 4)) (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 1 (*.f64 im im))))) (fma.f64 -1/6 (*.f64 (*.f64 re re) (*.f64 (cbrt.f64 im) (cbrt.f64 -1))) (fma.f64 1/3 (*.f64 (cbrt.f64 -1) (*.f64 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 im 7/2160) (*.f64 im 1/72))) (cbrt.f64 (/.f64 1 (*.f64 im im))))) (*.f64 (cbrt.f64 im) (cbrt.f64 -1)))))
(+.f64 (*.f64 (cbrt.f64 im) (+.f64 (cbrt.f64 -1) (*.f64 -1/6 (*.f64 re (*.f64 re (cbrt.f64 -1)))))) (*.f64 (*.f64 1/3 (*.f64 (cbrt.f64 -1) (cbrt.f64 (/.f64 1 (*.f64 im im))))) (+.f64 (*.f64 (pow.f64 re 6) (*.f64 im -23/2160)) (*.f64 im (*.f64 (pow.f64 re 4) -1/24)))))
(*.f64 (cbrt.f64 -1) (+.f64 (+.f64 (cbrt.f64 im) (*.f64 (*.f64 re re) (*.f64 (cbrt.f64 im) -1/6))) (*.f64 (*.f64 1/3 (cbrt.f64 (/.f64 1 (*.f64 im im)))) (+.f64 (*.f64 (pow.f64 re 6) (*.f64 im -23/2160)) (*.f64 im (*.f64 (pow.f64 re 4) -1/24))))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))
(*.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 1 im)) 1/3) (cbrt.f64 -1))
(*.f64 (cbrt.f64 -1) (cbrt.f64 (*.f64 im (cos.f64 re))))

localize33.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 -1/6 (pow.f64 im 3) im)
0.1b
(*.f64 (pow.f64 im 6) 1/36)
0.1b
(*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))
33.6b
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
Compiler

Compiled 70 to 42 computations (40% saved)

series5.0ms (0%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
0.0ms
re
@0
(*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))
0.0ms
re
@0
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
0.0ms
im
@0
(*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))
0.0ms
im
@inf
(*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))
0.0ms
im
@0
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))

rewrite92.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
900×prod-diff_binary64
443×fma-def_binary64
283×expm1-udef_binary64
283×log1p-udef_binary64
230×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01654
135854
2444954
Stop Event
node limit
Counts
3 → 125
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))
(fma.f64 -1/6 (pow.f64 im 3) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 im 6) 1/36) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) (/.f64 (*.f64 im im) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (cos.f64 re) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 re) (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (*.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))) (cbrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 2)) (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (*.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))) (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (neg.f64 (cos.f64 re))) (/.f64 1 (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) 1) (/.f64 (cos.f64 re) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 re) 1) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) 1) (/.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 1) (/.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))) (/.f64 (cos.f64 re) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 re) (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))) (/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))) (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))) (/.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (cos.f64 re) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 re) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (neg.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 3) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (pow.f64 im 6) 1/36) (cos.f64 re)) (*.f64 (*.f64 im (neg.f64 im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 6) 1/36)) (*.f64 (cos.f64 re) (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 1/46656 (pow.f64 (pow.f64 im 6) 3)) (pow.f64 im 6)) (cos.f64 re)) (fma.f64 1/1296 (pow.f64 im 12) (*.f64 (*.f64 im im) (fma.f64 im im (*.f64 (pow.f64 im 6) 1/36)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 1/1296 (pow.f64 im 12)) (pow.f64 im 4)) (cos.f64 re)) (fma.f64 im im (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/46656 (pow.f64 (pow.f64 im 6) 3)) (pow.f64 im 6))) (fma.f64 1/1296 (pow.f64 im 12) (*.f64 (*.f64 im im) (fma.f64 im im (*.f64 (pow.f64 im 6) 1/36)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/1296 (pow.f64 im 12)) (pow.f64 im 4))) (fma.f64 im im (*.f64 (pow.f64 im 6) 1/36)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) 3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 im 6) 1/36) (cos.f64 re) (*.f64 (*.f64 im (neg.f64 im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (*.f64 (pow.f64 im 6) 1/36) (*.f64 (cos.f64 re) (*.f64 im (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 1 (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) 1 (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) 2) (cbrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (sqrt.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2)) (cbrt.f64 (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) 2)) (cbrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 re) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (fma.f64 im (neg.f64 im) (*.f64 im im)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cos.f64 re) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))) (sqrt.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (*.f64 (cos.f64 re) (fma.f64 im (neg.f64 im) (*.f64 im im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 im (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) im)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 im 3) im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2)) (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -1/6 (pow.f64 im 3)) 3) (pow.f64 im 3)) (fma.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (*.f64 im im) (*.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/6 (pow.f64 im 3) im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 im) (exp.f64 (*.f64 -1/6 (pow.f64 im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 im)) (exp.f64 (*.f64 -1/6 (pow.f64 im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 -1/6 (pow.f64 im 3))) (+.f64 1 (expm1.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/6 (pow.f64 im 3) im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/6 (pow.f64 im 3) im)) 1))))))

simplify59.0ms (0.4%)

Algorithm
egg-herbie
Rules
685×associate-/l*_binary64
560×associate-+l+_binary64
442×associate-/r*_binary64
326×times-frac_binary64
286×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0681456
11931336
26021245
324781188
Stop Event
node limit
Counts
185 → 159
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/720 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6))) (pow.f64 im 2))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6)))) (pow.f64 im 2))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/720 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6))) (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6))))) (pow.f64 im 2))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
Outputs
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im))
(/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re)))) (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 re re)) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (*.f64 (/.f64 re (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))) re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (fma.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re))) (fma.f64 1/36 (/.f64 (pow.f64 im 6) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 4)) (fma.f64 -1/6 (pow.f64 im 3) im))))) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 re re)) (+.f64 (/.f64 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (*.f64 (pow.f64 re 4) 1/24)) (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))
(fma.f64 -1/2 (/.f64 (*.f64 re re) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 re 4) (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im)))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))
(+.f64 (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/24 (pow.f64 re 4)))))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/36 (/.f64 (pow.f64 im 6) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/720 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) (/.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(-.f64 (fma.f64 -1/2 (/.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 re re))) (fma.f64 1/36 (/.f64 (pow.f64 im 6) (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 1/24 (/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 4)) (fma.f64 -1/6 (pow.f64 im 3) im)) (/.f64 (*.f64 -1/720 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 6))) (fma.f64 -1/6 (pow.f64 im 3) im))))) (/.f64 (*.f64 im im) (fma.f64 -1/6 (pow.f64 im 3) im)))
(fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (*.f64 re re)) (+.f64 (fma.f64 -1/720 (*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (pow.f64 re 6)) (/.f64 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (*.f64 (pow.f64 re 4) 1/24)) (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 re re) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 re 4) (fma.f64 -1/6 (pow.f64 im 3) im)) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im)))) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (fma.f64 1/24 (*.f64 (pow.f64 re 4) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im))) (*.f64 (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)) (+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 -1/720 (pow.f64 re 6)))))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(/.f64 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)) (cos.f64 re))
(*.f64 (cos.f64 re) (/.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 (cos.f64 re) (/.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (fma.f64 -1/6 (pow.f64 im 3) im)))
(*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(neg.f64 (*.f64 (cos.f64 re) (*.f64 im im)))
(*.f64 (cos.f64 re) (neg.f64 (*.f64 im im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6)))
(*.f64 (pow.f64 im 6) (*.f64 (cos.f64 re) 1/36))
(*.f64 (cos.f64 re) (*.f64 1/36 (pow.f64 im 6)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6)))
(*.f64 (pow.f64 im 6) (*.f64 (cos.f64 re) 1/36))
(*.f64 (cos.f64 re) (*.f64 1/36 (pow.f64 im 6)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2))
(-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im))
(fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im)))
(*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6))) (pow.f64 im 2))
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (*.f64 re re)) (*.f64 1/36 (pow.f64 im 6))) (*.f64 im im))
(-.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (*.f64 (*.f64 re re) -1/2))) (*.f64 im im))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (+.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6)))) (pow.f64 im 2))
(-.f64 (fma.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 4)) (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (*.f64 re re)) (*.f64 1/36 (pow.f64 im 6)))) (*.f64 im im))
(-.f64 (fma.f64 1/24 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (pow.f64 re 4)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (*.f64 (*.f64 re re) -1/2)))) (*.f64 im im))
(-.f64 (fma.f64 1/36 (pow.f64 im 6) (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/2 (*.f64 re re))))) (*.f64 im im))
(*.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (+.f64 (+.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/24 (pow.f64 re 4))))
(-.f64 (+.f64 (*.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/720 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 6))) (+.f64 (*.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 1/36 (pow.f64 im 6))))) (pow.f64 im 2))
(-.f64 (fma.f64 1/24 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 4)) (fma.f64 -1/720 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (pow.f64 re 6)) (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (*.f64 im im)) (*.f64 re re)) (*.f64 1/36 (pow.f64 im 6))))) (*.f64 im im))
(-.f64 (fma.f64 1/24 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (pow.f64 re 4)) (fma.f64 -1/720 (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (pow.f64 re 6)) (fma.f64 1/36 (pow.f64 im 6) (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (*.f64 (*.f64 re re) -1/2))))) (*.f64 im im))
(+.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im)))) (*.f64 (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 1/36 (pow.f64 im 6)) (-.f64 (*.f64 (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)) (+.f64 (*.f64 re (*.f64 re -1/2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6))))) (*.f64 im im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
(*.f64 (-.f64 (*.f64 1/36 (pow.f64 im 6)) (pow.f64 im 2)) (cos.f64 re))
(fma.f64 -1 (*.f64 (cos.f64 re) (*.f64 im im)) (*.f64 1/36 (*.f64 (cos.f64 re) (pow.f64 im 6))))
(*.f64 (cos.f64 re) (fma.f64 1/36 (pow.f64 im 6) (neg.f64 (*.f64 im im))))
(*.f64 (cos.f64 re) (*.f64 im (-.f64 (*.f64 1/36 (pow.f64 im 5)) im)))
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(fma.f64 -1/6 (pow.f64 im 3) im)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (cos.f64 re))
0.1b
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
0.1b
(*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
0.1b
(*.f64 -1/6 (pow.f64 im 3))
Compiler

Compiled 52 to 30 computations (42.3% saved)

series7.0ms (0%)

Counts
3 → 52
Calls

15 calls:

TimeVariablePointExpression
1.0ms
im
@inf
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
1.0ms
re
@inf
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
1.0ms
re
@-inf
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
1.0ms
im
@0
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
1.0ms
re
@0
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))

rewrite71.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
646×prod-diff_binary64
591×log-prod_binary64
354×fma-def_binary64
311×pow2_binary64
234×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify75.0ms (0.5%)

Algorithm
egg-herbie
Rules
885×unsub-neg_binary64
522×fma-def_binary64
341×+-commutative_binary64
339×sub-neg_binary64
301×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0691178
1195945
2623884
33140846
46027846
Stop Event
node limit
Counts
131 → 113
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (cos.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) im)
(-.f64 (+.f64 (*.f64 -1/96 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (+.f64 (*.f64 -1/96 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -19/5760 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
1
(+.f64 1 (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 1 (+.f64 (*.f64 -1/96 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 1 (+.f64 (*.f64 -19/5760 (pow.f64 re 6)) (+.f64 (*.f64 -1/96 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))))
Outputs
(*.f64 -1 (*.f64 (cos.f64 re) im))
(neg.f64 (*.f64 (cos.f64 re) im))
(*.f64 (cos.f64 re) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (cos.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (cos.f64 re) im)))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 -1/6 (pow.f64 im 3))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3))) im)
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 -1/2 (*.f64 re re) 1))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 re (*.f64 re -1/2))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (*.f64 1/24 (pow.f64 re 4))))
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/24 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (fma.f64 -1/720 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 6)) (*.f64 1/24 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)))))) im)
(-.f64 (fma.f64 -1/2 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))) (*.f64 re (*.f64 re -1/2))))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (fma.f64 -1/2 (*.f64 re re) 1) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6)))))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)) (neg.f64 (*.f64 (cos.f64 re) im)))
(*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im))
(neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re))))
(*.f64 im (neg.f64 (sqrt.f64 (cos.f64 re))))
(*.f64 (sqrt.f64 (cos.f64 re)) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (sqrt.f64 (cos.f64 re))))
(*.f64 (*.f64 -1/6 (pow.f64 im 3)) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (sqrt.f64 (cos.f64 re))))
(*.f64 (*.f64 -1/6 (pow.f64 im 3)) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sqrt.f64 (cos.f64 re)) im)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 (*.f64 re re) -1/4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) im)
(*.f64 (fma.f64 re (*.f64 re -1/4) 1) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (+.f64 (*.f64 -1/96 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (fma.f64 -1/96 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 (*.f64 re re) -1/4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) im)
(-.f64 (fma.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)) -1/96 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (*.f64 re re) -1/4 (*.f64 (pow.f64 re 4) -1/96)))) im)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 re (*.f64 re -1/4) (fma.f64 (pow.f64 re 4) -1/96 1)))
(-.f64 (+.f64 (*.f64 -1/96 (*.f64 (pow.f64 re 4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -19/5760 (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))) im)
(-.f64 (fma.f64 -1/96 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 4)) (fma.f64 -19/5760 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 6)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 (*.f64 re re) -1/4) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (pow.f64 re 6) -19/5760 (*.f64 (pow.f64 re 4) -1/96))) (-.f64 (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (*.f64 re re) (*.f64 -1/4 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))) im))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 re (*.f64 re -1/4) (fma.f64 (pow.f64 re 6) -19/5760 (*.f64 (pow.f64 re 4) -1/96)))) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (fma.f64 (pow.f64 re 6) -19/5760 (fma.f64 re (*.f64 re -1/4) (fma.f64 (pow.f64 re 4) -1/96 1))))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
(*.f64 (sqrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (sqrt.f64 (cos.f64 re))) (neg.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re)))
1
(+.f64 1 (*.f64 -1/4 (pow.f64 re 2)))
(+.f64 1 (*.f64 (*.f64 re re) -1/4))
(fma.f64 (*.f64 re re) -1/4 1)
(fma.f64 re (*.f64 re -1/4) 1)
(+.f64 1 (+.f64 (*.f64 -1/96 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 1 (fma.f64 -1/96 (pow.f64 re 4) (*.f64 (*.f64 re re) -1/4)))
(+.f64 1 (fma.f64 (*.f64 re re) -1/4 (*.f64 (pow.f64 re 4) -1/96)))
(fma.f64 re (*.f64 re -1/4) (fma.f64 (pow.f64 re 4) -1/96 1))
(+.f64 1 (+.f64 (*.f64 -19/5760 (pow.f64 re 6)) (+.f64 (*.f64 -1/96 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 1 (fma.f64 -19/5760 (pow.f64 re 6) (fma.f64 -1/96 (pow.f64 re 4) (*.f64 (*.f64 re re) -1/4))))
(+.f64 (fma.f64 (pow.f64 re 6) -19/5760 (*.f64 (pow.f64 re 4) -1/96)) (fma.f64 (*.f64 re re) -1/4 1))
(fma.f64 (pow.f64 re 6) -19/5760 (fma.f64 re (*.f64 re -1/4) (fma.f64 (pow.f64 re 4) -1/96 1)))

eval326.0ms (2.1%)

Compiler

Compiled 15749 to 9726 computations (38.2% saved)

prune230.0ms (1.5%)

Pruning

28 alts after pruning (19 fresh and 9 done)

PrunedKeptTotal
New75512767
Fresh10717
Picked101
Done1910
Total76728795
Error
0.0b
Counts
795 → 28
Alt Table
Click to see full alt table
StatusErrorProgram
1.6b
(/.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)))
1.4b
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
2.7b
(*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -3))
34.9b
(*.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 1)
30.5b
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
1.9b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
30.5b
(neg.f64 im)
2.6b
(*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))
34.4b
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
1.7b
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
1.6b
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
61.4b
(*.f64 (cos.f64 re) im)
43.4b
(*.f64 (cos.f64 re) (cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3)))
1.6b
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
34.2b
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
2.8b
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
33.9b
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (neg.f64 im)) 2))
35.1b
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) im)
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
60.1b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
17.6b
(*.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (neg.f64 im)) (sqrt.f64 (cos.f64 re)))
58.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
30.2b
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
2.8b
(pow.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cbrt.f64 (cos.f64 re))) 3)
1.6b
(*.f64 (cos.f64 re) (neg.f64 im))
57.9b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
30.4b
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
2.7b
(*.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
Compiler

Compiled 388 to 293 computations (24.5% saved)

regimes311.0ms (2%)

Counts
50 → 1
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
(*.f64 (cos.f64 re) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) im)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (neg.f64 im)) 2))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (neg.f64 im)) (sqrt.f64 (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -3))
(*.f64 (cos.f64 re) (cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3)))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 1)
(*.f64 (cos.f64 re) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
(/.f64 1 (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(pow.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (cbrt.f64 (cos.f64 re))) 3)
(*.f64 (cos.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sqrt.f64 (cos.f64 re))) (sqrt.f64 (cos.f64 re)))
(*.f64 (*.f64 (cos.f64 re) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(*.f64 (*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2)) (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 9) -1/216) (pow.f64 im 3)) (cos.f64 re)) (fma.f64 im (fma.f64 -1/6 (pow.f64 im 3) im) (*.f64 (pow.f64 im 6) 1/36)))
(*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 (cbrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))) 2) (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
Outputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
Calls

7 calls:

151.0ms
im
44.0ms
(cos.f64 re)
33.0ms
(*.f64 1/2 (cos.f64 re))
27.0ms
re
25.0ms
(*.f64 1/2 (cos.f64 re))
Results
ErrorSegmentsBranch
1.2b1re
1.2b1im
1.2b1(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.2b1(*.f64 1/2 (cos.f64 re))
1.2b1(*.f64 1/2 (cos.f64 re))
1.2b1(cos.f64 re)
1.2b1(-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
Compiler

Compiled 740 to 464 computations (37.3% saved)

regimes147.0ms (1%)

Counts
40 → 2
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
(*.f64 (cos.f64 re) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) im)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (neg.f64 im)) 2))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im))))
(*.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (neg.f64 im)) (sqrt.f64 (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (pow.f64 (cbrt.f64 (fma.f64 1/6 im (/.f64 -1 im))) -3))
(*.f64 (cos.f64 re) (cbrt.f64 (pow.f64 (fma.f64 1/6 im (/.f64 -1 im)) -3)))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 3))
(pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 2)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) 3)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 2))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) (fma.f64 -1/6 (pow.f64 im 3) im))
(*.f64 (/.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (cos.f64 re))) 1)
(*.f64 (cos.f64 re) (*.f64 (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im)) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))))
(/.f64 1 (/.f64 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im))) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (/.f64 1 (fma.f64 -1/6 (pow.f64 im 3) im))))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) im) (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)))))
Outputs
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2)))
Calls

7 calls:

40.0ms
im
21.0ms
re
19.0ms
(*.f64 1/2 (cos.f64 re))
19.0ms
(cos.f64 re)
17.0ms
(*.f64 1/2 (cos.f64 re))
Results
ErrorSegmentsBranch
1.4b1re
1.4b1im
0.4b2(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.4b1(*.f64 1/2 (cos.f64 re))
1.4b1(*.f64 1/2 (cos.f64 re))
1.4b1(cos.f64 re)
1.4b1(-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
Compiler

Compiled 523 to 320 computations (38.8% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
8.332709747760347e-7
0.11867556742324975
Compiler

Compiled 19 to 15 computations (21.1% saved)

regimes89.0ms (0.6%)

Counts
23 → 1
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
(*.f64 (cos.f64 re) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 1 (/.f64 (fma.f64 1/6 im (/.f64 -1 im)) (cos.f64 re)))
(/.f64 (*.f64 (-.f64 (*.f64 (pow.f64 im 6) 1/36) (*.f64 im im)) (cos.f64 re)) im)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (-.f64 (+.f64 1 (*.f64 -1/4 (*.f64 re re))) 1)))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (neg.f64 im))) 3)
(*.f64 (cos.f64 re) (pow.f64 (sqrt.f64 (neg.f64 im)) 2))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (cos.f64 re)))
Outputs
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
Calls

5 calls:

38.0ms
(*.f64 1/2 (cos.f64 re))
13.0ms
im
11.0ms
re
9.0ms
(cos.f64 re)
9.0ms
(*.f64 1/2 (cos.f64 re))
Results
ErrorSegmentsBranch
1.4b1re
1.4b1im
1.4b1(*.f64 1/2 (cos.f64 re))
1.4b1(*.f64 1/2 (cos.f64 re))
1.4b1(cos.f64 re)
Compiler

Compiled 234 to 136 computations (41.9% saved)

regimes29.0ms (0.2%)

Counts
15 → 1
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
(*.f64 (cos.f64 re) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2)
Outputs
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
Calls

3 calls:

9.0ms
re
9.0ms
(cos.f64 re)
7.0ms
im
Results
ErrorSegmentsBranch
1.6b1re
1.6b1im
1.6b1(cos.f64 re)
Compiler

Compiled 128 to 81 computations (36.7% saved)

regimes66.0ms (0.4%)

Counts
12 → 1
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
(*.f64 (cos.f64 re) (neg.f64 im))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
(*.f64 (cos.f64 re) (/.f64 1 (/.f64 -1 im)))
Outputs
(*.f64 (cos.f64 re) (neg.f64 im))
Calls

3 calls:

50.0ms
re
7.0ms
im
6.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
1.6b1re
1.6b1im
1.6b1(cos.f64 re)
Compiler

Compiled 98 to 62 computations (36.7% saved)

regimes16.0ms (0.1%)

Accuracy

Total -31.9b remaining (-104.4%)

Threshold costs -31.9b (-104.4%)

Counts
6 → 1
Calls
Call 1
Inputs
(neg.f64 im)
(/.f64 1 (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(-.f64 (*.f64 1/2 (*.f64 re (*.f64 re im))) im)
(-.f64 (*.f64 1/2 (*.f64 im (*.f64 re re))) im)
(*.f64 (*.f64 -2 im) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (cos.f64 re) im)
Outputs
(neg.f64 im)
Calls

3 calls:

5.0ms
re
4.0ms
im
4.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
30.5b1re
30.5b1im
30.5b1(cos.f64 re)
Compiler

Compiled 56 to 36 computations (35.7% saved)

simplify13.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
049133
176131
293131
3102131
4107131
5108131
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(if (<=.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))) 4722366482869645/4722366482869645213696) (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(*.f64 (cos.f64 re) (neg.f64 im))
(neg.f64 im)
Outputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1 im)))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (neg.f64 im)))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 -1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (*.f64 -1/5040 (pow.f64 im 7)) im))))
(if (<=.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))) 4722366482869645/4722366482869645213696) (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))))
(if (<=.f64 (*.f64 (*.f64 (cos.f64 re) 1/2) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 4722366482869645/4722366482869645213696) (*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (cos.f64 re) (+.f64 (/.f64 1/2 (exp.f64 im)) (*.f64 (exp.f64 im) -1/2))))
(*.f64 (cos.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (cos.f64 re) (-.f64 (*.f64 1/6 im) (/.f64 1 im)))
(/.f64 (cos.f64 re) (-.f64 (*.f64 im 1/6) (/.f64 1 im)))
(/.f64 (cos.f64 re) (+.f64 (*.f64 im 1/6) (/.f64 -1 im)))
(*.f64 (cos.f64 re) (neg.f64 im))
(neg.f64 im)
Compiler

Compiled 97 to 70 computations (27.8% saved)

soundness460.0ms (3%)

Algorithm
egg-herbie
Rules
669×associate-+l+_binary64
626×associate-/l*_binary64
626×associate-/l*_binary64
546×div-sub_binary64
546×div-sub_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01218
12318
25218
313418
428217
547417
693117
7239117
8625817
076807
1232731
2753679
32920642
46254642
01218
12318
25218
313418
428217
547417
693117
7239117
8625817
Stop Event
node limit
node limit
node limit
Compiler

Compiled 587 to 454 computations (22.7% saved)

end60.0ms (0.4%)

Compiler

Compiled 87 to 54 computations (37.9% saved)

Profiling

Loading profile data...