math.cos on complex, real part

Time bar (total: 5.3s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample1.3s (24.2%)

Results
729.0ms4156×256valid
554.0ms4100×256infinite
Bogosity

preprocess336.0ms (6.3%)

Algorithm
egg-herbie
Rules
1164×times-frac
864×div-sub
828×fma-def
812×fma-neg
784×distribute-neg-frac
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-re
00-0-(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
00-0-im
00-0-1/2
00-0-(cos.f64 re)
00-0-(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
00-0-(*.f64 1/2 (cos.f64 re))
00-0-(neg.f64 im)
00-0-(exp.f64 (neg.f64 im))
00-0-(exp.f64 im)
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
032316
1100308
2280308
3690298
41413294
54012294
66076294
77976294
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 (neg.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 im))))
(neg.f64 (*.f64 (*.f64 1/2 (cos.f64 (neg.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 (neg.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 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (cos.f64 re)))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 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 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 1/2 (cos.f64 (neg.f64 re))) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (neg.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) -1/2))
(*.f64 (cos.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 -1/2 (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 (neg.f64 im))) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (neg.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) -1/2))
(*.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 (neg.f64 re)) (exp.f64 re)))
(*.f64 (cos.f64 im) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re))))
Symmetry

(abs re)

(abs im)

Compiler

Compiled 85 to 38 computations (55.3% saved)

eval1.0ms (0%)

Compiler

Compiled 35 to 18 computations (48.6% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize59.0ms (1.1%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 36 to 14 computations (61.1% saved)

series6.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite152.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
200×associate-*r*
128×associate-*l*
90×add-exp-log
90×add-log-exp
90×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01669
120269
2329669
Stop Event
unsound
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Outputs
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(fabs.f64 (*.f64 (cos.f64 re) -2))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))
-2
0
1/4
1/2
3/2
2

simplify70.0ms (1.3%)

