math.cos on complex, real part

Time bar (total: 7.1s)

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)

sample3.5s (48.9%)

Results
2.2s4170×256valid
1.3s4085×256infinite
1.0ms1024valid
Bogosity

preprocess365.0ms (5.1%)

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)
01(4.5696883237610173e+151 410.8945281840767)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)

prune3.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)

localize49.0ms (0.7%)

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
@-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
im
@-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)))

rewrite270.0ms (3.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%)

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)

eval125.0ms (1.8%)

Compiler

Compiled 841 to 478 computations (43.2% saved)

prune14.0ms (0.2%)

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
8.4%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
81.7%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
11.7%
(+.f64 (cos.f64 re) (cos.f64 re))
81.7%
(*.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)))
64.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
55.6%
(cos.f64 re)
Compiler

Compiled 119 to 88 computations (26.1% saved)

localize171.0ms (2.4%)

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 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
100.0%
(+.f64 (cos.f64 re) (*.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.1%)

Counts
5 → 35
Calls

24 calls:

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

rewrite39.0ms (0.6%)

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 (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)))
(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

simplify131.0ms (1.8%)

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
328541266
452331257
558091257
671291257
Stop Event
node limit
Counts
105 → 86
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 (*.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)))
(*.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)))))
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/24 (pow.f64 re 4)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 -1/2 (pow.f64 re 2))))))
(*.f64 (pow.f64 im 2) (+.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 (pow.f64 im 2) 1/2))
(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 im 2) 1/2 1) (fma.f64 (pow.f64 re 4) (fma.f64 (pow.f64 im 2) 1/48 1/24) (*.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/4 -1/2))))
(+.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 (+.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 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))))))
(+.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)))))
(cos.f64 re)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.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 (pow.f64 re 4) 1/48))))
(fma.f64 (pow.f64 im 2) 1/2 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 2) -1/4) (*.f64 (pow.f64 re 4) 1/48))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (+.f64 (*.f64 (pow.f64 re 2) -1/4) (*.f64 (pow.f64 re 4) 1/48))))
(+.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 (pow.f64 re 4) 1/48)))))
(+.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 2) -1/4)) (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 6) -1/1440))))
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

eval37.0ms (0.5%)

Compiler

Compiled 1484 to 1146 computations (22.8% saved)

prune19.0ms (0.3%)

Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New80686
Fresh011
Picked235
Done011
Total821193
Accuracy
100.0%
Counts
93 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
81.7%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
3.5%
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
11.9%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
29.6%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
81.7%
(*.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)))
50.2%
(*.f64 1/2 (fma.f64 im im 2))
64.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
30.1%
(*.f64 1/2 2)
55.6%
(cos.f64 re)
8.6%
1/4
Compiler

Compiled 148 to 120 computations (18.9% saved)

localize87.0ms (1.2%)

Localize:

Found 2 expressions with local error:

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

Compiled 59 to 38 computations (35.6% saved)

series8.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
4.0ms
re
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
1.0ms
re
@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
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))

rewrite95.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1084×unpow-prod-down
794×log-prod
756×log1p-expm1-u
756×expm1-log1p-u
566×pow-prod-down
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01948
116648
2199548
Stop Event
node limit
Counts
2 → 81
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 -4))
Outputs
(+.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.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 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4) 1/2)
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8) 1/3)
(pow.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 2)
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 2))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 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))))
(-.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 (+.f64 (cos.f64 re) -2) (log.f64 (exp.f64 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 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 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) 3) -8) (pow.f64 (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))) 1))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 (cos.f64 re) 2)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (pow.f64 (/.f64 1 (+.f64 (cos.f64 re) 2)) 1))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) -2) (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2) 1/3) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 5/2) 1/3) (pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2) (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 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) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 2)
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)) -1)
(pow.f64 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)) -1)
(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))
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) -2))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(fma.f64 (cos.f64 re) 1 -2)
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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)

simplify191.0ms (2.7%)

