Details

Time bar (total: 9.0s)

analyze539.0ms (6%)

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
50%26.5%23.5%13
50%26.5%23.5%14
Compiler

Compiled 15 to 12 computations (20% saved)

sample6.6s (73.5%)

Results
3.4s5008×body1024valid
1.0s2069×body1024invalid
813.0ms1767×body512valid
396.0ms1032×body512invalid
384.0ms419×body2048valid
225.0ms695×body256valid
150.0ms562×body256invalid
144.0ms733×body128invalid
86.0ms367×body128valid

preprocess40.0ms (0.4%)

Algorithm
egg-herbie
Rules
692×fma-def_binary64
564×times-frac_binary64
454×fma-neg_binary64
227×associate-/l*_binary64
166×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01936
14036
29536
325536
453934
591234
6181234
7375134
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 (cos.f64 re) (*.f64 1/2 (-.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 (*.f64 1/2 (cos.f64 im)) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 (cos.f64 im) (*.f64 1/2 (-.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 14 to 11 computations (21.4% saved)

simplify23.0ms (0.3%)

Algorithm
egg-herbie
Rules
623×associate-/l*_binary64
462×times-frac_binary64
358×fma-neg_binary64
346×fma-def_binary64
322×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01218
12318
25218
313218
428117
547317
692917
7237617
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 (*.f64 1/2 (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 1/2 (*.f64 (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))))

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
57.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
57.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Compiler

Compiled 53 to 38 computations (28.3% saved)

localize9.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.6b
(-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))

series10.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
re
@-inf
(*.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)))
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
re
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))

rewrite53.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
313×prod-diff_binary64
198×fma-def_binary64
178×expm1-udef_binary64
178×log1p-udef_binary64
144×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01228
125224
2343420
Stop Event
node limit
Counts
2 → 110
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 2 (sinh.f64 im)) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (sinh.f64 im)) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (sinh.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 (neg.f64 (exp.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sinh.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (cbrt.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 2 (sinh.f64 im))) (sqrt.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (/.f64 1 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (/.f64 1 (*.f64 2 (cosh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (sinh.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 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2)) (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 2 (cosh.f64 im)) (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (*.f64 2 (cosh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im)))) (neg.f64 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2))))))) (#(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 2 (cosh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (*.f64 3 im)) (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 2 (sinh.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (sinh.f64 im)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (sinh.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 2 (sinh.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 2 (sinh.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (exp.f64 im))) (exp.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (exp.f64 im)) (+.f64 1 (expm1.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (exp.f64 im))) (+.f64 1 (expm1.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (exp.f64 im))) (exp.f64 (neg.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (exp.f64 im)) (/.f64 1 (exp.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (exp.f64 im))) (/.f64 1 (exp.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (exp.f64 im))) (exp.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (exp.f64 im))) (exp.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (exp.f64 im))) (+.f64 1 (expm1.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (exp.f64 im))) (+.f64 1 (expm1.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (sinh.f64 im)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (exp.f64 im) 1 (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (exp.f64 im) 1 (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sinh.f64 im)) 1 (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sinh.f64 im)) 1 (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sinh.f64 im)) 1 (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 fma.f64 1 (exp.f64 im) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (exp.f64 im) (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2 (sinh.f64 im)) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2 (sinh.f64 im)) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 2 (sinh.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 fma.f64 1 (neg.f64 (exp.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (exp.f64 im)) (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (exp.f64 im)) (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(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 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (cbrt.f64 (exp.f64 im)) (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (neg.f64 (cbrt.f64 (exp.f64 im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (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 fma.f64 (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (cbrt.f64 (*.f64 2 (sinh.f64 im))) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (cbrt.f64 (*.f64 2 (sinh.f64 im))) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 2 (sinh.f64 im))) 2) (cbrt.f64 (*.f64 2 (sinh.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 fma.f64 (sqrt.f64 (exp.f64 im)) (sqrt.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)) (*.f64 (neg.f64 (exp.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (exp.f64 im)) (neg.f64 (sqrt.f64 (exp.f64 im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2 (sinh.f64 im))) (sqrt.f64 (*.f64 2 (sinh.f64 im))) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2 (sinh.f64 im))) (sqrt.f64 (*.f64 2 (sinh.f64 im))) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 2 (sinh.f64 im))) (sqrt.f64 (*.f64 2 (sinh.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 fma.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (/.f64 1 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2))) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (/.f64 1 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2))) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (/.f64 1 (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2))) (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 fma.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (/.f64 1 (*.f64 2 (cosh.f64 im))) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (/.f64 1 (*.f64 2 (cosh.f64 im))) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (/.f64 1 (*.f64 2 (cosh.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 fma.f64 (*.f64 (cbrt.f64 (neg.f64 (exp.f64 im))) (cbrt.f64 (neg.f64 (exp.f64 im)))) (cbrt.f64 (neg.f64 (exp.f64 im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (exp.f64 im))) (sqrt.f64 (neg.f64 (exp.f64 im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (exp.f64 im))) (sqrt.f64 (exp.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (exp.f64 im) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (-.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (*.f64 2 (sinh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (-.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (fma.f64 (neg.f64 (exp.f64 im)) 1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (exp.f64 im))) (-.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (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 fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2)) (cbrt.f64 (exp.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2 (sinh.f64 im))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 im) (*.f64 1/2 (cos.f64 re))) (*.f64 (neg.f64 (exp.f64 im)) (*.f64 1/2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (exp.f64 im)) (*.f64 (*.f64 1/2 (cos.f64 re)) (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im))) (*.f64 1/2 (cos.f64 re))) (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2)) (*.f64 1/2 (cos.f64 re))) (*.f64 2 (cosh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (*.f64 3 im)) (exp.f64 (*.f64 3 im)))) (fma.f64 (exp.f64 im) (*.f64 2 (cosh.f64 im)) (pow.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (pow.f64 (exp.f64 im) 2) (pow.f64 (exp.f64 im) 2))) (*.f64 2 (cosh.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (cos.f64 re)) (*.f64 2 (sinh.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (sinh.f64 im)) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (*.f64 2 (sinh.f64 im)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (exp.f64 im) (*.f64 1/2 (cos.f64 re)) (*.f64 (neg.f64 (exp.f64 im)) (*.f64 1/2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/2 (cos.f64 re)) (exp.f64 im) (*.f64 (*.f64 1/2 (cos.f64 re)) (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re)))) 1))))))

simplify47.0ms (0.5%)

Algorithm
egg-herbie
Rules
354×*-commutative_binary64
334×fma-def_binary64
328×associate-+l+_binary64
306×unsub-neg_binary64
297×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
071698
1183696
2507642
31865612
44492612
Stop Event
node limit
Counts
146 → 138
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 -1/60 (pow.f64 im 5) (*.f64 -2 im)))
(+.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 -1/60 (pow.f64 im 5) (*.f64 -2 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 (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)) (*.f64 -1/4 (*.f64 re re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 1/48 (pow.f64 re 4)) 1/2)))
(*.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 (*.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 (*.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 (*.f64 (cos.f64 re) -1/6) (pow.f64 im 3) (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 3) -1/6) im) (*.f64 (pow.f64 im 5) -1/120)))
(+.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 7) -1/5040) (*.f64 (pow.f64 im 5) -1/120))) (*.f64 (cos.f64 re) (-.f64 (*.f64 (pow.f64 im 3) -1/6) im)))
(*.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 5) -1/120)) (-.f64 (*.f64 (pow.f64 im 3) -1/6) im)))
(*.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)))