Algorithm
egg-herbie
Rules
1092×fma-neg
910×div-sub
880×cancel-sign-sub-inv
866×fma-def
672×distribute-lft-out
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01081657
13121494
29361494
344461494
Stop Event
node limit
Counts
64 → 61
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (cos.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) (cos.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (cos.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(fabs.f64 (*.f64 (cos.f64 re) -2))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))
-2
0
1/4
1/2
3/2
2
Outputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (fma.f64 1/48 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 4)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (fma.f64 -1/1440 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 4)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (cos.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))))
(+.f64 (cos.f64 re) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) (cos.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (cos.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))))
(+.f64 (cos.f64 re) (fma.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6)) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))))
(+.f64 (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))) (*.f64 (+.f64 (*.f64 1/720 (pow.f64 im 6)) 1) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
2
(cos.f64 re)
(+.f64 2 (pow.f64 im 2))
(fma.f64 im im 2)
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2)))
(+.f64 2 (fma.f64 (pow.f64 im 4) 1/12 (pow.f64 im 2)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 2 (fma.f64 1/360 (pow.f64 im 6) (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(+.f64 2 (fma.f64 (pow.f64 im 6) 1/360 (fma.f64 (pow.f64 im 4) 1/12 (pow.f64 im 2))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (cos.f64 re) (cos.f64 re))
(cos.f64 re)
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(cos.f64 re)
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(cos.f64 re)
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(fabs.f64 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(log.f64 (pow.f64 1 (cos.f64 re)))
(cos.f64 re)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cos.f64 re)
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(cos.f64 re)
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(cos.f64 re)
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
-2
(cos.f64 re)
0
(cos.f64 re)
1/4
(cos.f64 re)
1/2
(cos.f64 re)
3/2
(cos.f64 re)
2
(cos.f64 re)

eval19.0ms (0.3%)

Compiler

Compiled 841 to 478 computations (43.2% saved)

prune134.0ms (2.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New55661
Fresh000
Picked011
Done000
Total55762
Accuracy
100.0%
Counts
62 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
7.9%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
77.2%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
10.8%
(+.f64 (cos.f64 re) (cos.f64 re))
77.2%
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
70.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
50.3%
(cos.f64 re)
Compiler

Compiled 119 to 88 computations (26.1% saved)

localize173.0ms (3.2%)

Localize:

Found 5 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
99.7%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
100.0%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
100.0%
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
99.9%
(*.f64 (pow.f64 im 2) (cos.f64 re))
Compiler

Compiled 85 to 37 computations (56.5% saved)

series10.0ms (0.2%)

Counts
5 → 35
Calls

24 calls:

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

rewrite47.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
252×associate-*r*
146×associate-*l*
134×log1p-expm1-u
134×expm1-log1p-u
131×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022115
1300115
24890115
Stop Event
unsound
Counts
5 → 70
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 2) (cos.f64 re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

simplify132.0ms (2.5%)

Algorithm
egg-herbie
Rules
1222×fma-def
956×*-commutative
854×distribute-rgt-out
812×distribute-lft-out
598×+-commutative
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01021402
12561385
27091306
328611266
452311257
558071257
671261257
Stop Event
node limit
Counts
105 → 90
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (pow.f64 im 2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (pow.f64 im 2)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2)) (*.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 1/48 (pow.f64 im 2)))))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2)) (+.f64 (*.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 1/48 (pow.f64 im 2)))) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/1440 (pow.f64 im 2)) 1/720))))))
(cos.f64 re)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 1/4 (pow.f64 re 2))))
(+.f64 1/4 (+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 1/4 (pow.f64 re 2)))))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
Outputs
(pow.f64 im 2)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (pow.f64 im 2))
(fma.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (pow.f64 im 2))
(*.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) (pow.f64 im 2))
(*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (pow.f64 im 2)))
(fma.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (pow.f64 im 2)))
(fma.f64 im im (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (pow.f64 im 2))))
(fma.f64 -1/2 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 -1/720 (*.f64 (pow.f64 im 2) (pow.f64 re 6)) (fma.f64 1/24 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (pow.f64 im 2))))
(+.f64 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) (pow.f64 im 2)) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6))))))
(*.f64 (pow.f64 im 2) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/2 (pow.f64 re 2)))))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) 1/2)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 (pow.f64 im 2) 1/2))
(fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 2) -1/4)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (*.f64 (pow.f64 im 2) 1/2)))
(fma.f64 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) -1/4 (fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 im 2) (*.f64 1/48 (pow.f64 re 4)))))
(fma.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 2) -1/4))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 2) -1/4))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2)))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (*.f64 (pow.f64 im 2) 1/2))))
(fma.f64 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) -1/4 (fma.f64 (*.f64 (pow.f64 im 2) (pow.f64 re 6)) -1/1440 (fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 im 2) (*.f64 1/48 (pow.f64 re 4))))))
(+.f64 (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 6) -1/1440))))
(*.f64 (pow.f64 im 2) (+.f64 (+.f64 1/2 (*.f64 (pow.f64 re 4) 1/48)) (+.f64 (*.f64 (pow.f64 re 2) -1/4) (*.f64 (pow.f64 re 6) -1/1440))))
(*.f64 (pow.f64 im 2) (+.f64 (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 2) -1/4)) (+.f64 1/2 (*.f64 (pow.f64 re 6) -1/1440))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) 1)
(fma.f64 (pow.f64 im 2) 1/2 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/4 (pow.f64 im 2) -1/2))))
(+.f64 1 (fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2))))
(fma.f64 (pow.f64 im 2) 1/2 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) 1))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2)) (*.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 1/48 (pow.f64 im 2)))))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) (fma.f64 -1/4 (pow.f64 im 2) -1/2) (*.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 (pow.f64 im 2) 1/48))))))
(+.f64 1 (fma.f64 (pow.f64 im 2) 1/2 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (*.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24)))))
(+.f64 (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (*.f64 (pow.f64 im 2) 1/2)) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) 1))
(+.f64 1 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24)))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 (pow.f64 re 2) (-.f64 (*.f64 -1/4 (pow.f64 im 2)) 1/2)) (+.f64 (*.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 1/48 (pow.f64 im 2)))) (*.f64 (pow.f64 re 6) (-.f64 (*.f64 -1/1440 (pow.f64 im 2)) 1/720))))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) (fma.f64 -1/4 (pow.f64 im 2) -1/2) (fma.f64 (pow.f64 re 4) (+.f64 1/24 (*.f64 (pow.f64 im 2) 1/48)) (*.f64 (pow.f64 re 6) (fma.f64 -1/1440 (pow.f64 im 2) -1/720))))))
(+.f64 1 (fma.f64 (pow.f64 im 2) 1/2 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (*.f64 (pow.f64 re 6) (fma.f64 (pow.f64 im 2) -1/1440 -1/720))))))
(+.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (*.f64 (pow.f64 re 6) (fma.f64 (pow.f64 im 2) -1/1440 -1/720)))))
(+.f64 1 (fma.f64 (pow.f64 im 2) 1/2 (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (*.f64 (pow.f64 re 6) (fma.f64 (pow.f64 im 2) -1/1440 -1/720))))))
(+.f64 1 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2) (fma.f64 (pow.f64 im 2) 1/2 (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (*.f64 (pow.f64 re 6) (fma.f64 (pow.f64 im 2) -1/1440 -1/720))))))
(cos.f64 re)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
(fma.f64 (pow.f64 re 2) 1/4 1/4)
(+.f64 1/4 (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 1/4 (pow.f64 re 2))))
(+.f64 1/4 (fma.f64 1/6 (pow.f64 re 4) (*.f64 (pow.f64 re 2) 1/4)))
(+.f64 1/4 (fma.f64 (pow.f64 re 2) 1/4 (*.f64 (pow.f64 re 4) 1/6)))
(fma.f64 (pow.f64 re 2) 1/4 (fma.f64 (pow.f64 re 4) 1/6 1/4))
(+.f64 1/4 (+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 (*.f64 1/6 (pow.f64 re 4)) (*.f64 1/4 (pow.f64 re 2)))))
(+.f64 1/4 (fma.f64 17/180 (pow.f64 re 6) (fma.f64 1/6 (pow.f64 re 4) (*.f64 (pow.f64 re 2) 1/4))))
(+.f64 1/4 (fma.f64 (pow.f64 re 6) 17/180 (fma.f64 (pow.f64 re 2) 1/4 (*.f64 (pow.f64 re 4) 1/6))))
(fma.f64 (pow.f64 re 6) 17/180 (fma.f64 (pow.f64 re 2) 1/4 (fma.f64 (pow.f64 re 4) 1/6 1/4)))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
2
(+.f64 2 (pow.f64 im 2))
(fma.f64 im im 2)
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2)))
(fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 2 (fma.f64 1/360 (pow.f64 im 6) (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(fma.f64 1/360 (pow.f64 im 6) (fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

eval43.0ms (0.8%)

Compiler

Compiled 1563 to 1206 computations (22.8% saved)

prune20.0ms (0.4%)

Pruning

12 alts after pruning (8 fresh and 4 done)

PrunedKeptTotal
New83790
Fresh011
Picked235
Done011
Total851297
Accuracy
100.0%
Counts
97 → 12
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.2%
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2))
77.2%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
3.2%
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
13.3%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
30.4%
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
77.2%
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
52.4%
(*.f64 1/2 (fma.f64 im im 2))
70.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
32.2%
(*.f64 1/2 2)
50.3%
(cos.f64 re)
7.9%
1/4
Compiler

Compiled 168 to 136 computations (19% saved)

localize111.0ms (2.1%)

Localize:

Found 4 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2))
100.0%
(*.f64 (pow.f64 im 2) 1/2)
99.7%
(*.f64 (pow.f64 re 2) 1/4)
99.9%
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
Compiler

Compiled 80 to 51 computations (36.3% saved)

series7.0ms (0.1%)

Counts
4 → 72
Calls

18 calls:

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

rewrite122.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
1574×prod-diff
1212×log-prod
666×log1p-expm1-u
666×expm1-log1p-u
650×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02195
124591
2302691
Stop Event
node limit
Counts
4 → 116
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 (pow.f64 im 2) 1/2)
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2))
Outputs
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.f64 0 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))) 1)
(pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(exp.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(fma.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 1 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1/2 (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4)))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (*.f64 im (sqrt.f64 1/2))) (*.f64 im (sqrt.f64 1/2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.f64 0 (pow.f64 (*.f64 1/2 re) 2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2))) 1)
(pow.f64 (pow.f64 (*.f64 1/2 re) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 1/2 re) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3) 1/3)
(pow.f64 (*.f64 1/2 re) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2))))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)) 1))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2)))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(cbrt.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))) 1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))) (/.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(*.f64 1 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(*.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (/.f64 1 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))) (neg.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))) (neg.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 3)
(pow.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 2))
(log.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))))
(log.f64 (*.f64 (exp.f64 (cos.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(log.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (exp.f64 (cos.f64 re))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(exp.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (cos.f64 re) 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 im (*.f64 im 1/2) (cos.f64 re))
(fma.f64 (pow.f64 im 2) 1/2 (cos.f64 re))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) 1 (cos.f64 re))
(fma.f64 1 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 (pow.f64 (cbrt.f64 im) 2) 1/2) (cos.f64 re))
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cos.f64 re))
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 1/2)) (cos.f64 re))
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(fma.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 im 4))) (pow.f64 (cbrt.f64 im) 2) (cos.f64 re))