Algorithm
egg-herbie
Rules
1038×log-prod
964×fma-def
634×exp-prod
608×*-commutative
586×distribute-rgt-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02573932
16433730
219413326
365933284
Stop Event
node limit
Counts
117 → 130
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))))
-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 0 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (cos.f64 re)) 2))
(+.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 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4) 1/2)
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8) 1/3)
(pow.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 2)
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4))
(log.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (*.f64 1/2 (cos.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 2))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 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))))
(-.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 (+.f64 (cos.f64 re) -2) (log.f64 (exp.f64 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 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 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) 3) -8) (pow.f64 (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))) 1))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 (cos.f64 re) 2)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (pow.f64 (/.f64 1 (+.f64 (cos.f64 re) 2)) 1))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) -2) (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2) 1/3) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 5/2) 1/3) (pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2) (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 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) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 2)
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)) -1)
(pow.f64 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)) -1)
(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))
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) -2))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(fma.f64 (cos.f64 re) 1 -2)
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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)
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 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 (*.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 1/2 (fma.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 (fma.f64 1/48 (pow.f64 re 4) 1/2) (fma.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))
-1
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
(fma.f64 -1/2 (pow.f64 re 2) -1)
(fma.f64 (pow.f64 re 2) -1/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 (pow.f64 re 4) 1/24)) -1)
(fma.f64 (pow.f64 re 2) -1/2 (fma.f64 (pow.f64 re 4) 1/24 -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 (pow.f64 re 4) 1/24))) -1)
(fma.f64 (pow.f64 re 2) -1/2 (+.f64 (fma.f64 (pow.f64 re 4) 1/24 (*.f64 (pow.f64 re 6) -1/720)) -1))
(fma.f64 (pow.f64 re 2) -1/2 (fma.f64 (pow.f64 re 4) 1/24 (fma.f64 (pow.f64 re 6) -1/720 -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 (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 0 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im 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 (*.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 (*.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 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 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 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))) 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 1/2 (*.f64 (cos.f64 re) (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))
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4) 1/2)
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 2) 1/4))
(pow.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8) 1/3)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3) 1/8))
(cbrt.f64 (*.f64 1/8 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3)))
(pow.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 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 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 2) 1/4))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 2) 1/4))
(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 1/2 (*.f64 (cos.f64 re) (fma.f64 im 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))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3) 1/8))
(cbrt.f64 (*.f64 1/8 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im 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))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im 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))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 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))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2)))) 1) 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))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (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))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 re) (fma.f64 im im 2)) 3) 1/8)) 1/3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3) 1/8))
(cbrt.f64 (*.f64 1/8 (pow.f64 (*.f64 (fma.f64 im im 2) (cos.f64 re)) 3)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im im 2))))) 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))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (fma.f64 im 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))
(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))
(-.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 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(*.f64 (+.f64 (cos.f64 re) -2) 1)
(+.f64 (cos.f64 re) -2)
(*.f64 (+.f64 (cos.f64 re) -2) (log.f64 (exp.f64 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 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (pow.f64 (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2)))) 1))
(*.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(*.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 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (pow.f64 (/.f64 1 (+.f64 (cos.f64 re) 2)) 1))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) -2))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3) (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/3))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2)) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2)))
(pow.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/6) 4)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3)) 1/3))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2)) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2)))
(pow.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 3/2) 1/6) 4)
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) -2) (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2) 1/3) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) -2) (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 4) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 8)))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 5/2) 1/3) (pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2)) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -2) 5/2)))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2)) 2)) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(+.f64 (cos.f64 re) -2)
(*.f64 (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2) (pow.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(+.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(/.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 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(/.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 (cos.f64 re) 2))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(/.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 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(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) 2) 1/2)
(+.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)
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 4 (*.f64 (cos.f64 re) -2))) (+.f64 (pow.f64 (cos.f64 re) 3) -8)) -1)
(*.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) (fma.f64 (cos.f64 re) (+.f64 2 (cos.f64 re)) 4))
(pow.f64 (/.f64 (+.f64 (cos.f64 re) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -4)) -1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 2 (cos.f64 re))) (/.f64 4 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(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)
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -2)) 1) 1))
(+.f64 (cos.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) -2))) 3))
(+.f64 (cos.f64 re) -2)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) -2))) 1/3))
(+.f64 (cos.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) -2))) 2))
(+.f64 (cos.f64 re) -2)
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -2)))
(+.f64 (cos.f64 re) -2)
(fma.f64 (cos.f64 re) 1 -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 1 (cos.f64 re) -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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)

