math.cos on complex, real part

Time bar (total: 5.6s)

analyze0.0ms (0%)

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

Compiled 14 to 11 computations (21.4% saved)

sample1.3s (23.7%)

Results
607.0ms4141×256infinite
713.0ms4113×256valid
1.0ms1024valid
Bogosity

preprocess331.0ms (5.9%)

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-(exp.f64 (neg.f64 im))
00-0-(cos.f64 re)
00-0-re
00-0-(*.f64 1/2 (cos.f64 re))
00-0-im
00-0-1/2
00-0-(neg.f64 im)
00-0-(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
00-0-(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.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)

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

Compiled 26 to 20 computations (23.1% saved)

localize50.0ms (0.9%)

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

rewrite231.0ms (4.1%)

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

simplify69.0ms (1.2%)

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)

eval52.0ms (0.9%)

Compiler

Compiled 841 to 478 computations (43.2% saved)

prune15.0ms (0.3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New56561
Fresh000
Picked011
Done000
Total56662
Accuracy
100.0%
Counts
62 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
7.2%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
10.6%
(+.f64 (cos.f64 re) (cos.f64 re))
75.8%
(*.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)))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
48.9%
(cos.f64 re)
7.2%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
10.6%
(+.f64 (cos.f64 re) (cos.f64 re))
75.8%
(*.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)))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
48.9%
(cos.f64 re)
Compiler

Compiled 186 to 140 computations (24.7% saved)

localize179.0ms (3.2%)

Localize:

Found 3 expressions with local error:

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

Compiled 74 to 30 computations (59.5% saved)

series8.0ms (0.1%)

Counts
3 → 44
Calls

12 calls:

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

rewrite39.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
224×associate-*r*
140×associate-*l*
118×cbrt-prod
117×log1p-expm1-u
117×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02282
126982
2404082
Stop Event
unsound
Counts
3 → 47
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(-.f64 (cos.f64 re) -4)
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(pow.f64 (cos.f64 re) -4)
(pow.f64 (cos.f64 re) 1/3)
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(log.f64 (exp.f64 (cos.f64 re)))
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (cos.f64 re)))
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(-.f64 (cos.f64 re) -4)
(*.f64 (cos.f64 re) (cos.f64 re))
(*.f64 (cos.f64 re) -4)
(*.f64 -4 (cos.f64 re))
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(log.f64 (exp.f64 (cos.f64 re)))
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (cos.f64 re)))
-4
-2
-1
-1/2
0
1/16
1/4
1/2
1
3/2
2
3
4
8

simplify116.0ms (2.1%)

Algorithm
egg-herbie
Rules
1464×associate-+r+
1200×associate-+l+
1166×distribute-lft-out
778×*-commutative
720×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01031913
12421813
26641697
327061697
457581697
575401697
Stop Event
node limit
Counts
91 → 86
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/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)))
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(-.f64 (cos.f64 re) -4)
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(pow.f64 (cos.f64 re) -4)
(pow.f64 (cos.f64 re) 1/3)
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(log.f64 (exp.f64 (cos.f64 re)))
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (cos.f64 re)))
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(-.f64 (cos.f64 re) -4)
(*.f64 (cos.f64 re) (cos.f64 re))
(*.f64 (cos.f64 re) -4)
(*.f64 -4 (cos.f64 re))
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(log.f64 (exp.f64 (cos.f64 re)))
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(log1p.f64 (expm1.f64 (cos.f64 re)))
-4
-2
-1
-1/2
0
1/16
1/4
1/2
1
3/2
2
3
4
8
Outputs
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (fma.f64 im im 2))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 (*.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 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2)) (+.f64 1 (*.f64 1/2 (pow.f64 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 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2)) (fma.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 1 (*.f64 1/2 (pow.f64 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 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2)) (fma.f64 -1/1440 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 6)) (fma.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4)) (+.f64 1 (*.f64 1/2 (pow.f64 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 (fma.f64 im im 2) (+.f64 (fma.f64 -1/4 (pow.f64 re 2) (*.f64 -1/1440 (pow.f64 re 6))) (fma.f64 1/48 (pow.f64 re 4) 1/2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (*.f64 1/2 (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))
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)))
(+.f64 (cos.f64 re) (cos.f64 re))
(*.f64 2 (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) -4)
(+.f64 (cos.f64 re) 4)
(+.f64 4 (cos.f64 re))
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(/.f64 (+.f64 (cos.f64 (*.f64 2 re)) (cos.f64 0)) -4)
(/.f64 (+.f64 (cos.f64 (*.f64 2 re)) 1) -4)
(pow.f64 (cos.f64 re) -4)
(pow.f64 (cos.f64 re) 1/3)
(cbrt.f64 (cos.f64 re))
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(cos.f64 re)
(log.f64 (exp.f64 (cos.f64 re)))
(cos.f64 re)
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(cos.f64 re)
(log1p.f64 (expm1.f64 (cos.f64 re)))
(cos.f64 re)
(+.f64 (cos.f64 re) (cos.f64 re))
(*.f64 2 (cos.f64 re))
(+.f64 -4 (cos.f64 re))
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) -4)
(+.f64 (cos.f64 re) 4)
(+.f64 4 (cos.f64 re))
(*.f64 (cos.f64 re) (cos.f64 re))
(pow.f64 (cos.f64 re) 2)
(*.f64 (cos.f64 re) -4)
(*.f64 -4 (cos.f64 re))
(*.f64 (cos.f64 re) -4)
(/.f64 -4 (cos.f64 re))
(/.f64 (+.f64 (cos.f64 (+.f64 re re)) (cos.f64 (-.f64 re re))) -4)
(/.f64 (+.f64 (cos.f64 (*.f64 2 re)) (cos.f64 0)) -4)
(/.f64 (+.f64 (cos.f64 (*.f64 2 re)) 1) -4)
(sqrt.f64 (cos.f64 re))
(fabs.f64 (cos.f64 re))
(cos.f64 re)
(log.f64 (exp.f64 (cos.f64 re)))
(cos.f64 re)
(log.f64 (+.f64 -4 (expm1.f64 (cos.f64 re))))
(cbrt.f64 (cos.f64 re))
(cos.f64 re)
(expm1.f64 (log.f64 (cos.f64 re)))
(exp.f64 (log.f64 (cos.f64 re)))
(cos.f64 re)
(log1p.f64 (expm1.f64 (cos.f64 re)))
(cos.f64 re)
-4
-2
-1
-1/2
0
1/16
1/4
1/2
1
3/2
2
3
4
8