simplify88.0ms (1.7%)

Algorithm
egg-herbie
Rules
1218×associate-+r+
980×associate-+l+
464×cancel-sign-sub-inv
432×log-prod
366×+-commutative
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03136004
17605649
226945415
Stop Event
node limit
Counts
188 → 167
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2)))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.f64 0 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))) 1)
(pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(exp.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(fma.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 1 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1/2 (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4)))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (*.f64 im (sqrt.f64 1/2))) (*.f64 im (sqrt.f64 1/2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.f64 0 (pow.f64 (*.f64 1/2 re) 2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2))) 1)
(pow.f64 (pow.f64 (*.f64 1/2 re) 2) 1)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 1/2 re) 2)) 3)
(pow.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3) 1/3)
(pow.f64 (*.f64 1/2 re) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2))))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)) 1))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2)))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(cbrt.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))) 1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))) (/.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(*.f64 1 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(*.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (/.f64 1 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))) (neg.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))) (neg.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 3)
(pow.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 2))
(log.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))))
(log.f64 (*.f64 (exp.f64 (cos.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(log.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (exp.f64 (cos.f64 re))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(cbrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(exp.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (cos.f64 re) 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 im (*.f64 im 1/2) (cos.f64 re))
(fma.f64 (pow.f64 im 2) 1/2 (cos.f64 re))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) 1 (cos.f64 re))
(fma.f64 1 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 (pow.f64 (cbrt.f64 im) 2) 1/2) (cos.f64 re))
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cos.f64 re))
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 1/2)) (cos.f64 re))
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(fma.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 im 4))) (pow.f64 (cbrt.f64 im) 2) (cos.f64 re))
Outputs
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (fma.f64 im im 2))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(fma.f64 -1/4 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2)))))
(fma.f64 -1/4 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) (fma.f64 1/48 (*.f64 (fma.f64 im im 2) (pow.f64 re 4)) (*.f64 1/2 (fma.f64 im im 2))))
(fma.f64 -1/4 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) (*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 (fma.f64 im im 2) (+.f64 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))) (*.f64 1/48 (pow.f64 re 4))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))))
(fma.f64 -1/4 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) (fma.f64 -1/1440 (*.f64 (fma.f64 im im 2) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (fma.f64 im im 2) (pow.f64 re 4)) (*.f64 1/2 (fma.f64 im im 2)))))
(+.f64 (*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 -1/1440 (pow.f64 re 6)))))
(*.f64 (fma.f64 im im 2) (+.f64 (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 -1/1440 (pow.f64 re 6)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re 2) 1/4)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (fma.f64 im im 2))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) -1/2)))
(+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (pow.f64 re 2) -1/2))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (fma.f64 (pow.f64 re 2) -1/2 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/24))))
(+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 (pow.f64 re 2) -1/2 (*.f64 (pow.f64 re 4) 1/24)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (fma.f64 1/24 (pow.f64 re 4) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 1 (fma.f64 (pow.f64 re 2) -1/2 (fma.f64 (pow.f64 re 6) -1/720 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/24)))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 0 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))) 1)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 1)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(pow.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 3)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(pow.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3) 1/3)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(pow.f64 (sqrt.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 2)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(sqrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re)) 3))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(exp.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))) 1))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)) (*.f64 2 (*.f64 1/2 (cos.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 1 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (sqrt.f64 (cos.f64 re)) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))) (cbrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (sqrt.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (sqrt.f64 (cos.f64 re)) (*.f64 im (sqrt.f64 1/2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1/2 (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(fma.f64 (*.f64 (cos.f64 re) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4)))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(fma.f64 (*.f64 (cos.f64 re) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4)))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (*.f64 1 (cos.f64 re)))
(fma.f64 (*.f64 (cos.f64 re) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4)))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1 (*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))))))
(fma.f64 (*.f64 (cos.f64 re) (*.f64 im (sqrt.f64 1/2))) (*.f64 im (sqrt.f64 1/2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (cos.f64 re))
(+.f64 0 (pow.f64 (*.f64 1/2 re) 2))
(*.f64 (pow.f64 re 2) 1/4)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))))
(*.f64 (pow.f64 re 2) 1/4)
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2))) 1)
(*.f64 (pow.f64 re 2) 1/4)
(pow.f64 (pow.f64 (*.f64 1/2 re) 2) 1)
(*.f64 (pow.f64 re 2) 1/4)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 1/2 re) 2)) 3)
(*.f64 (pow.f64 re 2) 1/4)
(pow.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3) 1/3)
(*.f64 (pow.f64 re 2) 1/4)
(pow.f64 (*.f64 1/2 re) 2)
(*.f64 (pow.f64 re 2) 1/4)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re 2)))
(*.f64 (pow.f64 re 2) 1/4)
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2))))
(*.f64 (pow.f64 re 2) 1/4)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 1/2 re) 2) 3))
(*.f64 (pow.f64 re 2) 1/4)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 1/2 re) 2)))
(*.f64 (pow.f64 re 2) 1/4)
(exp.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)))
(*.f64 (pow.f64 re 2) 1/4)
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 1/2 re) 2)) 1))
(*.f64 (pow.f64 re 2) 1/4)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 1/2 re) 2)))
(*.f64 (pow.f64 re 2) 1/4)
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2)))) (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))))))
(*.f64 3 (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(*.f64 1/2 (pow.f64 im 2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) 1/3)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(*.f64 1/2 (pow.f64 im 2))
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(*.f64 1/2 (pow.f64 im 2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 1/2 (pow.f64 im 2))
(cbrt.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3))
(*.f64 1/2 (pow.f64 im 2))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(*.f64 1/2 (pow.f64 im 2))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))) (/.f64 (*.f64 1/4 (pow.f64 im 4)) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 im 6) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))))
(*.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (/.f64 1 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 im 6) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (fma.f64 (pow.f64 im 6) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)))))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 im 6) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3))) (neg.f64 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2))))
(/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)) (pow.f64 (cos.f64 re) 2)))
(/.f64 (fma.f64 (pow.f64 im 6) 1/8 (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4)))) (neg.f64 (+.f64 (cos.f64 re) (*.f64 -1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(/.f64 (-.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (*.f64 -1/4 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) -1/2 (cos.f64 re)))
(pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 3)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3) 1/3)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 2)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(sqrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 2))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (exp.f64 (cos.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 re))) (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (exp.f64 (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 1 (expm1.f64 (cos.f64 re)))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(cbrt.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re)) 3))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(expm1.f64 (log1p.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(exp.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))) 1))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log1p.f64 (expm1.f64 (fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (cos.f64 re) 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 im (*.f64 im 1/2) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (pow.f64 im 2) 1/2 (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) 1 (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 1 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 1 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 (pow.f64 (cbrt.f64 im) 2) 1/2) (cos.f64 re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 (cbrt.f64 im) 2)) (cos.f64 re))
(fma.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 im 4))) (pow.f64 (cbrt.f64 im) 2) (cos.f64 re))
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cos.f64 re))
(fma.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) (cbrt.f64 (*.f64 1/4 (pow.f64 im 4))) (cos.f64 re))
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (*.f64 im (sqrt.f64 1/2)) (*.f64 im (sqrt.f64 1/2)) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(fma.f64 (*.f64 1/2 (cbrt.f64 (pow.f64 im 4))) (pow.f64 (cbrt.f64 im) 2) (cos.f64 re))
(fma.f64 (cbrt.f64 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 (cbrt.f64 im) 2)) (cos.f64 re))