prune78.0ms (0.9%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1353138
Fresh000
Picked011
Done000
Total1354139
Error
0.1b
Counts
139 → 4
Alt Table
StatusErrorProgram
0.9b
(+.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))))))
0.9b
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
57.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
46.4b
(sqrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 2))
Compiler

Compiled 2621 to 1430 computations (45.4% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 re) (pow.f64 im 3))
0.1b
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
0.1b
(*.f64 (cos.f64 re) im)
0.1b
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))

series16.0ms (0.2%)

Counts
4 → 16
Calls

24 calls:

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

rewrite56.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
715×log-prod_binary64
260×expm1-udef_binary64
260×log1p-udef_binary64
217×log-pow_binary64
150×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01539
131839
2353339
Stop Event
node limit
Counts
4 → 68
Calls
Call 1
Inputs
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (cos.f64 re) im)
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(*.f64 (cos.f64 re) (pow.f64 im 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6)))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 (*.f64 -1/6 (cos.f64 re))) im) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) 2) 1/36))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 im) (cos.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 im) (cos.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 im) (cos.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 im) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.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 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 log.f64 (+.f64 1 (expm1.f64 (*.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 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 log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.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 exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) im)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))) (cbrt.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 re) -1/5040)) (pow.f64 im 7/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 7) -1/5040))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 im (cbrt.f64 (cos.f64 re))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (pow.f64 im 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 im 3)) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (pow.f64 (pow.f64 im 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 3) 3) (pow.f64 (cos.f64 re) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 3 (log.f64 im) (log.f64 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 3 (log.f64 im) (log.f64 (cos.f64 re))) 1))))))

simplify49.0ms (0.5%)