eval23.0ms (0.4%)

Compiler

Compiled 828 to 629 computations (24% saved)

prune50.0ms (0.9%)

Pruning

20 alts after pruning (16 fresh and 4 done)

PrunedKeptTotal
New701686
Fresh000
Picked235
Done011
Total722092
Accuracy
100.0%
Counts
92 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
7.0%
(-.f64 (cos.f64 re) -4)
3.7%
(+.f64 (cos.f64 re) -4)
10.1%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
53.6%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
30.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
75.8%
(*.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)))
46.0%
(*.f64 1/2 (fma.f64 im im 2))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
7.1%
(*.f64 1/2 8)
27.5%
(*.f64 1/2 2)
8.3%
(*.f64 1/2 3/2)
7.8%
(*.f64 1/2 1)
6.6%
(*.f64 1/2 1/16)
3.9%
(*.f64 1/2 -1/2)
4.1%
(*.f64 1/2 -1)
4.7%
(*.f64 1/2 -2)
3.9%
(*.f64 1/2 -4)
48.9%
(cos.f64 re)
7.2%
1/4
7.0%
(-.f64 (cos.f64 re) -4)
3.7%
(+.f64 (cos.f64 re) -4)
10.1%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
53.6%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
30.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
75.8%
(*.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)))
46.0%
(*.f64 1/2 (fma.f64 im im 2))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
7.1%
(*.f64 1/2 8)
27.5%
(*.f64 1/2 2)
8.3%
(*.f64 1/2 3/2)
7.8%
(*.f64 1/2 1)
6.6%
(*.f64 1/2 1/16)
3.9%
(*.f64 1/2 -1/2)
4.1%
(*.f64 1/2 -1)
4.7%
(*.f64 1/2 -2)
3.9%
(*.f64 1/2 -4)
48.9%
(cos.f64 re)
7.2%
1/4
Compiler

Compiled 474 to 416 computations (12.2% saved)

localize123.0ms (2.2%)

Localize:

Found 3 expressions with local error:

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

Compiled 62 to 48 computations (22.6% saved)

series4.0ms (0.1%)

Counts
3 → 36
Calls

12 calls:

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

rewrite112.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1075×log1p-expm1-u
1075×expm1-log1p-u
802×prod-diff
368×expm1-udef
368×log1p-udef
Iterations

Useful iterations: 1 (0.0ms)

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

simplify76.0ms (1.4%)