eval66.0ms (1.2%)

Compiler

Compiled 2495 to 1806 computations (27.6% saved)

prune29.0ms (0.5%)

Pruning

13 alts after pruning (5 fresh and 8 done)

PrunedKeptTotal
New1652167
Fresh033
Picked145
Done044
Total16613179
Accuracy
100.0%
Counts
179 → 13
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.2%
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
77.2%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
3.2%
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
13.3%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
54.8%
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
30.4%
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
77.2%
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
52.4%
(*.f64 1/2 (fma.f64 im im 2))
70.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
32.2%
(*.f64 1/2 2)
50.3%
(cos.f64 re)
7.9%
1/4
Compiler

Compiled 163 to 129 computations (20.9% saved)

localize122.0ms (2.3%)

Localize:

Found 5 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
99.7%
(*.f64 -1/4 (pow.f64 re 2))
99.9%
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
99.9%
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
100.0%
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
Compiler

Compiled 94 to 61 computations (35.1% saved)

series9.0ms (0.2%)

Counts
5 → 84
Calls

24 calls:

TimeVariablePointExpression
3.0ms
im
@-inf
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
1.0ms
im
@0
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
1.0ms
re
@inf
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
0.0ms
re
@inf
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
0.0ms
im
@0
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))

rewrite147.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
1016×prod-diff
915×log1p-expm1-u
544×expm1-udef
544×log1p-udef
423×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
027125
1332125
24193125
Stop Event
node limit
Counts
5 → 111
Calls
Call 1
Inputs
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) 1/2))
Outputs
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (cos.f64 re))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))) 1)
(*.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(*.f64 1 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2) (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 3)
(pow.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 2))
(log.f64 (exp.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(exp.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 re) -2))) 1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(*.f64 (+.f64 (cos.f64 re) -2) 1)
(*.f64 1 (+.f64 (cos.f64 re) -2))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (cbrt.f64 (+.f64 (cos.f64 re) -2)))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) (sqrt.f64 (+.f64 (cos.f64 re) -2)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 (cos.f64 re) 2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.f64 (cos.f64 re) 2)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(pow.f64 (+.f64 (cos.f64 re) -2) 1)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 3)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 2)
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 2))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 re) -2))))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) -2)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) -2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (pow.f64 im 2) 3)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 1))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2)))) 1)
(pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) 3)
(pow.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/3)
(pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/4))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2)))))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64))
(expm1.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))) 1))
(log1p.f64 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)))
(+.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
(+.f64 (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (pow.f64 im 2)) (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 2))
(+.f64 (*.f64 (pow.f64 im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) (*.f64 2 (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 1) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 3) (pow.f64 (*.f64 1/2 (fma.f64 im im 2)) 3)) (+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (-.f64 (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2))) (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2)))) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8) (fma.f64 im im 2)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4) (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3) (pow.f64 (fma.f64 im im 2) 3)))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(exp.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 1))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 im im 2) (*.f64 1/2 (fma.f64 im im 2)))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))