Algorithm
egg-herbie
Rules
654×fma-def_binary64
599×distribute-rgt-out_binary64
461×associate-*l*_binary64
382×associate-*r*_binary64
352×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
069376
1195337
2685281
33140276
44413276
54995276
Stop Event
node limit
Counts
84 → 96
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/144 (*.f64 (pow.f64 re 4) (pow.f64 im 3)))))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 1/4320 (*.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/144 (*.f64 (pow.f64 re 4) (pow.f64 im 3))))))
im
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) im)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) im)) im))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) im)) im)))
(*.f64 -1/5040 (pow.f64 im 7))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (*.f64 -1/5040 (pow.f64 im 7)))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7))) (*.f64 -1/5040 (pow.f64 im 7))))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/3628800 (*.f64 (pow.f64 re 6) (pow.f64 im 7))))))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3)))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 3))) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))))
Outputs
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3)))
(fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 1/12 (*.f64 re re))))
(*.f64 (pow.f64 im 3) (fma.f64 1/12 (*.f64 re re) -1/6))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/144 (*.f64 (pow.f64 re 4) (pow.f64 im 3)))))
(fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/144 (*.f64 (pow.f64 im 3) (pow.f64 re 4)))))
(fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/144 (pow.f64 re 4)) -1/6)))
(*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/144 (pow.f64 re 4)) (fma.f64 1/12 (*.f64 re re) -1/6)))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 1/4320 (*.f64 (pow.f64 re 6) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/144 (*.f64 (pow.f64 re 4) (pow.f64 im 3))))))
(fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (fma.f64 1/4320 (*.f64 (pow.f64 im 3) (pow.f64 re 6)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 -1/144 (*.f64 (pow.f64 im 3) (pow.f64 re 4))))))
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/144 (pow.f64 re 4)) -1/6)) (*.f64 (pow.f64 im 3) (+.f64 (*.f64 1/12 (*.f64 re re)) (*.f64 1/4320 (pow.f64 re 6)))))
(*.f64 (pow.f64 im 3) (+.f64 (fma.f64 -1/144 (pow.f64 re 4) -1/6) (fma.f64 1/12 (*.f64 re re) (*.f64 1/4320 (pow.f64 re 6)))))
(*.f64 (pow.f64 im 3) (+.f64 (fma.f64 1/12 (*.f64 re re) (*.f64 1/4320 (pow.f64 re 6))) (fma.f64 -1/144 (pow.f64 re 4) -1/6)))
im
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) im)
(fma.f64 -1/2 (*.f64 im (*.f64 re re)) im)
(fma.f64 im (*.f64 (*.f64 re re) -1/2) im)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) im)) im))
(fma.f64 -1/2 (*.f64 im (*.f64 re re)) (fma.f64 1/24 (*.f64 im (pow.f64 re 4)) im))
(fma.f64 -1/2 (*.f64 im (*.f64 re re)) (fma.f64 (*.f64 (pow.f64 re 4) 1/24) im im))
(fma.f64 im (fma.f64 (*.f64 re re) -1/2 (*.f64 (pow.f64 re 4) 1/24)) im)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) im)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) im)) im)))
(fma.f64 -1/2 (*.f64 im (*.f64 re re)) (fma.f64 1/24 (*.f64 im (pow.f64 re 4)) (fma.f64 -1/720 (*.f64 im (pow.f64 re 6)) im)))
(fma.f64 im (fma.f64 (*.f64 re re) -1/2 (*.f64 (pow.f64 re 4) 1/24)) (*.f64 im (fma.f64 (pow.f64 re 6) -1/720 1)))
(*.f64 im (+.f64 (fma.f64 (pow.f64 re 6) -1/720 1) (fma.f64 (*.f64 re re) -1/2 (*.f64 (pow.f64 re 4) 1/24))))
(*.f64 im (+.f64 (fma.f64 (pow.f64 re 4) 1/24 1) (fma.f64 (pow.f64 re 6) -1/720 (*.f64 (*.f64 re re) -1/2))))
(*.f64 -1/5040 (pow.f64 im 7))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (*.f64 -1/5040 (pow.f64 im 7)))
(fma.f64 1/10080 (*.f64 (*.f64 re re) (pow.f64 im 7)) (*.f64 -1/5040 (pow.f64 im 7)))
(*.f64 (pow.f64 im 7) (+.f64 (*.f64 (*.f64 re re) 1/10080) -1/5040))
(*.f64 (pow.f64 im 7) (fma.f64 (*.f64 re re) 1/10080 -1/5040))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7))) (*.f64 -1/5040 (pow.f64 im 7))))
(fma.f64 1/10080 (*.f64 (*.f64 re re) (pow.f64 im 7)) (fma.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7)) (*.f64 -1/5040 (pow.f64 im 7))))
(fma.f64 1/10080 (*.f64 re (*.f64 re (pow.f64 im 7))) (*.f64 (pow.f64 im 7) (+.f64 (*.f64 (pow.f64 re 4) -1/120960) -1/5040)))
(*.f64 (pow.f64 im 7) (+.f64 (*.f64 re (*.f64 re 1/10080)) (fma.f64 (pow.f64 re 4) -1/120960 -1/5040)))
(*.f64 (pow.f64 im 7) (+.f64 (*.f64 (pow.f64 re 4) -1/120960) (fma.f64 (*.f64 re re) 1/10080 -1/5040)))
(+.f64 (*.f64 1/10080 (*.f64 (pow.f64 re 2) (pow.f64 im 7))) (+.f64 (*.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/3628800 (*.f64 (pow.f64 re 6) (pow.f64 im 7))))))
(fma.f64 1/10080 (*.f64 (*.f64 re re) (pow.f64 im 7)) (fma.f64 -1/120960 (*.f64 (pow.f64 re 4) (pow.f64 im 7)) (fma.f64 -1/5040 (pow.f64 im 7) (*.f64 (*.f64 1/3628800 (pow.f64 re 6)) (pow.f64 im 7)))))
(+.f64 (*.f64 (pow.f64 im 7) (+.f64 (*.f64 (pow.f64 re 6) 1/3628800) -1/5040)) (*.f64 (pow.f64 im 7) (+.f64 (*.f64 (*.f64 re re) 1/10080) (*.f64 (pow.f64 re 4) -1/120960))))
(*.f64 (pow.f64 im 7) (+.f64 (fma.f64 (*.f64 re re) 1/10080 (*.f64 (pow.f64 re 4) -1/120960)) (fma.f64 (pow.f64 re 6) 1/3628800 -1/5040)))
(*.f64 (pow.f64 im 7) (+.f64 (fma.f64 (pow.f64 re 6) 1/3628800 -1/5040) (fma.f64 (*.f64 re re) 1/10080 (*.f64 (pow.f64 re 4) -1/120960))))
(pow.f64 im 3)
(+.f64 (pow.f64 im 3) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))
(+.f64 (pow.f64 im 3) (*.f64 (*.f64 (pow.f64 im 3) (*.f64 re re)) -1/2))
(*.f64 (+.f64 (*.f64 (*.f64 re re) -1/2) 1) (pow.f64 im 3))
(*.f64 (pow.f64 im 3) (fma.f64 (*.f64 re re) -1/2 1))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3)))))
(fma.f64 1/24 (*.f64 (pow.f64 im 3) (pow.f64 re 4)) (+.f64 (pow.f64 im 3) (*.f64 (*.f64 (pow.f64 im 3) (*.f64 re re)) -1/2)))
(fma.f64 (*.f64 (pow.f64 im 3) (pow.f64 re 4)) 1/24 (*.f64 (+.f64 (*.f64 (*.f64 re re) -1/2) 1) (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (+.f64 (*.f64 (*.f64 re re) -1/2) (fma.f64 (pow.f64 re 4) 1/24 1)))
(*.f64 (pow.f64 im 3) (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 (pow.f64 re 4) 1/24))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 3))) (+.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 3))) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 3))))))
(fma.f64 1/24 (*.f64 (pow.f64 im 3) (pow.f64 re 4)) (+.f64 (pow.f64 im 3) (fma.f64 -1/720 (*.f64 (pow.f64 im 3) (pow.f64 re 6)) (*.f64 (*.f64 (pow.f64 im 3) (*.f64 re re)) -1/2))))
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 (*.f64 (*.f64 re re) -1/2) (*.f64 (pow.f64 re 6) -1/720))) (*.f64 (+.f64 (*.f64 (pow.f64 re 4) 1/24) 1) (pow.f64 im 3)))
(fma.f64 (fma.f64 (pow.f64 re 6) -1/720 1) (pow.f64 im 3) (*.f64 (pow.f64 im 3) (fma.f64 (*.f64 re re) -1/2 (*.f64 (pow.f64 re 4) 1/24))))
(*.f64 (pow.f64 im 3) (+.f64 (fma.f64 (pow.f64 re 4) 1/24 1) (fma.f64 (pow.f64 re 6) -1/720 (*.f64 (*.f64 re re) -1/2))))