Algorithm
egg-herbie
Rules
1080×unswap-sqr
956×times-frac
722×associate-/l*
600×fma-neg
578×cancel-sign-sub-inv
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02263823
15973638
224783443
Stop Event
node limit
Counts
109 → 116
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))))
-3
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))) 3)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))) 3)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(-.f64 (cos.f64 re) 4)
(+.f64 (*.f64 (fma.f64 im im 2) 1/2) (*.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))) (*.f64 (fma.f64 im im 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 (*.f64 (fma.f64 im im 2) 1/2) 1) (*.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 im im 2) 1/2) 3) (pow.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 3)) (+.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) 1/2)) (-.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 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) 1/2)) (*.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 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/8)) (+.f64 1/4 (-.f64 (*.f64 (pow.f64 re 4) 1/16) (*.f64 -1/8 (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 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/8) (fma.f64 im im 2)) (+.f64 1/4 (-.f64 (*.f64 (pow.f64 re 4) 1/16) (*.f64 -1/8 (pow.f64 re 2)))))
(/.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)))))
(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 1/2 (fma.f64 im im 2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2)))) 1)
(pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) 3)
(pow.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/3)
(pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/4))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2)))))
(cbrt.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))) 1))
(log1p.f64 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2))))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 re) -4))) 1)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 4)) (/.f64 16 (+.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (cos.f64 re) -4) 1)
(*.f64 1 (+.f64 (cos.f64 re) -4))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 2) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) -4)) (sqrt.f64 (+.f64 (cos.f64 re) -4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) 4)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4))) (+.f64 (pow.f64 (cos.f64 re) 3) -64)))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) 4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) 4))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16)) (neg.f64 (+.f64 (cos.f64 re) 4)))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 -4 (cos.f64 re)))
(pow.f64 (+.f64 (cos.f64 re) -4) 1)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 3)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -4)) 2)
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 2))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) -4)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 re) -4))))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 3))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) -4)))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) -4)))
(exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -4)) 1))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -4)))
(fma.f64 1 (cos.f64 re) -4)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) -4)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) -4)
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 (*.f64 (pow.f64 re 2) -1/2) 1)
(+.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))
(+.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 (fma.f64 im im 2) -1/4) (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 (fma.f64 im im 2) -1/4) (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))
-3
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
(fma.f64 -1/2 (pow.f64 re 2) -3)
(fma.f64 (pow.f64 re 2) -1/2 -3)
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))) 3)
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 1/24 (pow.f64 re 4))) -3)
(fma.f64 (pow.f64 re 2) -1/2 (fma.f64 1/24 (pow.f64 re 4) -3))
(-.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))) 3)
(+.f64 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4)))) -3)
(+.f64 (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))) (fma.f64 (pow.f64 re 2) -1/2 -3))
(+.f64 (fma.f64 (pow.f64 re 2) -1/2 -3) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6))))
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) -4)
(+.f64 (*.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))
(+.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (fma.f64 im im 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 (*.f64 (fma.f64 im im 2) 1/2) 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 (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 (*.f64 (fma.f64 im im 2) 1/2) 3) (pow.f64 (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2))) 3)) (+.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) 1/2)) (-.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 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))))
(/.f64 (+.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) 1/8) (pow.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) 3)) (+.f64 (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) 1/4) (*.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) -1/4) (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))))
(/.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (fma.f64 -1/64 (pow.f64 re 6) 1/8)) (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (*.f64 (fma.f64 im im 2) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (fma.f64 im im 2))))))
(/.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (fma.f64 -1/64 (pow.f64 re 6) 1/8)) (*.f64 (fma.f64 im im 2) (-.f64 (*.f64 (fma.f64 im im 2) (+.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (*.f64 -1/8 (*.f64 (pow.f64 re 2) (fma.f64 im im 2))))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) 1/2)) (*.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 (*.f64 (fma.f64 im im 2) 1/2) (*.f64 (fma.f64 im im 2) (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2)) (*.f64 (fma.f64 im im 2) (-.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))) (*.f64 (fma.f64 im im 2) (-.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16))) (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 2) 1/4 1/2)))
(/.f64 (fma.f64 im im 2) (/.f64 1 (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/8)) (+.f64 1/4 (-.f64 (*.f64 (pow.f64 re 4) 1/16) (*.f64 -1/8 (pow.f64 re 2)))))
(/.f64 (fma.f64 im im 2) (/.f64 (-.f64 (+.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (pow.f64 re 2) -1/8)) (+.f64 (*.f64 -1/64 (pow.f64 (pow.f64 re 2) 3)) 1/8)))
(*.f64 (/.f64 (fma.f64 -1/64 (pow.f64 re 6) 1/8) (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8)))) (fma.f64 im im 2))
(/.f64 (fma.f64 im im 2) (/.f64 (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8))) (fma.f64 -1/64 (pow.f64 re 6) 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 (+.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/8) (fma.f64 im im 2)) (+.f64 1/4 (-.f64 (*.f64 (pow.f64 re 4) 1/16) (*.f64 -1/8 (pow.f64 re 2)))))
(/.f64 (fma.f64 im im 2) (/.f64 (-.f64 (+.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (*.f64 (pow.f64 re 2) -1/8)) (+.f64 (*.f64 -1/64 (pow.f64 (pow.f64 re 2) 3)) 1/8)))
(*.f64 (/.f64 (fma.f64 -1/64 (pow.f64 re 6) 1/8) (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8)))) (fma.f64 im im 2))
(/.f64 (fma.f64 im im 2) (/.f64 (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8))) (fma.f64 -1/64 (pow.f64 re 6) 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))
(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 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))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2)))) 1)
(*.f64 -1/4 (pow.f64 re 2))
(pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 1)
(*.f64 -1/4 (pow.f64 re 2))
(pow.f64 (cbrt.f64 (*.f64 -1/4 (pow.f64 re 2))) 3)
(*.f64 -1/4 (pow.f64 re 2))
(pow.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3) 1/3)
(*.f64 -1/4 (pow.f64 re 2))
(pow.f64 (*.f64 re (sqrt.f64 -1/4)) 2)
(*.f64 -1/4 (pow.f64 re 2))
(sqrt.f64 (*.f64 (pow.f64 re 4) 1/16))
(log.f64 (pow.f64 (exp.f64 (pow.f64 re 2)) -1/4))
(*.f64 -1/4 (pow.f64 re 2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 -1/4 (pow.f64 re 2))
(cbrt.f64 (pow.f64 (*.f64 -1/4 (pow.f64 re 2)) 3))
(*.f64 -1/4 (pow.f64 re 2))
(expm1.f64 (log1p.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 -1/4 (pow.f64 re 2))
(exp.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 -1/4 (pow.f64 re 2))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/4 (pow.f64 re 2))) 1))
(*.f64 -1/4 (pow.f64 re 2))
(log1p.f64 (expm1.f64 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 -1/4 (pow.f64 re 2))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (cos.f64 re) -4))) 1)
(+.f64 (cos.f64 re) -4)
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 (cos.f64 re) 4)) (/.f64 16 (+.f64 (cos.f64 re) 4)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(*.f64 (+.f64 (cos.f64 re) -4) 1)
(+.f64 (cos.f64 re) -4)
(*.f64 1 (+.f64 (cos.f64 re) -4))
(+.f64 (cos.f64 re) -4)
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 2))
(+.f64 (cos.f64 re) -4)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 2) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) -4)) (sqrt.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) 4)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4))) (+.f64 (pow.f64 (cos.f64 re) 3) -64)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)))))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) 4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (-.f64 (pow.f64 (cos.f64 re) 2) (*.f64 (cos.f64 re) -4))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) 4))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) -4)))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (-.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) -64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16)) (neg.f64 (+.f64 (cos.f64 re) 4)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 -4 (cos.f64 re)))
(-.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 16 (+.f64 4 (cos.f64 re))))
(+.f64 (/.f64 (pow.f64 (cos.f64 re) 2) (+.f64 4 (cos.f64 re))) (/.f64 -16 (+.f64 4 (cos.f64 re))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 4 (cos.f64 re)))
(pow.f64 (+.f64 (cos.f64 re) -4) 1)
(+.f64 (cos.f64 re) -4)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) -4)) 3)
(+.f64 (cos.f64 re) -4)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 3) 1/3)
(+.f64 (cos.f64 re) -4)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) -4)) 2)
(+.f64 (cos.f64 re) -4)
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 2))
(+.f64 (cos.f64 re) -4)
(log.f64 (exp.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (cos.f64 re) -4))))
(+.f64 (cos.f64 re) -4)
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) -4) 3))
(+.f64 (cos.f64 re) -4)
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(exp.f64 (log.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(exp.f64 (*.f64 (log.f64 (+.f64 (cos.f64 re) -4)) 1))
(+.f64 (cos.f64 re) -4)
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) -4)))
(+.f64 (cos.f64 re) -4)
(fma.f64 1 (cos.f64 re) -4)
(+.f64 (cos.f64 re) -4)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) -4)
(+.f64 (cos.f64 re) -4)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) -4)
(+.f64 (cos.f64 re) -4)