simplify165.0ms (3.1%)

Algorithm
egg-herbie
Rules
628×associate-+l+
600×associate-+r+
578×log-prod
464×fma-neg
458×cancel-sign-sub-inv
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03356534
18646274
232516004
Stop Event
node limit
Counts
195 → 188
Calls
Call 1
Inputs
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
-1
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))) 1)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))) 1)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(-.f64 (cos.f64 re) 2)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (cos.f64 re))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))) 1)
(*.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(*.f64 1 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2) (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 3)
(pow.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 2))
(log.f64 (exp.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(exp.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 1))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 re) -2))) 1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(*.f64 (+.f64 (cos.f64 re) -2) 1)
(*.f64 1 (+.f64 (cos.f64 re) -2))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (cbrt.f64 (+.f64 (cos.f64 re) -2)))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) (sqrt.f64 (+.f64 (cos.f64 re) -2)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 (cos.f64 re) 2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.f64 (cos.f64 re) 2)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(pow.f64 (+.f64 (cos.f64 re) -2) 1)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 3)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 2)
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 2))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 re) -2))))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) -2)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) -2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 3)
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (pow.f64 im 2) 3)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 1))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2)))) 1)
(pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) 3)
(pow.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/3)
(pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/4))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2)))))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64))
(expm1.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))) 1))
(log1p.f64 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)))
(+.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
(+.f64 (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (pow.f64 im 2)) (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 2))
(+.f64 (*.f64 (pow.f64 im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) (*.f64 2 (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 1) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 3) (pow.f64 (*.f64 1/2 (fma.f64 im im 2)) 3)) (+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (-.f64 (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2))) (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2)))) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8) (fma.f64 im im 2)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4) (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3) (pow.f64 (fma.f64 im im 2) 3)))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(exp.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 1))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 im im 2) (*.f64 1/2 (fma.f64 im im 2)))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
Outputs
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (fma.f64 im im 2))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (fma.f64 1/24 (pow.f64 re 4) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 1 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (fma.f64 1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 re 4))))))
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
-1
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
(fma.f64 -1/2 (pow.f64 re 2) -1)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))) 1)
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 1/24 (pow.f64 re 4))) -1)
(fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) -1))
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))) 1)
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4)))) -1)
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 -1/720 (pow.f64 re 6))) (fma.f64 1/24 (pow.f64 re 4) -1))
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) -1) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))))
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(-.f64 (cos.f64 re) 2)
(+.f64 (cos.f64 re) -2)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48)) (*.f64 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/48) (fma.f64 (pow.f64 re 2) -1/4 1/2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4))) (*.f64 1/2 (pow.f64 im 2)))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (fma.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (fma.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6)) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48))) (*.f64 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2)))
(+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/48) (fma.f64 (pow.f64 re 2) -1/4 1/2))) (*.f64 (pow.f64 re 6) (*.f64 (pow.f64 im 2) -1/1440)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 2 (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 2 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (fma.f64 im im 2))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)))
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)))
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (cos.f64 re))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 1 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2) (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (pow.f64 im 2)) 3) (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))))
(/.f64 (+.f64 (*.f64 1/8 (pow.f64 (pow.f64 im 2) 3)) (pow.f64 (cos.f64 re) 3)) (+.f64 (*.f64 1/4 (pow.f64 im 4)) (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (fma.f64 1/8 (pow.f64 (pow.f64 im 2) 3) (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (fma.f64 1/8 (pow.f64 im 6) (pow.f64 (cos.f64 re) 3)) (fma.f64 1/4 (pow.f64 im 4) (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) -1/2)))))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/2 (pow.f64 im 2))) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (-.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 (cos.f64 re) 2)) (-.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 1)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 3)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3) 1/3)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 2)
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 2))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (exp.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) 3))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(exp.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(exp.f64 (*.f64 (log.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))) 1))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 1/2 im) im (cos.f64 re))))
(fma.f64 1/2 (pow.f64 im 2) (cos.f64 re))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 re) -2))) 1)
(+.f64 (cos.f64 re) -2)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (cos.f64 re) -2) 1)
(+.f64 (cos.f64 re) -2)
(*.f64 1 (+.f64 (cos.f64 re) -2))
(+.f64 (cos.f64 re) -2)
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (cbrt.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) (sqrt.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) 2))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 (cos.f64 re) 2)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) 2))))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) 2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) -2))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) 2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 4 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) 2))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.f64 (cos.f64 re) 2)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 4 (+.f64 (cos.f64 re) 2)))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 2)) (/.f64 -4 (+.f64 (cos.f64 re) 2)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(pow.f64 (+.f64 (cos.f64 re) -2) 1)
(+.f64 (cos.f64 re) -2)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 3)
(+.f64 (cos.f64 re) -2)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3) 1/3)
(+.f64 (cos.f64 re) -2)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 2)
(+.f64 (cos.f64 re) -2)
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 2))
(+.f64 (cos.f64 re) -2)
(log.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 re) -2))))
(+.f64 (cos.f64 re) -2)
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3))
(+.f64 (cos.f64 re) -2)
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(exp.f64 (log.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1))
(+.f64 (cos.f64 re) -2)
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(fma.f64 1 (cos.f64 re) -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) -2)
(+.f64 (cos.f64 re) -2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))) 1)
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 3)
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(pow.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3) 1/3)
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(pow.f64 (*.f64 im (sqrt.f64 (*.f64 1/2 (cos.f64 re)))) 2)
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 (pow.f64 (cos.f64 re) 2) 1/4)))
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 re) 2) 1/4) (pow.f64 im 4)))
(sqrt.f64 (*.f64 (*.f64 1/4 (pow.f64 im 4)) (pow.f64 (cos.f64 re) 2)))
(fabs.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) (*.f64 1/2 (cos.f64 re))))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cbrt.f64 (pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 3))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 (*.f64 1/2 (cos.f64 re)) 3)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (cos.f64 re)) 3) (pow.f64 (pow.f64 im 2) 3)))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) 1))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2)))) 1)
(*.f64 (pow.f64 re 2) -1/4)
(pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 1)
(*.f64 (pow.f64 re 2) -1/4)
(pow.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) 3)
(*.f64 (pow.f64 re 2) -1/4)
(pow.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64))
(cbrt.f64 (*.f64 (pow.f64 re 6) -1/64))
(pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)
(*.f64 (pow.f64 re 2) -1/4)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/4))
(*.f64 (pow.f64 re 2) -1/4)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (pow.f64 re 2) -1/4)
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64))
(cbrt.f64 (*.f64 (pow.f64 re 6) -1/64))
(expm1.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 re 2) -1/4)
(exp.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 re 2) -1/4)
(exp.f64 (*.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))) 1))
(*.f64 (pow.f64 re 2) -1/4)
(log1p.f64 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 re 2) -1/4)
(+.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (pow.f64 im 2)) (*.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 2))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 (pow.f64 im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) (*.f64 2 (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 1) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) 1)
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 3) (pow.f64 (*.f64 1/2 (fma.f64 im im 2)) 3)) (+.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (-.f64 (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2))) (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))))
(/.f64 (+.f64 (pow.f64 (*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2))) 3) (*.f64 1/8 (pow.f64 (fma.f64 im im 2) 3))) (+.f64 (*.f64 (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (*.f64 -1/4 (fma.f64 im im 2))) (pow.f64 re 4)) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (-.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))))))
(/.f64 (fma.f64 (*.f64 -1/64 (pow.f64 (fma.f64 im im 2) 3)) (pow.f64 re 6) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (-.f64 1/2 (*.f64 (pow.f64 re 2) -1/4))) (*.f64 (pow.f64 re 4) (*.f64 1/16 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2))))))
(/.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (fma.f64 (pow.f64 re 6) -1/64 1/8)) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 4) (*.f64 -1/4 (fma.f64 im im 2)))) (*.f64 1/2 (*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 (pow.f64 re 2) 1/4)))))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2))) (*.f64 (*.f64 1/2 (fma.f64 im im 2)) (*.f64 1/2 (fma.f64 im im 2)))) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (*.f64 -1/4 (fma.f64 im im 2))) (pow.f64 re 4)) (*.f64 1/4 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)))) (+.f64 (*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2))) (*.f64 -1/2 (fma.f64 im im 2))))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2)) (/.f64 (*.f64 (fma.f64 im im 2) (-.f64 (*.f64 (pow.f64 re 2) -1/4) 1/2)) (*.f64 (fma.f64 im im 2) (-.f64 (*.f64 (pow.f64 re 2) -1/4) 1/2))))
(/.f64 (fma.f64 (pow.f64 re 2) -1/4 1/2) (/.f64 1 (fma.f64 im im 2)))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8)) (fma.f64 (pow.f64 re 4) 1/16 (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(*.f64 (/.f64 (fma.f64 im im 2) (-.f64 (fma.f64 (pow.f64 re 4) 1/16 1/4) (*.f64 (pow.f64 re 2) -1/8))) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(*.f64 (/.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 2) 1/8) (fma.f64 (pow.f64 re 4) 1/16 1/4))) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(/.f64 (fma.f64 (pow.f64 re 4) 1/16 -1/4) (/.f64 (fma.f64 -1/4 (pow.f64 re 2) -1/2) (fma.f64 im im 2)))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 -1/2)) (fma.f64 (pow.f64 re 4) 1/16 -1/4))
(/.f64 (fma.f64 im im 2) (/.f64 (fma.f64 (pow.f64 re 2) -1/4 -1/2) (fma.f64 (pow.f64 re 4) 1/16 -1/4)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 1/8) (fma.f64 im im 2)) (+.f64 (*.f64 (pow.f64 re 4) 1/16) (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8)) (fma.f64 (pow.f64 re 4) 1/16 (-.f64 1/4 (*.f64 (pow.f64 re 2) -1/8))))
(*.f64 (/.f64 (fma.f64 im im 2) (-.f64 (fma.f64 (pow.f64 re 4) 1/16 1/4) (*.f64 (pow.f64 re 2) -1/8))) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(*.f64 (/.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 2) 1/8) (fma.f64 (pow.f64 re 4) 1/16 1/4))) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 re 4) 1/16) -1/4) (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2))
(/.f64 (fma.f64 (pow.f64 re 4) 1/16 -1/4) (/.f64 (fma.f64 -1/4 (pow.f64 re 2) -1/2) (fma.f64 im im 2)))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 -1/2)) (fma.f64 (pow.f64 re 4) 1/16 -1/4))
(/.f64 (fma.f64 im im 2) (/.f64 (fma.f64 (pow.f64 re 2) -1/4 -1/2) (fma.f64 (pow.f64 re 4) 1/16 -1/4)))
(pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 1)
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 3)
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(pow.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3) 1/3)
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 2)
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 2))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) 3))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) 3) (pow.f64 (fma.f64 im im 2) 3)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(exp.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 im im 2) (*.f64 1/2 (fma.f64 im im 2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2)))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) -1/4 1/2))