prune179.0ms (2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New90696
Fresh022
Picked101
Done011
Total919100
Error
0.1b
Counts
100 → 9
Alt Table
StatusErrorProgram
34.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) 2)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
57.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
1.1b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1) (+.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))))))
31.8b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (fma.f64 im (*.f64 (*.f64 re re) -1/2) im)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
0.9b
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
41.5b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) 3) (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))))))
41.5b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) 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))))))
2.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 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))))))
46.4b
(sqrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 2))
Compiler

Compiled 4331 to 2850 computations (34.2% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im))
0.0b
(fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))
0.0b
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im))))
0.1b
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))

series15.0ms (0.2%)

Counts
4 → 60
Calls

15 calls:

TimeVariablePointExpression
4.0ms
im
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
2.0ms
re
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
2.0ms
re
@0
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
1.0ms
im
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
1.0ms
re
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))

rewrite70.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
231×prod-diff_binary64
210×add-sqr-sqrt_binary64
201×add-log-exp_binary64
201×log1p-expm1-u_binary64
201×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02187
144887
2478787
Stop Event
node limit
Counts
4 → 88
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))))
(fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im))))
(fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im)))
(fma.f64 -1/60 (pow.f64 im 5) (*.f64 -2 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 1/2 (cos.f64 re))) (*.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) (*.f64 1/2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 -1/2520 (pow.f64 im 7))) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) (*.f64 1/2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) (*.f64 -1/2520 (pow.f64 im 7)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/2520 (pow.f64 im 7)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) 1) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/3 (pow.f64 im 3))) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) (pow.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2) (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) (sqrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -1/2520 (pow.f64 im 7)) 3) (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 3)) (+.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/2520 (pow.f64 im 7))) (-.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2) (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/2520 (pow.f64 im 7))) (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)) (-.f64 (*.f64 -1/2520 (pow.f64 im 7)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) (*.f64 -1/3 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/3 (pow.f64 im 3)) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/3 (pow.f64 im 3)) 1) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/60 (pow.f64 im 5))) (*.f64 im -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) (cbrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)) (cbrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) (sqrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -1/3 (pow.f64 im 3)) 3) (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 3)) (+.f64 (*.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/3 (pow.f64 im 3))) (-.f64 (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 2) (*.f64 (*.f64 -1/3 (pow.f64 im 3)) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 2)) (-.f64 (*.f64 -1/3 (pow.f64 im 3)) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 im -2) (*.f64 -1/60 (pow.f64 im 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 im -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 -1/60 (pow.f64 im 5)) 1) (*.f64 im -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) (pow.f64 (cbrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2) (cbrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) (sqrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 -1/60 (pow.f64 im 5)) 3) (pow.f64 (*.f64 im -2) 3)) (+.f64 (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/60 (pow.f64 im 5))) (-.f64 (pow.f64 (*.f64 im -2) 2) (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/60 (pow.f64 im 5))) (pow.f64 (*.f64 im -2) 2)) (-.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 1))))))