eval56.0ms (0.8%)

Compiler

Compiled 1755 to 1254 computations (28.5% saved)

prune102.0ms (1.4%)

Pruning

14 alts after pruning (6 fresh and 8 done)

PrunedKeptTotal
New1264130
Fresh022
Picked145
Done044
Total12714141
Accuracy
100.0%
Counts
141 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
6.6%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
3.5%
(-.f64 (cos.f64 re) 2)
81.7%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
11.9%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
48.7%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
29.6%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
81.7%
(*.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)))
50.2%
(*.f64 1/2 (fma.f64 im im 2))
64.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
30.1%
(*.f64 1/2 2)
55.6%
(cos.f64 re)
8.6%
1/4
4.1%
-1
Compiler

Compiled 169 to 138 computations (18.3% saved)

localize219.0ms (3.1%)

Localize:

Found 3 expressions with local error:

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

Compiled 85 to 63 computations (25.9% saved)

series6.0ms (0.1%)

Counts
3 → 28
Calls

12 calls:

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

rewrite122.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1160×log-prod
710×log1p-expm1-u
710×expm1-log1p-u
706×prod-diff
592×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02172
124668
2316268
Stop Event
node limit
Counts
3 → 114
Calls
Call 1
Inputs
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(-.f64 (cos.f64 re) 2)
(*.f64 -1/2 (pow.f64 re 2))
Outputs
(+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 0 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 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 (*.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 (fma.f64 1/2 (pow.f64 im 2) 1) 1) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 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 (+.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))))
(/.f64 (-.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (-.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8) (fma.f64 im im 2)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (*.f64 (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (fma.f64 im im 2)) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 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)))))
(log.f64 (*.f64 (exp.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1))))
(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 (fma.f64 im im 2) 1/2 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1/2 (fma.f64 im im 2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 im im 2) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.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))
(fma.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)))
(fma.f64 1 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 1 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 re (sqrt.f64 -1/4)) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 1 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(fma.f64 (*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) -1/4 (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16))) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (*.f64 re (sqrt.f64 -1/4))) (*.f64 re (sqrt.f64 -1/4)) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (cos.f64 re) -2)
(+.f64 (cos.f64 re) (log.f64 (exp.f64 -2)))
(+.f64 -2 (cos.f64 re))
(+.f64 0 (+.f64 (cos.f64 re) -2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (exp.f64 (+.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) (fma.f64 2 (cos.f64 re) 4))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)) (+.f64 (pow.f64 (cos.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 2 (cos.f64 re)) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 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) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.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 (cos.f64 re) 1 -2)
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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 0 (*.f64 (pow.f64 re 2) -1/2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
(pow.f64 (*.f64 (pow.f64 re 2) -1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) -1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3) 1/3)
(pow.f64 (*.f64 re (sqrt.f64 -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/4))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2)))
(exp.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)) 1))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2)))

simplify128.0ms (1.8%)