eval82.0ms (1.5%)

Compiler

Compiled 2881 to 2142 computations (25.7% saved)

prune38.0ms (0.7%)

Pruning

16 alts after pruning (5 fresh and 11 done)

PrunedKeptTotal
New1835188
Fresh000
Picked235
Done088
Total18516201
Accuracy
100.0%
Counts
201 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
70.2%
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
7.7%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
3.2%
(-.f64 (cos.f64 re) 2)
77.2%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
13.3%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
12.8%
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
30.4%
(*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))
77.2%
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
52.4%
(*.f64 1/2 (fma.f64 im im 2))
23.3%
(*.f64 1/2 (pow.f64 im 2))
70.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
32.2%
(*.f64 1/2 2)
50.3%
(cos.f64 re)
7.9%
1/4
3.6%
-1
Compiler

Compiled 271 to 194 computations (28.4% saved)

regimes48.0ms (0.9%)

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

6 calls:

11.0ms
im
10.0ms
re
9.0ms
(cos.f64 re)
8.0ms
(*.f64 1/2 (cos.f64 re))
6.0ms
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%1(*.f64 1/2 (cos.f64 re))
100.0%1(cos.f64 re)
100.0%1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 37 to 28 computations (24.3% saved)

regimes205.0ms (3.8%)

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