simplify53.0ms (0.6%)

Algorithm
egg-herbie
Rules
576×fma-def_binary64
387×associate-*l*_binary64
349×associate-*r*_binary64
336×distribute-lft-in_binary64
336×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0701394
12201292
28481183
348331183
Stop Event
node limit
Counts
148 → 131
Calls
Call 1
Inputs
(*.f64 1/2 (+.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 (*.f64 1/2 (+.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 -1/4 (*.f64 (pow.f64 re 2) (+.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 (*.f64 1/2 (+.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 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.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 1/48 (*.f64 (pow.f64 re 4) (+.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 (*.f64 1/2 (+.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 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.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 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.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 1/48 (*.f64 (pow.f64 re 4) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (cos.f64 re) (+.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 -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))))))
(*.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 -1/2520 (pow.f64 im 7))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 -1/2520 (pow.f64 im 7))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(*.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 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.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 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.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 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
Outputs
(*.f64 1/2 (+.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 1/2 (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))))))
(*.f64 1/2 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))))
(fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im)))
(+.f64 (*.f64 1/2 (+.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 -1/4 (*.f64 (pow.f64 re 2) (+.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/2 (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))))) (*.f64 (*.f64 -1/4 (*.f64 re re)) (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)))))))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (fma.f64 -1/4 (*.f64 re re) 1/2))
(+.f64 (*.f64 1/2 (+.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 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.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 1/48 (*.f64 (pow.f64 re 4) (+.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/2 (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/4 (*.f64 (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))))) (*.f64 re re)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (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/2 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 (*.f64 -1/4 (*.f64 re re)) (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 1/2 (fma.f64 -1/4 (*.f64 re re) (*.f64 1/48 (pow.f64 re 4)))))
(+.f64 (*.f64 1/2 (+.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 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.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 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.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 1/48 (*.f64 (pow.f64 re 4) (+.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/2 (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/4 (*.f64 (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))))) (*.f64 re re)) (fma.f64 -1/1440 (*.f64 (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))))) (pow.f64 re 6)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (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)))))))))
(+.f64 (*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/1440 (pow.f64 re 6)))) (*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re)))))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (+.f64 (fma.f64 1/48 (pow.f64 re 4) (*.f64 -1/1440 (pow.f64 re 6))) (fma.f64 -1/4 (*.f64 re re) 1/2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))) (neg.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.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 1/2 (*.f64 (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))))) (cos.f64 re)))
(*.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (fma.f64 (pow.f64 im 7) -1/5040 (fma.f64 1/2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (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 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)) (-.f64 (*.f64 (pow.f64 im 5) (*.f64 (cos.f64 re) -1/120)) (*.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)))
(fma.f64 (pow.f64 im 3) (*.f64 (cos.f64 re) -1/6) (*.f64 (cos.f64 re) (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 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(+.f64 (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 5) -1/120 (neg.f64 im))) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))
(*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040))
(+.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))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 5) -1/120) (*.f64 (pow.f64 im 7) -1/5040)))
(+.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/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040))))
(fma.f64 (pow.f64 im 5) (*.f64 (cos.f64 re) -1/120) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(+.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 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(+.f64 (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 5) -1/120 (neg.f64 im))) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
(*.f64 -1/5040 (*.f64 (pow.f64 im 7) (cos.f64 re)))
(*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040))
(+.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))))
(fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 5) -1/120) (*.f64 (pow.f64 im 7) -1/5040)))
(+.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/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 -1/120 (*.f64 (pow.f64 im 5) (cos.f64 re)) (*.f64 (pow.f64 im 7) (*.f64 (cos.f64 re) -1/5040))))
(fma.f64 (pow.f64 im 5) (*.f64 (cos.f64 re) -1/120) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(+.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 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(+.f64 (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 5) -1/120 (neg.f64 im))) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 7) -1/5040))))
(*.f64 -2 im)
(*.f64 im -2)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 im -2 (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.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)))))
(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 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 -1/2520 (pow.f64 im 7))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -1/2520 (pow.f64 im 7) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.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 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.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 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 -1/2520 (pow.f64 im 7))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -1/2520 (pow.f64 im 7) (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.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 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.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 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 -2 im)
(*.f64 im -2)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -2 im (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 im -2 (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -1/60 (pow.f64 im 5) (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))
(fma.f64 -1/60 (pow.f64 im 5) (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.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))))
(fma.f64 -2 im (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(fma.f64 im -2 (fma.f64 -1/60 (pow.f64 im 5) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 -2 im)
(*.f64 im -2)
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 -2 im (*.f64 -1/60 (pow.f64 im 5)))
(fma.f64 im -2 (*.f64 -1/60 (pow.f64 im 5)))

prune223.0ms (2.5%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1247131
Fresh347
Picked101
Done011
Total12812140
Error
0.1b
Counts
140 → 12
Alt Table
StatusErrorProgram
41.5b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3)))
34.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) 2)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
57.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
41.5b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3))
2.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 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))))))
46.4b
(sqrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 2))
31.0b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 2)
1.1b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1) (+.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))))))
32.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (*.f64 (cbrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) (cbrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)))))
30.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (sqrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2))
2.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3))
32.2b
(*.f64 (*.f64 1/2 (cos.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/2520 (pow.f64 im 7))) (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)) (-.f64 (*.f64 -1/2520 (pow.f64 im 7)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))
Compiler