Algorithm
egg-herbie
Rules
1520×fma-neg
966×unswap-sqr
760×log-prod
602×exp-prod
402×associate-+r+
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03185306
17605109
225294819
364904815
Stop Event
node limit
Counts
142 → 163
Calls
Call 1
Inputs
(*.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))))
-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 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 0 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 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 (*.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 (fma.f64 1/2 (pow.f64 im 2) 1) 1) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 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 (+.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))))
(/.f64 (-.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (-.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8) (fma.f64 im im 2)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (*.f64 (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (fma.f64 im im 2)) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 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)))))
(log.f64 (*.f64 (exp.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1))))
(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 (fma.f64 im im 2) 1/2 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1/2 (fma.f64 im im 2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 im im 2) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.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))
(fma.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)))
(fma.f64 1 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 1 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 re (sqrt.f64 -1/4)) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 1 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(fma.f64 (*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) -1/4 (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16))) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (fma.f64 im im 2) (*.f64 re (sqrt.f64 -1/4))) (*.f64 re (sqrt.f64 -1/4)) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (cos.f64 re) -2)
(+.f64 (cos.f64 re) (log.f64 (exp.f64 -2)))
(+.f64 -2 (cos.f64 re))
(+.f64 0 (+.f64 (cos.f64 re) -2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (exp.f64 (+.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) (fma.f64 2 (cos.f64 re) 4))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)) (+.f64 (pow.f64 (cos.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 2 (cos.f64 re)) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 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) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.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 (cos.f64 re) 1 -2)
(fma.f64 1 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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 0 (*.f64 (pow.f64 re 2) -1/2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
(pow.f64 (*.f64 (pow.f64 re 2) -1/2) 1)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) -1/2)) 3)
(pow.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3) 1/3)
(pow.f64 (*.f64 re (sqrt.f64 -1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/4))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2)))
(exp.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)) 1))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2)))
Outputs
(*.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 (pow.f64 re 2) -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 (*.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 (*.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 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 im 2) (fma.f64 -1/4 (pow.f64 re 2) 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 (*.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 (*.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 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (pow.f64 im 2) (fma.f64 -1/4 (pow.f64 re 2) 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 (*.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 (*.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 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 (*.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 (*.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 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 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 (*.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 (*.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 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 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 (*.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 (*.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))
-1
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
(fma.f64 -1/2 (pow.f64 re 2) -1)
(fma.f64 (pow.f64 re 2) -1/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 (pow.f64 re 2) -1/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/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))) (fma.f64 (pow.f64 re 2) -1/2 -1))
(+.f64 (fma.f64 (pow.f64 re 2) -1/2 -1) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))))
(+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 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 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 0 (*.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 (*.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 (*.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 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 1) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 im im 2)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) (log.f64 (sqrt.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 (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 (+.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))))
(/.f64 (+.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 2)) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 2)) (-.f64 (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 2)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(/.f64 (fma.f64 (pow.f64 (fma.f64 im im 2) 3) (*.f64 (pow.f64 re 6) -1/64) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 -1/4 (*.f64 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (-.f64 (*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2))) (fma.f64 1/2 (pow.f64 im 2) 1))))))
(/.f64 (fma.f64 (pow.f64 (fma.f64 im im 2) 3) (*.f64 (pow.f64 re 6) -1/64) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 -1/4 (*.f64 (*.f64 (pow.f64 re 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 (pow.f64 (fma.f64 im im 2) 3) (*.f64 (pow.f64 re 6) -1/64) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)) (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 -1/4 (*.f64 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) -1/2))))))
(/.f64 (-.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (-.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (fma.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1)) (-.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 2)))) (-.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (*.f64 -1/4 (fma.f64 im im 2)) (pow.f64 re 2))))
(/.f64 (fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (*.f64 (pow.f64 re 4) -1/16))) (+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)))))
(/.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (/.f64 1 (fma.f64 im im 2)))
(/.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8) (/.f64 (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4) (fma.f64 im im 2)))
(*.f64 (/.f64 (fma.f64 (pow.f64 re 6) -1/64 1/8) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4)) (fma.f64 im im 2))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4)) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) 1/4 1/2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16)))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8) (fma.f64 im im 2)) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4))
(/.f64 (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 1/8) (/.f64 (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4) (fma.f64 im im 2)))
(*.f64 (/.f64 (fma.f64 (pow.f64 re 6) -1/64 1/8) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4)) (fma.f64 im im 2))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 -1/4 (pow.f64 re 2) -1/2) 1/4)) (fma.f64 (pow.f64 re 6) -1/64 1/8))
(/.f64 (*.f64 (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (fma.f64 im im 2)) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 (pow.f64 re 2) 1/4)))
(*.f64 (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) 1/4 1/2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16)))
(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))
(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))
(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))
(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))
(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))
(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))
(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))
(log.f64 (*.f64 (exp.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.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))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 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))
(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))
(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))
(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))
(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))
(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))
(fma.f64 (fma.f64 im im 2) 1/2 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 1/2 (fma.f64 im im 2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.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) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.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))
(fma.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))
(fma.f64 1 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 1 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2) (*.f64 (cbrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (fma.f64 im im 2) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))))))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 re (sqrt.f64 -1/4)) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 1 (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))) (cbrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sqrt.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (sqrt.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (*.f64 (*.f64 re (sqrt.f64 -1/4)) (sqrt.f64 (fma.f64 im im 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (*.f64 (sqrt.f64 (fma.f64 im im 2)) (*.f64 re (sqrt.f64 -1/4))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 1/2 (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (pow.f64 (cbrt.f64 (fma.f64 im im 2)) 2)) (cbrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (*.f64 -1/4 (pow.f64 re 2)) (sqrt.f64 (fma.f64 im im 2))) (sqrt.f64 (fma.f64 im im 2)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (fma.f64 im im 2) (pow.f64 re 2)) -1/4 (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(fma.f64 (*.f64 (fma.f64 im im 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16))) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (fma.f64 im im 2) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2)))) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))))))
(fma.f64 (*.f64 (fma.f64 im im 2) (*.f64 re (sqrt.f64 -1/4))) (*.f64 re (sqrt.f64 -1/4)) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 (cos.f64 re) -2)
(+.f64 (cos.f64 re) (log.f64 (exp.f64 -2)))
(+.f64 (cos.f64 re) -2)
(+.f64 -2 (cos.f64 re))
(+.f64 (cos.f64 re) -2)
(+.f64 0 (+.f64 (cos.f64 re) -2))
(+.f64 (cos.f64 re) -2)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))) (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) -2)))))
(+.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) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)))
(/.f64 (-.f64 8 (pow.f64 (cos.f64 re) 3)) (+.f64 -4 (*.f64 (cos.f64 re) (-.f64 -2 (cos.f64 re)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)) (+.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) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)))
(/.f64 (-.f64 8 (pow.f64 (cos.f64 re) 3)) (+.f64 -4 (*.f64 (cos.f64 re) (-.f64 -2 (cos.f64 re)))))
(/.f64 1 (/.f64 (+.f64 2 (cos.f64 re)) (+.f64 (pow.f64 (cos.f64 re) 2) -4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (-.f64 8 (pow.f64 (cos.f64 re) 3)) (+.f64 -4 (*.f64 (cos.f64 re) (-.f64 -2 (cos.f64 re)))))
(/.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) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)))
(/.f64 (-.f64 8 (pow.f64 (cos.f64 re) 3)) (+.f64 -4 (*.f64 (cos.f64 re) (-.f64 -2 (cos.f64 re)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -8) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 2 (cos.f64 re) 4)))
(/.f64 (-.f64 8 (pow.f64 (cos.f64 re) 3)) (+.f64 -4 (*.f64 (cos.f64 re) (-.f64 -2 (cos.f64 re)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4)) (neg.f64 (+.f64 2 (cos.f64 re))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (/.f64 1 (+.f64 2 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -4) (+.f64 2 (cos.f64 re)))
(/.f64 (-.f64 4 (pow.f64 (cos.f64 re) 2)) (-.f64 -2 (cos.f64 re)))
(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 (cos.f64 re) 1 -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 1 (cos.f64 re) -2)
(+.f64 (cos.f64 re) -2)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) -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 0 (*.f64 (pow.f64 re 2) -1/2))
(*.f64 (pow.f64 re 2) -1/2)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -1/2) (pow.f64 re 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))))
(*.f64 (pow.f64 re 2) -1/2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
(*.f64 (pow.f64 re 2) -1/2)
(pow.f64 (*.f64 (pow.f64 re 2) -1/2) 1)
(*.f64 (pow.f64 re 2) -1/2)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) -1/2)) 3)
(*.f64 (pow.f64 re 2) -1/2)
(pow.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3) 1/3)
(*.f64 (pow.f64 re 2) -1/2)
(pow.f64 (*.f64 re (sqrt.f64 -1/2)) 2)
(*.f64 (pow.f64 re 2) -1/2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/4))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/2))
(*.f64 (pow.f64 re 2) -1/2)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))))
(*.f64 (pow.f64 re 2) -1/2)
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 re 2) -1/2) 3))
(*.f64 (pow.f64 re 2) -1/2)
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 re 2) -1/2)))
(*.f64 (pow.f64 re 2) -1/2)
(exp.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)))
(*.f64 (pow.f64 re 2) -1/2)
(exp.f64 (*.f64 (fma.f64 2 (log.f64 re) (log.f64 -1/2)) 1))
(*.f64 (pow.f64 re 2) -1/2)
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2)))
(*.f64 (pow.f64 re 2) -1/2)