eval43.0ms (0.8%)

Compiler

Compiled 1795 to 1351 computations (24.7% saved)

prune39.0ms (0.7%)

Pruning

21 alts after pruning (14 fresh and 7 done)

PrunedKeptTotal
New1133116
Fresh01111
Picked235
Done044
Total11521136
Accuracy
100.0%
Counts
136 → 21
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.8%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
7.0%
(-.f64 (cos.f64 re) -4)
3.7%
(+.f64 (cos.f64 re) -4)
10.1%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
15.2%
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
30.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
75.8%
(*.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)))
46.0%
(*.f64 1/2 (fma.f64 im im 2))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
7.1%
(*.f64 1/2 8)
27.5%
(*.f64 1/2 2)
8.3%
(*.f64 1/2 3/2)
7.8%
(*.f64 1/2 1)
6.6%
(*.f64 1/2 1/16)
3.9%
(*.f64 1/2 -1/2)
4.1%
(*.f64 1/2 -1)
4.7%
(*.f64 1/2 -2)
48.9%
(cos.f64 re)
7.2%
1/4
3.8%
-3
9.8%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
7.0%
(-.f64 (cos.f64 re) -4)
3.7%
(+.f64 (cos.f64 re) -4)
10.1%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
15.2%
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
30.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
75.8%
(*.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)))
46.0%
(*.f64 1/2 (fma.f64 im im 2))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
7.1%
(*.f64 1/2 8)
27.5%
(*.f64 1/2 2)
8.3%
(*.f64 1/2 3/2)
7.8%
(*.f64 1/2 1)
6.6%
(*.f64 1/2 1/16)
3.9%
(*.f64 1/2 -1/2)
4.1%
(*.f64 1/2 -1)
4.7%
(*.f64 1/2 -2)
48.9%
(cos.f64 re)
7.2%
1/4
3.8%
-3
Compiler

Compiled 456 to 396 computations (13.2% saved)