Compiled 4330 to 3315 computations (23.4% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7)))
0.1b
(*.f64 (pow.f64 im 3) -1/6)
0.1b
(*.f64 (cos.f64 re) im)
1.3b
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)

series80.0ms (0.9%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
37.0ms
re
@inf
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)
19.0ms
re
@-inf
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)
8.0ms
im
@-inf
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)
8.0ms
im
@inf
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)
4.0ms
im
@0
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1)

rewrite55.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
513×log-prod_binary64
456×prod-diff_binary64
198×log1p-udef_binary64
197×expm1-udef_binary64
163×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify34.0ms (0.4%)

Algorithm
egg-herbie
Rules
685×fma-def_binary64
598×associate-*l*_binary64
366×times-frac_binary64
239×distribute-rgt-in_binary64
238×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01271112
1357964
21250864
Stop Event
node limit
Counts
107 → 93
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 (+.f64 (*.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/24 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 4))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (+.f64 (*.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/24 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 4))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/720 (+.f64 (*.f64 5/36 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 3))) (+.f64 (*.f64 5/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (+.f64 (*.f64 1/10368 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 3))) (*.f64 1/288 (/.f64 (*.f64 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))) (pow.f64 im 3)) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 6))))))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.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 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)) (*.f64 (+.f64 (*.f64 1/432 (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 -1/1296 (pow.f64 (cos.f64 re) 3)) (*.f64 -1/648 (pow.f64 (cos.f64 re) 3)))) (pow.f64 im 9))))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/31104 (pow.f64 (cos.f64 re) 4)) (+.f64 (*.f64 1/3888 (pow.f64 (cos.f64 re) 4)) (+.f64 (*.f64 1/10368 (pow.f64 (cos.f64 re) 4)) (*.f64 -1/2592 (pow.f64 (cos.f64 re) 4))))) (pow.f64 im 12)) (+.f64 (*.f64 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)) (*.f64 (+.f64 (*.f64 1/432 (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 -1/1296 (pow.f64 (cos.f64 re) 3)) (*.f64 -1/648 (pow.f64 (cos.f64 re) 3)))) (pow.f64 im 9)))))
(-.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(-.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
Outputs
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3)))
(fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 1/12 (*.f64 re re))))
(*.f64 (pow.f64 im 3) (fma.f64 1/12 (*.f64 re re) -1/6))
(+.f64 (*.f64 (+.f64 (*.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/24 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 4))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (*.f64 -1/6 (pow.f64 im 3))))
(fma.f64 (fma.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 1/24 (fma.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)))))) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) (pow.f64 re 4)) (fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (*.f64 -1/6 (pow.f64 im 3))))
(fma.f64 (fma.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) -1/288) (*.f64 (/.f64 (pow.f64 im 3) (fma.f64 -1/6 (pow.f64 im 3) 1)) -1/144))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 re 4)) (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 1/12 (*.f64 re re)))))
(fma.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) 0) (/.f64 (*.f64 (pow.f64 im 3) -1/144) (fma.f64 -1/6 (pow.f64 im 3) 1))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 re 4)) (*.f64 (pow.f64 im 3) (fma.f64 1/12 (*.f64 re re) -1/6)))
(+.f64 (*.f64 (+.f64 (*.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/24 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 4))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 re 2) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/720 (+.f64 (*.f64 5/36 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 3))) (+.f64 (*.f64 5/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))))) (+.f64 (*.f64 1/10368 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 3))) (*.f64 1/288 (/.f64 (*.f64 (+.f64 (*.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) 2))) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3)))))) (pow.f64 im 3)) (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))))))) (*.f64 (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))) (pow.f64 re 6))))))
(fma.f64 (fma.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 1/24 (fma.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)))))) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) (pow.f64 re 4)) (fma.f64 1/12 (*.f64 (pow.f64 im 3) (*.f64 re re)) (fma.f64 -1/6 (pow.f64 im 3) (*.f64 (fma.f64 1/720 (fma.f64 5/36 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 3)) (fma.f64 5/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 (/.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)) 1/6))) (fma.f64 1/10368 (/.f64 (pow.f64 im 9) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 3)) (*.f64 1/288 (/.f64 (fma.f64 -1/12 (/.f64 (pow.f64 im 6) (pow.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) 2)) (*.f64 -1/6 (/.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)))) (/.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) (pow.f64 im 3)))))) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1) (pow.f64 re 6))))))
(+.f64 (fma.f64 (fma.f64 1/288 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) -1/288) (*.f64 (/.f64 (pow.f64 im 3) (fma.f64 -1/6 (pow.f64 im 3) 1)) -1/144))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 re 4)) (*.f64 (pow.f64 im 3) (+.f64 -1/6 (*.f64 1/12 (*.f64 re re))))) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (*.f64 (pow.f64 re 6) (fma.f64 1/720 (fma.f64 5/36 (/.f64 (pow.f64 im 9) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 3)) (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) 5/12 (/.f64 1/6 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 im 3))))) (fma.f64 1/288 (/.f64 (fma.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) -1/12 (/.f64 -1/6 (/.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 im 3)))) (/.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (pow.f64 im 3))) (/.f64 (*.f64 (pow.f64 im 9) 1/10368) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 3)))))))
(fma.f64 (pow.f64 im 3) (fma.f64 1/12 (*.f64 re re) -1/6) (*.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) (+.f64 (*.f64 (fma.f64 1/288 (*.f64 (/.f64 (pow.f64 im 3) (fma.f64 -1/6 (pow.f64 im 3) 1)) (fma.f64 -1/6 (/.f64 (pow.f64 im 3) (fma.f64 -1/6 (pow.f64 im 3) 1)) (/.f64 (*.f64 (pow.f64 im 6) -1/12) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)))) (fma.f64 (/.f64 (pow.f64 im 9) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 3)) 1/10368 (fma.f64 (/.f64 (pow.f64 im 9) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 3)) 1/5184 (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) 1/1728) (*.f64 (/.f64 (pow.f64 im 3) (fma.f64 -1/6 (pow.f64 im 3) 1)) 1/4320))))) (pow.f64 re 6)) (*.f64 (+.f64 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 (fma.f64 -1/6 (pow.f64 im 3) 1) 2)) 0) (/.f64 (*.f64 (pow.f64 im 3) -1/144) (fma.f64 -1/6 (pow.f64 im 3) 1))) (pow.f64 re 4)))))
(*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3)))
(*.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 im 3))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (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 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (*.f64 (pow.f64 im 6) (*.f64 (pow.f64 (cos.f64 re) 2) 0)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (*.f64 (pow.f64 im 6) 0))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) 0)
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)) (*.f64 (+.f64 (*.f64 1/432 (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 -1/1296 (pow.f64 (cos.f64 re) 3)) (*.f64 -1/648 (pow.f64 (cos.f64 re) 3)))) (pow.f64 im 9))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 0) (pow.f64 im 6) (*.f64 (pow.f64 im 9) (fma.f64 1/432 (pow.f64 (cos.f64 re) 3) (*.f64 (pow.f64 (cos.f64 re) 3) -1/432)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (pow.f64 im 9) (*.f64 (pow.f64 (cos.f64 re) 3) 0) (*.f64 (pow.f64 im 6) 0)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (pow.f64 im 9) 0 0))
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/31104 (pow.f64 (cos.f64 re) 4)) (+.f64 (*.f64 1/3888 (pow.f64 (cos.f64 re) 4)) (+.f64 (*.f64 1/10368 (pow.f64 (cos.f64 re) 4)) (*.f64 -1/2592 (pow.f64 (cos.f64 re) 4))))) (pow.f64 im 12)) (+.f64 (*.f64 (+.f64 (*.f64 -1/72 (pow.f64 (cos.f64 re) 2)) (*.f64 1/72 (pow.f64 (cos.f64 re) 2))) (pow.f64 im 6)) (*.f64 (+.f64 (*.f64 1/432 (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 -1/1296 (pow.f64 (cos.f64 re) 3)) (*.f64 -1/648 (pow.f64 (cos.f64 re) 3)))) (pow.f64 im 9)))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (fma.f64 1/31104 (pow.f64 (cos.f64 re) 4) (fma.f64 1/3888 (pow.f64 (cos.f64 re) 4) (*.f64 (pow.f64 (cos.f64 re) 4) -1/3456))) (pow.f64 im 12) (fma.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 0) (pow.f64 im 6) (*.f64 (pow.f64 im 9) (fma.f64 1/432 (pow.f64 (cos.f64 re) 3) (*.f64 (pow.f64 (cos.f64 re) 3) -1/432))))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (fma.f64 1/31104 (pow.f64 (cos.f64 re) 4) (*.f64 (pow.f64 (cos.f64 re) 4) -1/31104)) (pow.f64 im 12) (fma.f64 (pow.f64 im 9) (*.f64 (pow.f64 (cos.f64 re) 3) 0) (*.f64 (pow.f64 im 6) 0))))
(fma.f64 (*.f64 (pow.f64 (cos.f64 re) 4) 0) (pow.f64 im 12) (fma.f64 -1/6 (*.f64 (pow.f64 im 3) (cos.f64 re)) (fma.f64 (pow.f64 im 9) 0 0)))
(-.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) 1)
(expm1.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re)))))
(fma.f64 (pow.f64 (/.f64 1 im) -3) (*.f64 -1/6 (cos.f64 re)) -1)
(fma.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 (/.f64 1 im) -3) -1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(+.f64 (/.f64 (*.f64 -6 (exp.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) (*.f64 (pow.f64 im 3) (cos.f64 re))) (expm1.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 -1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 1 im) -3) (*.f64 -1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 -1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 (/.f64 1 im) -3) -1))
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(+.f64 (/.f64 (*.f64 -6 (exp.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) (*.f64 (pow.f64 im 3) (cos.f64 re))) (expm1.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 -1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 1 im) -3) (*.f64 -1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 -1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 (/.f64 1 im) -3) -1))
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 1 im))) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) 1)
(+.f64 (/.f64 (*.f64 -6 (exp.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re)))))) (*.f64 (pow.f64 im 3) (cos.f64 re))) (expm1.f64 (fma.f64 -3 (neg.f64 (log.f64 im)) (log.f64 (*.f64 -1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 -1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 1 im) -3) (*.f64 -1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 1 im) -3) (pow.f64 im 3)) (/.f64 -1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (*.f64 -1/6 (cos.f64 re)) (pow.f64 (/.f64 1 im) -3) -1))
(-.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) 1)
(expm1.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re)))))
(fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1)
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(+.f64 (*.f64 -6 (/.f64 (exp.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (pow.f64 im 3) (cos.f64 re)))) (expm1.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(+.f64 (*.f64 -6 (/.f64 (exp.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (pow.f64 im 3) (cos.f64 re)))) (expm1.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(-.f64 (+.f64 (*.f64 -6 (/.f64 (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (cos.f64 re) (pow.f64 im 3)))) (exp.f64 (+.f64 (*.f64 -3 (log.f64 (/.f64 -1 im))) (log.f64 (*.f64 1/6 (cos.f64 re)))))) 1)
(+.f64 (*.f64 -6 (/.f64 (exp.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))) (*.f64 (pow.f64 im 3) (cos.f64 re)))) (expm1.f64 (fma.f64 -3 (log.f64 (/.f64 -1 im)) (log.f64 (*.f64 1/6 (cos.f64 re))))))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 (*.f64 1/6 (cos.f64 re)) (cos.f64 re))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(fma.f64 -6 (*.f64 (/.f64 (pow.f64 (/.f64 -1 im) -3) (pow.f64 im 3)) (/.f64 1/6 (/.f64 (cos.f64 re) (cos.f64 re)))) (fma.f64 (pow.f64 (/.f64 -1 im) -3) (*.f64 1/6 (cos.f64 re)) -1))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))