4 calls:

86.0ms
(cos.f64 re)
73.0ms
(*.f64 1/2 (cos.f64 re))
26.0ms
im
18.0ms
re
Results
AccuracySegmentsBranch
88.9%2re
94.9%3im
92.2%4(*.f64 1/2 (cos.f64 re))
92.2%4(cos.f64 re)
Compiler

Compiled 16 to 12 computations (25% saved)

regimes25.0ms (0.5%)

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

1 calls:

24.0ms
im
Results
AccuracySegmentsBranch
94.8%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes97.0ms (1.8%)

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

3 calls:

61.0ms
re
19.0ms
(cos.f64 re)
16.0ms
im
Results
AccuracySegmentsBranch
82.1%2re
83.6%2(cos.f64 re)
88.2%2im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes64.0ms (1.2%)

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

3 calls:

35.0ms
(cos.f64 re)
20.0ms
im
8.0ms
re
Results
AccuracySegmentsBranch
70.2%1re
70.2%1(cos.f64 re)
73.0%3im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes78.0ms (1.4%)

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

3 calls:

32.0ms
im
25.0ms
(cos.f64 re)
20.0ms
re
Results
AccuracySegmentsBranch
73.0%3im
65.2%3re
66.9%5(cos.f64 re)
Compiler

Compiled 10 to 7 computations (30% saved)

regimes18.0ms (0.3%)

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

1 calls:

17.0ms
im
Results
AccuracySegmentsBranch
72.5%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes11.0ms (0.2%)

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

1 calls:

10.0ms
im
Results
AccuracySegmentsBranch
70.2%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes11.0ms (0.2%)

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

1 calls:

10.0ms
im
Results
AccuracySegmentsBranch
70.2%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes13.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 2)
Outputs
(cos.f64 re)
Calls

3 calls:

5.0ms
re
4.0ms
im
4.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
50.3%1(cos.f64 re)
50.3%1re
50.3%1im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes8.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
Outputs
(*.f64 1/2 2)
Calls

2 calls:

4.0ms
im
3.0ms
re
Results
AccuracySegmentsBranch
32.2%1re
32.2%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes7.0ms (0.1%)

Counts
2 → 1
Calls
Call 1
Inputs
-1
1/4
Outputs
1/4
Calls

2 calls:

4.0ms
im
3.0ms
re
Results
AccuracySegmentsBranch
7.9%1re
7.9%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes6.0ms (0.1%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
-1
Outputs
-1
Calls

2 calls:

3.0ms
re
3.0ms
im
Results
AccuracySegmentsBranch
3.6%1re
3.6%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch40.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
4.815883506757066e+153
2.5762954856333438e+154
26.0ms
3.313121819413872e-6
2654.5552401668147
Results
24.0ms144×256valid
13.0ms96×256infinite
Compiler

Compiled 357 to 284 computations (20.4% saved)

bsearch45.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
4.815883506757066e+153
2.5762954856333438e+154
31.0ms
3.313121819413872e-6
2654.5552401668147
Results
25.0ms144×256valid
13.0ms96×256infinite
Compiler

Compiled 339 to 266 computations (21.5% saved)

bsearch30.0ms (0.6%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
30.0ms
3.313121819413872e-6
2654.5552401668147
Results
28.0ms144×256valid
Compiler

Compiled 207 to 158 computations (23.7% saved)

bsearch41.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
8.785161729834489e+151
2.5333354770204884e+153
19.0ms
6.35330162603583e+42
9.624552631205706e+45
Results
37.0ms240×256infinite
Compiler

Compiled 271 to 230 computations (15.1% saved)

bsearch35.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
10.0ms
2.5333354770204884e+153
4.815883506757066e+153
25.0ms
470089.19928245
29848065.181730546
Results
32.0ms176×256infinite
Compiler

Compiled 199 to 169 computations (15.1% saved)

bsearch15.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
14.0ms
2.503426650570202e+51
2.1537244734683714e+52
Results
13.0ms96×256infinite
Compiler

Compiled 102 to 80 computations (21.6% saved)

bsearch22.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
21.0ms
2.503426650570202e+51
2.1537244734683714e+52
Results
20.0ms96×256infinite
Compiler

Compiled 96 to 80 computations (16.7% saved)

simplify17.0ms (0.3%)

Algorithm
egg-herbie
Rules
26×*-commutative
+-commutative
sub-neg
mul-1-neg
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072611
193611
298611
3104611
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 3458764513820541/144115188075855872) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))))
(if (<=.f64 im 734987459186865/72057594037927936) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))))
(if (<=.f64 im 4150517416584649/576460752303423488) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(if (<=.f64 im 6500000000000000523870889773502260649656320) (cos.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 820000) (cos.f64 re) (if (<=.f64 im 3999999999999999998933612016492614979422156076473746745143360752097478718089695046691679038258268633774677515296114840081570376376516120880532063439028224) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 9200000000000000203478326961110151964209129721954304) (cos.f64 re) (*.f64 1/2 (fma.f64 im im 2)))
(if (<=.f64 im 3799999999999999708394005805591011729793080023318528) (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cos.f64 re)
(*.f64 1/2 2)
1/4
-1
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 3458764513820541/144115188075855872) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))))
(if (<=.f64 im 3458764513820541/144115188075855872) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))))
(if (<=.f64 im 734987459186865/72057594037927936) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 (cos.f64 re) 1/2))))
(if (<=.f64 im 734987459186865/72057594037927936) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))))
(if (<=.f64 im 4150517416584649/576460752303423488) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 4150517416584649/576460752303423488) (fma.f64 (*.f64 1/2 im) im (cos.f64 re)) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(fma.f64 (*.f64 1/2 im) im (cos.f64 re))
(if (<=.f64 im 6500000000000000523870889773502260649656320) (cos.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 6500000000000000523870889773502260649656320) (cos.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) -1) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 820000) (cos.f64 re) (if (<=.f64 im 3999999999999999998933612016492614979422156076473746745143360752097478718089695046691679038258268633774677515296114840081570376376516120880532063439028224) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 9200000000000000203478326961110151964209129721954304) (cos.f64 re) (*.f64 1/2 (fma.f64 im im 2)))
(if (<=.f64 im 3799999999999999708394005805591011729793080023318528) (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(cos.f64 re)
(*.f64 1/2 2)
1
1/4
-1
Compiler

Compiled 201 to 149 computations (25.9% saved)

soundness900.0ms (16.8%)

Rules
1574×prod-diff
1222×fma-def
1222×fma-def
1222×fma-def
1222×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022115
1300115
24890115
01669
120269
2329669
01021402
12561385
27091306
328611266
452311257
558071257
671261257
02195
124591
2302691
01021402
12561385
27091306
328611266
452311257
558071257
671261257
01021402
12561385
27091306
328611266
452311257
558071257
671261257
01021402
12561385
27091306
328611266
452311257
558071257
671261257
01081657
13121494
29361494
344461494
Stop Event
node limit
node limit
node limit
node limit
node limit
node limit
unsound
unsound
Compiler

Compiled 138 to 97 computations (29.7% saved)

end0.0ms (0%)

preprocess126.0ms (2.4%)

Remove

(abs im)

(abs re)

Compiler

Compiled 744 to 508 computations (31.7% saved)

Profiling

Loading profile data...