localize168.0ms (3%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
99.9%
(-.f64 (cos.f64 re) -4)
Compiler

Compiled 39 to 30 computations (23.1% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
re
@0
(-.f64 (cos.f64 re) -4)
0.0ms
re
@inf
(-.f64 (cos.f64 re) -4)
0.0ms
re
@-inf
(-.f64 (cos.f64 re) -4)

rewrite122.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
424×unpow-prod-down
369×log1p-expm1-u
369×expm1-log1p-u
343×add-exp-log
335×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
18114
297014
Stop Event
node limit
Counts
1 → 57
Calls
Call 1
Inputs
(-.f64 (cos.f64 re) -4)
Outputs
(+.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) (log.f64 (exp.f64 4)))
(+.f64 4 (cos.f64 re))
(+.f64 0 (+.f64 (cos.f64 re) 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(*.f64 (+.f64 (cos.f64 re) 4) 1)
(*.f64 (+.f64 (cos.f64 re) 4) (log.f64 (E.f64)))
(*.f64 1 (+.f64 (cos.f64 re) 4))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) 4))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)) (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 5)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16)) (neg.f64 (+.f64 (cos.f64 re) -4)))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 3) 64))) (cbrt.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -16))) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(pow.f64 (+.f64 (cos.f64 re) 4) 1)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 3)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) 2)
(pow.f64 (E.f64) (log.f64 (+.f64 (cos.f64 re) 4)))
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)) -1)
(pow.f64 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4)))) (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) 4)))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) 4)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) 4))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) 2))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) 4)))
(fma.f64 (cos.f64 re) 1 4)
(fma.f64 1 (cos.f64 re) 4)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) 4)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) 4)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) 4)

simplify94.0ms (1.7%)