prune268.0ms (3%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New1410141
Fresh01010
Picked011
Done011
Total14112153
Error
0.1b
Counts
153 → 12
Alt Table
StatusErrorProgram
41.5b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) 3)))
34.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (sqrt.f64 (*.f64 (cos.f64 re) im)) 2)) (+.f64 (*.f64 -1/120 (*.f64 (cos.f64 re) (pow.f64 im 5))) (*.f64 -1/5040 (*.f64 (cos.f64 re) (pow.f64 im 7))))))
57.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (-.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
41.5b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3))
2.2b
(+.f64 (*.f64 -1/6 (*.f64 (cos.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) 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))))))
46.4b
(sqrt.f64 (pow.f64 (*.f64 (*.f64 2 (sinh.f64 im)) (*.f64 1/2 (cos.f64 re))) 2))
31.0b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))))) 2)
1.1b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 3) -1/6)))) 1) (+.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))))))
32.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 -1/2520 (pow.f64 im 7) (*.f64 (cbrt.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2)))) (cbrt.f64 (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)))))
30.5b
(*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (sqrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 2))
2.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (cbrt.f64 (fma.f64 -1/2520 (pow.f64 im 7) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))) 3))
32.2b
(*.f64 (*.f64 1/2 (cos.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 -1/2520 (pow.f64 im 7)) (*.f64 -1/2520 (pow.f64 im 7))) (pow.f64 (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))) 2)) (-.f64 (*.f64 -1/2520 (pow.f64 im 7)) (fma.f64 -1/3 (pow.f64 im 3) (fma.f64 -1/60 (pow.f64 im 5) (*.f64 im -2))))))
Compiler

Compiled 6891 to 4702 computations (31.8% saved)

regimes162.0ms (1.8%)

Accuracy

Total -63.3b remaining (-9375.3%)

Threshold costs -63.3b (-9375.3%)

Counts
47 → 1
Compiler

Compiled 1269 to 891 computations (29.8% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02033
12833
23333
33533
43633
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 5) -1/120)) (-.f64 (*.f64 (pow.f64 im 3) -1/6) im)))
Outputs
(*.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 5) -1/120)) (-.f64 (*.f64 (pow.f64 im 3) -1/6) im)))

end263.0ms (2.9%)

Stop Event
fuel
Compiler

Compiled 406 to 301 computations (25.9% saved)

Profiling

Loading profile data...