eval66.0ms (0.9%)

Compiler

Compiled 2797 to 2170 computations (22.4% saved)

prune31.0ms (0.4%)

Pruning

15 alts after pruning (3 fresh and 12 done)

PrunedKeptTotal
New1612163
Fresh011
Picked145
Done088
Total16215177
Accuracy
100.0%
Counts
177 → 15
Alt Table
Click to see full alt table
StatusAccuracyProgram
6.6%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 1)
10.5%
(-.f64 (log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
3.5%
(-.f64 (cos.f64 re) 2)
81.7%
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
11.9%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
10.5%
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
29.6%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
81.7%
(*.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)))
50.2%
(*.f64 1/2 (fma.f64 im im 2))
64.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
30.1%
(*.f64 1/2 2)
55.6%
(cos.f64 re)
8.6%
1/4
4.1%
-1
Compiler

Compiled 255 to 188 computations (26.3% saved)

regimes55.0ms (0.8%)

Counts
19 → 1
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.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 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(-.f64 (log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
(*.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:

13.0ms
(*.f64 1/2 (cos.f64 re))
11.0ms
im
10.0ms
re
9.0ms
(cos.f64 re)
7.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)

regimes78.0ms (1.1%)

Counts
17 → 3
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(*.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 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(-.f64 (log1p.f64 (expm1.f64 (*.f64 (pow.f64 re 2) -1/2))) 1)
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 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
Calls

4 calls:

27.0ms
im
19.0ms
re
15.0ms
(*.f64 1/2 (cos.f64 re))
15.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
92.3%2re
96.2%3im
92.3%2(*.f64 1/2 (cos.f64 re))
92.3%2(cos.f64 re)
Compiler

Compiled 16 to 12 computations (25% saved)

regimes25.0ms (0.3%)

Counts
13 → 3
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
Outputs
(cos.f64 re)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
Calls

1 calls:

24.0ms
im
Results
AccuracySegmentsBranch
96.0%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes67.0ms (0.9%)

Counts
12 → 2
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
Outputs
(cos.f64 re)
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
Calls

3 calls:

29.0ms
re
23.0ms
(cos.f64 re)
15.0ms
im
Results
AccuracySegmentsBranch
82.4%4(cos.f64 re)
80.6%4re
90.1%2im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes47.0ms (0.7%)

Counts
11 → 3
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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 1/4 (*.f64 (pow.f64 re 2) 1/4))
(*.f64 1/2 (fma.f64 im im 2))
Calls

3 calls:

21.0ms
im
14.0ms
re
11.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
68.0%2re
69.1%2(cos.f64 re)
77.0%3im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes10.0ms (0.1%)

Counts
7 → 2
Calls
Call 1
Inputs
-1
1/4
(*.f64 1/2 2)
(cos.f64 re)
(-.f64 (cos.f64 re) 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
75.3%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes15.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
5.0ms
im
4.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
55.6%1re
55.6%1(cos.f64 re)
55.6%1im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes8.0ms (0.1%)

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

2 calls:

4.0ms
re
4.0ms
im
Results
AccuracySegmentsBranch
30.1%1im
30.1%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes8.0ms (0.1%)

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

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

regimes5.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
im
3.0ms
re
Results
AccuracySegmentsBranch
4.1%1re
4.1%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch43.0ms (0.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
3.7028436859829085e+149
9.273443227484005e+152
22.0ms
1.3400532493686234e-5
0.1683328924087353
Results
19.0ms128×256infinite
20.0ms128×256valid
Compiler

Compiled 386 to 302 computations (21.8% saved)

bsearch53.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
28.0ms
3.7028436859829085e+149
9.273443227484005e+152
25.0ms
1.3400532493686234e-5
0.1683328924087353
Results
26.0ms128×256infinite
24.0ms128×256valid
Compiler

Compiled 322 to 262 computations (18.6% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
22.0ms
1.3400532493686234e-5
0.1683328924087353
Results
19.0ms128×256valid
Compiler

Compiled 146 to 118 computations (19.2% saved)

bsearch36.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
1.8706278802854523e+133
4.02012120978853e+134
14.0ms
5097904368.541256
30501511765.052235
Results
33.0ms208×256infinite
Compiler

Compiled 241 to 204 computations (15.4% saved)

bsearch24.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
24.0ms
1.3400532493686234e-5
0.1683328924087353
Results
22.0ms128×256valid
Compiler

Compiled 130 to 102 computations (21.5% saved)

simplify11.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
057410
178410
280410
381410
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 3170534137668829/144115188075855872) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))))
(if (<=.f64 im 3246626956972881/73786976294838206464) (cos.f64 re) (if (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 1936908127739503/4611686018427387904) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 8200000000) (cos.f64 re) (if (<=.f64 im 58000000000000002305059355477356543977914200509324318860818576611536970888881904005352457719018575103264101035912065136126604112560128) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 5072854620270127/9223372036854775808) (cos.f64 re) (*.f64 1/2 (fma.f64 im 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 3170534137668829/144115188075855872) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))))
(if (or (<=.f64 im 3170534137668829/144115188075855872) (not (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544))) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 3246626956972881/73786976294838206464) (cos.f64 re) (if (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 3246626956972881/73786976294838206464) (cos.f64 re) (if (<=.f64 im 900000000000000018367134045678374768432674599139509097110475002817275054776330484529993559311097279749793339213973117373873887805130282296605515966316544) (*.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 1936908127739503/4611686018427387904) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 1936908127739503/4611686018427387904) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 8200000000) (cos.f64 re) (if (<=.f64 im 58000000000000002305059355477356543977914200509324318860818576611536970888881904005352457719018575103264101035912065136126604112560128) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 8200000000) (cos.f64 re) (if (<=.f64 im 58000000000000002305059355477356543977914200509324318860818576611536970888881904005352457719018575103264101035912065136126604112560128) (+.f64 1/4 (*.f64 1/4 (pow.f64 re 2))) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 5072854620270127/9223372036854775808) (cos.f64 re) (*.f64 1/2 (fma.f64 im im 2)))
(cos.f64 re)
(*.f64 1/2 2)
1
1/4
-1
Compiler

Compiled 137 to 104 computations (24.1% saved)

soundness610.0ms (8.6%)

Rules
1222×fma-def
1222×fma-def
1222×fma-def
1092×fma-neg
956×*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022115
1300115
24890115
01669
120269
2329669
01021402
12561385
27091306
328541266
452331257
558091257
671291257
01021402
12561385
27091306
328541266
452331257
558091257
671291257
01021402
12561385
27091306
328541266
452331257
558091257
671291257
01081657
13121494
29361494
344461494
Stop Event
node limit
node limit
node limit
node limit
unsound
unsound
Compiler

Compiled 79 to 60 computations (24.1% saved)

end0.0ms (0%)

preprocess101.0ms (1.4%)

Remove

(abs im)

(abs re)

Compiler

Compiled 576 to 396 computations (31.3% saved)

Profiling

Loading profile data...