Algorithm
egg-herbie
Rules
1576×div-sub
918×fma-neg
686×fma-def
560×distribute-lft-in
532×distribute-rgt-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01702074
13711947
29751905
338091901
461891873
Stop Event
node limit
Counts
69 → 89
Calls
Call 1
Inputs
5
(+.f64 5 (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 5 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 5 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 (cos.f64 re) 4)
(+.f64 (cos.f64 re) (log.f64 (exp.f64 4)))
(+.f64 4 (cos.f64 re))
(+.f64 0 (+.f64 (cos.f64 re) 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(*.f64 (+.f64 (cos.f64 re) 4) 1)
(*.f64 (+.f64 (cos.f64 re) 4) (log.f64 (E.f64)))
(*.f64 1 (+.f64 (cos.f64 re) 4))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) 4))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)) (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 5)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) 4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16)) (neg.f64 (+.f64 (cos.f64 re) -4)))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 3) 64))) (cbrt.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -16))) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(pow.f64 (+.f64 (cos.f64 re) 4) 1)
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 3)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) 2)
(pow.f64 (E.f64) (log.f64 (+.f64 (cos.f64 re) 4)))
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)) -1)
(pow.f64 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4)))) (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) 4)))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) 4)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) 4))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) 2))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) 4)))
(fma.f64 (cos.f64 re) 1 4)
(fma.f64 1 (cos.f64 re) 4)
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) 4)
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) 4)
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) 4)
Outputs
5
(+.f64 5 (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 -1/2 (pow.f64 re 2) 5)
(+.f64 5 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 5 (fma.f64 -1/2 (pow.f64 re 2) (*.f64 1/24 (pow.f64 re 4))))
(fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) 5))
(+.f64 5 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 5 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 5 (fma.f64 -1/2 (pow.f64 re 2) (fma.f64 1/24 (pow.f64 re 4) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 (cos.f64 re) 4)
(+.f64 4 (cos.f64 re))
(+.f64 (cos.f64 re) (log.f64 (exp.f64 4)))
(+.f64 4 (cos.f64 re))
(+.f64 4 (cos.f64 re))
(+.f64 0 (+.f64 (cos.f64 re) 4))
(+.f64 4 (cos.f64 re))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (+.f64 4 (cos.f64 re)))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 4 (cos.f64 re))))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (+.f64 4 (cos.f64 re))))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (+.f64 4 (cos.f64 re))))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))))
(+.f64 4 (cos.f64 re))
(*.f64 (+.f64 (cos.f64 re) 4) 1)
(+.f64 4 (cos.f64 re))
(*.f64 (+.f64 (cos.f64 re) 4) (log.f64 (E.f64)))
(+.f64 4 (cos.f64 re))
(*.f64 1 (+.f64 (cos.f64 re) 4))
(+.f64 4 (cos.f64 re))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2))
(+.f64 4 (cos.f64 re))
(*.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)))
(+.f64 4 (cos.f64 re))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 2) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(*.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) (sqrt.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (/.f64 1 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 4 (cos.f64 re)))
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)))
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 4 (cos.f64 re)))) (sqrt.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/2)))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/4) (sqrt.f64 (sqrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/4) (pow.f64 (+.f64 4 (cos.f64 re)) 1/4))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 1/4) (pow.f64 (+.f64 4 (cos.f64 re)) 3/4))
(*.f64 (pow.f64 1 1/3) (+.f64 (cos.f64 re) 4))
(+.f64 4 (cos.f64 re))
(*.f64 (pow.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 4 (cos.f64 re)) (cbrt.f64 (+.f64 4 (cos.f64 re)))) 2)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 4) 2)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 8)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2) 1/3) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 5/2)) (sqrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 re) 4) (cbrt.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 4 (cos.f64 re)) (cbrt.f64 (+.f64 4 (cos.f64 re)))) 2)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 4) 2)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 8)) (cbrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 5/2)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 5/2)) (sqrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 4)) (cbrt.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(*.f64 (sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3/2)) (sqrt.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (sqrt.f64 (+.f64 4 (cos.f64 re)))) (sqrt.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/2)))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/4) (sqrt.f64 (sqrt.f64 (+.f64 4 (cos.f64 re)))))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 3/4) (pow.f64 (+.f64 4 (cos.f64 re)) 1/4))
(*.f64 (pow.f64 (+.f64 4 (cos.f64 re)) 1/4) (pow.f64 (+.f64 4 (cos.f64 re)) 3/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 5)) (sqrt.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))) (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 5)))
(*.f64 (sqrt.f64 (cbrt.f64 (+.f64 4 (cos.f64 re)))) (pow.f64 (cbrt.f64 (+.f64 4 (cos.f64 re))) 5/2))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)))
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(/.f64 1 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 4 (cos.f64 re)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (-.f64 16 (*.f64 (cos.f64 re) 4))))
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 4 (cos.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64)) (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(/.f64 (neg.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16)) (neg.f64 (+.f64 (cos.f64 re) -4)))
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 4 (cos.f64 re)))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 3) 64))) (cbrt.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (cbrt.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (pow.f64 (+.f64 4 (cos.f64 re)) 2))) (cbrt.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16))))
(/.f64 (cbrt.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (pow.f64 (+.f64 4 (cos.f64 re)) 2))) (cbrt.f64 (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4)))))
(/.f64 (cbrt.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (pow.f64 (+.f64 4 (cos.f64 re)) 2))) (cbrt.f64 (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16)))
(/.f64 (cbrt.f64 (*.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) (+.f64 (pow.f64 (cos.f64 re) 2) -16))) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(/.f64 (cbrt.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (pow.f64 (+.f64 4 (cos.f64 re)) 2))) (cbrt.f64 (+.f64 (cos.f64 re) -4)))
(pow.f64 (+.f64 (cos.f64 re) 4) 1)
(+.f64 4 (cos.f64 re))
(pow.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4)) 3)
(+.f64 4 (cos.f64 re))
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2) 1/2)
(+.f64 4 (cos.f64 re))
(pow.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3) 1/3)
(+.f64 4 (cos.f64 re))
(pow.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4)) 2)
(+.f64 4 (cos.f64 re))
(pow.f64 (E.f64) (log.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(pow.f64 (/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)) (+.f64 (pow.f64 (cos.f64 re) 3) 64)) -1)
(/.f64 (*.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) 1) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 (pow.f64 (cos.f64 re) 2) (fma.f64 (cos.f64 re) -4 16)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (+.f64 16 (*.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4))))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 3) 64) (fma.f64 (cos.f64 re) (+.f64 (cos.f64 re) -4) 16))
(pow.f64 (/.f64 (+.f64 (cos.f64 re) -4) (+.f64 (pow.f64 (cos.f64 re) 2) -16)) -1)
(*.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (/.f64 1 (+.f64 (cos.f64 re) -4)))
(/.f64 (+.f64 (pow.f64 (cos.f64 re) 2) -16) (+.f64 (cos.f64 re) -4))
(/.f64 (-.f64 16 (pow.f64 (cos.f64 re) 2)) (-.f64 4 (cos.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))) 2)) (cbrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (+.f64 4 (cos.f64 re)))) 2)) (cbrt.f64 (log.f64 (+.f64 4 (cos.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4)))) (sqrt.f64 (log.f64 (+.f64 (cos.f64 re) 4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (+.f64 4 (cos.f64 re))))) (sqrt.f64 (log.f64 (+.f64 4 (cos.f64 re)))))
(sqrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 2))
(+.f64 4 (cos.f64 re))
(log.f64 (exp.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(cbrt.f64 (pow.f64 (+.f64 (cos.f64 re) 4) 3))
(+.f64 4 (cos.f64 re))
(expm1.f64 (log1p.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(exp.f64 (log.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (cos.f64 re) 4))) 3))
(+.f64 4 (cos.f64 re))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (cos.f64 re) 4))) 1/3))
(+.f64 4 (cos.f64 re))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (cos.f64 re) 4))) 2))
(+.f64 4 (cos.f64 re))
(log1p.f64 (expm1.f64 (+.f64 (cos.f64 re) 4)))
(+.f64 4 (cos.f64 re))
(fma.f64 (cos.f64 re) 1 4)
(+.f64 4 (cos.f64 re))
(fma.f64 1 (cos.f64 re) 4)
(+.f64 4 (cos.f64 re))
(fma.f64 (cbrt.f64 (cos.f64 re)) (pow.f64 (cbrt.f64 (cos.f64 re)) 2) 4)
(+.f64 4 (cos.f64 re))
(fma.f64 (pow.f64 (cbrt.f64 (cos.f64 re)) 2) (cbrt.f64 (cos.f64 re)) 4)
(+.f64 4 (cos.f64 re))
(fma.f64 (sqrt.f64 (cos.f64 re)) (sqrt.f64 (cos.f64 re)) 4)
(+.f64 4 (cos.f64 re))

eval43.0ms (0.8%)

Compiler

Compiled 1128 to 797 computations (29.3% saved)

prune62.0ms (1.1%)

Pruning

20 alts after pruning (9 fresh and 11 done)

PrunedKeptTotal
New88189
Fresh189
Picked145
Done077
Total9020110
Accuracy
100.0%
Counts
110 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
9.8%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
3.7%
(+.f64 (cos.f64 re) -4)
10.1%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
15.2%
(*.f64 (pow.f64 re 2) (*.f64 -1/4 (fma.f64 im im 2)))
30.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
75.8%
(*.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)))
46.0%
(*.f64 1/2 (fma.f64 im im 2))
63.4%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
27.5%
(*.f64 1/2 2)
8.3%
(*.f64 1/2 3/2)
7.8%
(*.f64 1/2 1)
6.6%
(*.f64 1/2 1/16)
3.9%
(*.f64 1/2 -1/2)
4.1%
(*.f64 1/2 -1)
4.7%
(*.f64 1/2 -2)
48.9%
(cos.f64 re)
7.0%
5
7.2%
1/4
3.8%
-3
Compiler

Compiled 267 to 211 computations (21% saved)

regimes77.0ms (1.4%)

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

6 calls:

17.0ms
im
16.0ms
re
13.0ms
(cos.f64 re)
12.0ms
(*.f64 1/2 (cos.f64 re))
7.0ms
(+.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 168 to 122 computations (27.4% saved)

regimes230.0ms (4.1%)

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

4 calls:

98.0ms
(*.f64 1/2 (cos.f64 re))
52.0ms
(cos.f64 re)
50.0ms
im
24.0ms
re
Results
AccuracySegmentsBranch
87.7%2re
93.0%3im
89.5%4(*.f64 1/2 (cos.f64 re))
89.5%4(cos.f64 re)
Compiler

Compiled 136 to 102 computations (25% saved)

regimes37.0ms (0.7%)

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

32.0ms
im
Results
AccuracySegmentsBranch
92.7%3im
Compiler

Compiled 92 to 71 computations (22.8% saved)

regimes148.0ms (2.6%)

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

46.0ms
(cos.f64 re)
30.0ms
re
21.0ms
im
Results
AccuracySegmentsBranch
82.4%6(cos.f64 re)
75.6%2re
84.4%2im
Compiler

Compiled 91 to 71 computations (22% saved)

regimes140.0ms (2.5%)

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

3 calls:

77.0ms
re
29.0ms
(cos.f64 re)
29.0ms
im
Results
AccuracySegmentsBranch
63.2%2re
65.5%4(cos.f64 re)
71.3%3im
Compiler

Compiled 83 to 65 computations (21.7% saved)

regimes52.0ms (0.9%)

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

1 calls:

48.0ms
im
Results
AccuracySegmentsBranch
68.7%3im
Compiler

Compiled 58 to 49 computations (15.5% saved)

regimes20.0ms (0.4%)

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

1 calls:

17.0ms
im
Results
AccuracySegmentsBranch
67.0%2im
Compiler

Compiled 51 to 43 computations (15.7% saved)

regimes30.0ms (0.5%)

Counts
15 → 1
Calls
Call 1
Inputs
-3
1/4
5
(*.f64 1/2 -4)
(*.f64 1/2 -2)
(*.f64 1/2 -1)
(*.f64 1/2 -1/2)
(*.f64 1/2 1/16)
(*.f64 1/2 1)
(*.f64 1/2 3/2)
(*.f64 1/2 2)
(*.f64 1/2 8)
(cos.f64 re)
(+.f64 (cos.f64 re) -4)
(-.f64 (cos.f64 re) -4)
Outputs
(cos.f64 re)
Calls

3 calls:

10.0ms
re
10.0ms
im
7.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
48.9%1(cos.f64 re)
48.9%1re
48.9%1im
Compiler

Compiled 52 to 44 computations (15.4% saved)

regimes25.0ms (0.4%)

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

2 calls:

14.0ms
re
8.0ms
im
Results
AccuracySegmentsBranch
27.5%1im
29.3%2re
Compiler

Compiled 38 to 36 computations (5.3% saved)

regimes30.0ms (0.5%)

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

2 calls:

18.0ms
re
10.0ms
im
Results
AccuracySegmentsBranch
8.3%1im
10.1%2re
Compiler

Compiled 32 to 30 computations (6.3% saved)

regimes20.0ms (0.4%)

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

2 calls:

12.0ms
re
6.0ms
im
Results
AccuracySegmentsBranch
7.8%1im
9.7%2re
Compiler

Compiled 29 to 27 computations (6.9% saved)

regimes18.0ms (0.3%)

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

2 calls:

11.0ms
re
6.0ms
im
Results
AccuracySegmentsBranch
7.2%1im
9.3%2re
Compiler

Compiled 26 to 24 computations (7.7% saved)

regimes9.0ms (0.2%)

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

2 calls:

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

Compiled 14 to 12 computations (14.3% saved)

regimes7.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

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

Compiled 9 to 7 computations (22.2% saved)

bsearch124.0ms (2.2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
104.0ms
2.3632882721582777e+141
9.691264010652304e+148
20.0ms
39352701.8417993
1661387973.726049
Results
120.0ms256×256infinite
Compiler

Compiled 377 to 302 computations (19.9% saved)

bsearch42.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
23.0ms
2.3632882721582777e+141
9.691264010652304e+148
19.0ms
39352701.8417993
1661387973.726049
Results
38.0ms256×256infinite
Compiler

Compiled 328 to 267 computations (18.6% saved)

bsearch20.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
39352701.8417993
1661387973.726049
Results
18.0ms112×256infinite
Compiler

Compiled 130 to 105 computations (19.2% saved)

bsearch44.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
8.211266125777132e+156
1.582955053850175e+158
25.0ms
0.41820590819822484
39352701.8417993
Results
24.0ms160×256infinite
16.0ms96×256valid
Compiler

Compiled 286 to 243 computations (15% saved)

bsearch40.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
20.0ms
6.7587198030887134e+134
9.479821836525973e+138
20.0ms
4.2834318590753315e+33
2.40071610674173e+36
Results
37.0ms256×256infinite
Compiler

Compiled 290 to 246 computations (15.2% saved)

bsearch20.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
4.2834318590753315e+33
2.40071610674173e+36
Results
19.0ms128×256infinite
Compiler

Compiled 130 to 102 computations (21.5% saved)

bsearch26.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
26.0ms
6.417012317282724e+27
7.229200823384937e+33
Results
12.0ms76×256infinite
12.0ms68×256valid
Compiler

Compiled 126 to 122 computations (3.2% saved)

bsearch25.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
25.0ms
6.417012317282724e+27
7.229200823384937e+33
Results
12.0ms73×256infinite
11.0ms71×256valid
Compiler

Compiled 126 to 122 computations (3.2% saved)

bsearch26.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
26.0ms
6.417012317282724e+27
7.229200823384937e+33
Results
12.0ms73×256valid
12.0ms71×256infinite
Compiler

Compiled 126 to 122 computations (3.2% saved)

bsearch25.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
25.0ms
6.417012317282724e+27
7.229200823384937e+33
Results
12.0ms79×256infinite
11.0ms65×256valid
Compiler

Compiled 108 to 104 computations (3.7% saved)

simplify16.0ms (0.3%)

Algorithm
egg-herbie
Rules
20×*-commutative
10×+-commutative
sub-neg
neg-mul-1
neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075562
194562
299562
3102562
4103562
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 40000000) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (cos.f64 re) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 620) (cos.f64 re) (if (<=.f64 im 8399999999999999250500600141218229710588918166168958413959789222215756804829411781233996428110412750963108307504374465413592377074851385093927537249745895424) (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 114999999999999990858847801992806400) (cos.f64 re) (if (<=.f64 im 8000000000000000262732499913639408631896100530876893564098507410069976055190303964352010525021819301471596038274579484629187925073691934720) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 1100000000000000002390515334516834304) (cos.f64 re) (*.f64 1/2 (fma.f64 im im 2)))
(cos.f64 re)
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 2) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 3/2) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 1) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) 1/4 (*.f64 1/2 -2))
1/4
-3
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 40000000) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (cos.f64 re) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (cos.f64 re) (if (<=.f64 im 95000000000000001813575257859585038851065440772902957111867460401229812066800461285944776085530626067411949294104548320666476102795688042755178627072) (*.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 40000000) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 40000000) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 620) (cos.f64 re) (if (<=.f64 im 8399999999999999250500600141218229710588918166168958413959789222215756804829411781233996428110412750963108307504374465413592377074851385093927537249745895424) (-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 114999999999999990858847801992806400) (cos.f64 re) (if (<=.f64 im 8000000000000000262732499913639408631896100530876893564098507410069976055190303964352010525021819301471596038274579484629187925073691934720) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 1100000000000000002390515334516834304) (cos.f64 re) (*.f64 1/2 (fma.f64 im im 2)))
(cos.f64 re)
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 2) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) 1 -1)
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 3/2) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) 3/4 -1)
(if (<=.f64 re 135000000000000006343599050457088) (*.f64 1/2 1) (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) 1/2 -1)
(if (<=.f64 re 135000000000000006343599050457088) 1/4 (*.f64 1/2 -2))
(if (<=.f64 re 135000000000000006343599050457088) 1/4 -1)
1/4
-3
Compiler

Compiled 198 to 152 computations (23.2% saved)

soundness838.0ms (14.9%)

Rules
1464×associate-+r+
1464×associate-+r+
1464×associate-+r+
1464×associate-+r+
1200×associate-+l+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01081657
13121494
29361494
344461494
02282
126982
2404082
01031913
12421813
26641697
327061697
457581697
575401697
01669
120269
2329669
02282
126982
2404082
02282
126982
2404082
02282
126982
2404082
01031913
12421813
26641697
327061697
457581697
575401697
01031913
12421813
26641697
327061697
457581697
575401697
01031913
12421813
26641697
327061697
457581697
575401697
Stop Event
node limit
node limit
node limit
unsound
unsound
unsound
unsound
node limit
unsound
node limit
Compiler

Compiled 89 to 67 computations (24.7% saved)

end0.0ms (0%)

preprocess141.0ms (2.5%)

Remove

(abs im)

(abs re)

Compiler

Compiled 630 to 434 computations (31.1% saved)

Profiling

Loading profile data...