math.cos on complex, real part

Time bar (total: 4.5s)

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.6s (35%)

Results
894.0ms4204×body256valid
679.0ms4050×body256infinite
1.0msbody1024valid
0.0msbody512valid
Bogosity

preprocess156.0ms (3.5%)

Algorithm
egg-herbie
Rules
1664×fma-def
892×associate-/r/
792×sqr-pow
752×associate-/l/
674×fabs-mul
Problems
255×No Errors
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030220
184220
2185220
3346210
4676210
51904210
63504210
73909210
85001210
95865210
107301210
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))))
(*.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))))
(*.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 49 to 24 computations (51% 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)

localize48.0ms (1.1%)

Localize:

Found 2 expressions with local error:

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

Compiled 36 to 14 computations (61.1% saved)

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

rewrite64.0ms (1.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01669
120269
2326069
Stop Event
unsound
Counts
2 → 28
Calls
Call 1
Inputs
(+.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)))
Outputs
-2
0
1/4
1/2
3/2
2
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -2 (cos.f64 re)))) 1)
(/.f64 (*.f64 -2 (cos.f64 re)) -2)
(/.f64 (*.f64 -2 (cos.f64 re)) 1)
(/.f64 (*.f64 -2 (cos.f64 re)) (+.f64 (*.f64 -2 (cos.f64 re)) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))))
(/.f64 (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))))
(pow.f64 (*.f64 -2 (cos.f64 re)) -2)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1/3)
(sqrt.f64 (*.f64 -2 (cos.f64 re)))
(fabs.f64 (*.f64 -2 (cos.f64 re)))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -2 (cos.f64 re)))))
(cbrt.f64 (*.f64 -2 (cos.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -2 (cos.f64 re))))
(exp.f64 (log.f64 (*.f64 -2 (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2 (cos.f64 re))) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 -2 (cos.f64 re))) -2))
(log1p.f64 (expm1.f64 (*.f64 -2 (cos.f64 re))))
(fma.f64 (*.f64 -2 (cos.f64 re)) 1 (*.f64 -2 (cos.f64 re)))
(fma.f64 1 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))

simplify56.0ms (1.2%)

Algorithm
egg-herbie
Rules
866×fma-def
862×fma-neg
762×distribute-lft-out
688×div-sub
646×distribute-lft-in
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01081999
13071820
29351667
340671658
Stop Event
node limit
Counts
64 → 82
Calls
Call 1
Inputs
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 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
0
1/4
1/2
3/2
2
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -2 (cos.f64 re)))) 1)
(/.f64 (*.f64 -2 (cos.f64 re)) -2)
(/.f64 (*.f64 -2 (cos.f64 re)) 1)
(/.f64 (*.f64 -2 (cos.f64 re)) (+.f64 (*.f64 -2 (cos.f64 re)) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))))
(/.f64 (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))))
(pow.f64 (*.f64 -2 (cos.f64 re)) -2)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1/3)
(sqrt.f64 (*.f64 -2 (cos.f64 re)))
(fabs.f64 (*.f64 -2 (cos.f64 re)))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -2 (cos.f64 re)))))
(cbrt.f64 (*.f64 -2 (cos.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -2 (cos.f64 re))))
(exp.f64 (log.f64 (*.f64 -2 (cos.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -2 (cos.f64 re))) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 -2 (cos.f64 re))) -2))
(log1p.f64 (expm1.f64 (*.f64 -2 (cos.f64 re))))
(fma.f64 (*.f64 -2 (cos.f64 re)) 1 (*.f64 -2 (cos.f64 re)))
(fma.f64 1 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))
Outputs
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 (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 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
(fma.f64 (exp.f64 im) 1/2 (/.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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 -1/4 (pow.f64 re 2) 1/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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)))
(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 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 -1/4 (pow.f64 re 2) 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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/4 (pow.f64 re 2)) (*.f64 -1/1440 (pow.f64 re 6)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 1/48 (pow.f64 re 4) 1/2) (fma.f64 -1/4 (pow.f64 re 2) (*.f64 -1/1440 (pow.f64 re 6)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(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/2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) 1) (cos.f64 re))
(*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 2) 1/2 1))
(+.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 (pow.f64 im 4) (cos.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 4) 1/24) (*.f64 (pow.f64 im 2) 1/2))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 2) 1/2) (fma.f64 (pow.f64 im 4) 1/24 1)))
(+.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 (pow.f64 im 6) (cos.f64 re)) (fma.f64 1/24 (*.f64 (pow.f64 im 4) (cos.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re)))))
(+.f64 (*.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 4) 1/24) (*.f64 (pow.f64 im 2) 1/2))) (*.f64 (+.f64 (*.f64 (pow.f64 im 6) 1/720) 1) (cos.f64 re)))
(fma.f64 (cos.f64 re) (fma.f64 (pow.f64 im 4) 1/24 (*.f64 (pow.f64 im 2) 1/2)) (*.f64 (cos.f64 re) (fma.f64 (pow.f64 im 6) 1/720 1)))
(*.f64 (cos.f64 re) (+.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 im 6) 1/720 (*.f64 (pow.f64 im 4) 1/24))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 (exp.f64 im) 1/2 (/.f64 1/2 (exp.f64 im))) (cos.f64 re))
-2
0
1/4
1/2
3/2
2
(+.f64 (cos.f64 re) (cos.f64 re))
(*.f64 2 (cos.f64 re))
(+.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))
(*.f64 (cos.f64 re) -4)
(-.f64 (exp.f64 (log1p.f64 (*.f64 -2 (cos.f64 re)))) 1)
(*.f64 (cos.f64 re) -2)
(/.f64 (*.f64 -2 (cos.f64 re)) -2)
(cos.f64 re)
(/.f64 (*.f64 -2 (cos.f64 re)) 1)
(*.f64 (cos.f64 re) -2)
(/.f64 (*.f64 -2 (cos.f64 re)) (+.f64 (*.f64 -2 (cos.f64 re)) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))))
(/.f64 (*.f64 (cos.f64 re) -2) (fma.f64 -2 (cos.f64 re) 0))
(/.f64 (cos.f64 re) (*.f64 1 (cos.f64 re)))
1
(/.f64 (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))) (-.f64 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re))))
(/.f64 (*.f64 (cos.f64 re) -2) (fma.f64 -2 (cos.f64 re) 0))
(/.f64 (cos.f64 re) (*.f64 1 (cos.f64 re)))
1
(pow.f64 (*.f64 -2 (cos.f64 re)) -2)
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1)
(*.f64 (cos.f64 re) -2)
(pow.f64 (*.f64 -2 (cos.f64 re)) 1/3)
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(sqrt.f64 (*.f64 -2 (cos.f64 re)))
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(fabs.f64 (*.f64 -2 (cos.f64 re)))
(*.f64 (cos.f64 re) -2)
(log.f64 (pow.f64 1 (cos.f64 re)))
0
(log.f64 (+.f64 1 (expm1.f64 (*.f64 -2 (cos.f64 re)))))
(*.f64 (cos.f64 re) -2)
(cbrt.f64 (*.f64 -2 (cos.f64 re)))
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 -2 (cos.f64 re))))
(*.f64 (cos.f64 re) -2)
(exp.f64 (log.f64 (*.f64 -2 (cos.f64 re))))
(*.f64 (cos.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (*.f64 -2 (cos.f64 re))) 1))
(*.f64 (cos.f64 re) -2)
(exp.f64 (+.f64 (log.f64 (*.f64 -2 (cos.f64 re))) -2))
(*.f64 (*.f64 (cos.f64 re) -2) (exp.f64 -2))
(*.f64 (cos.f64 re) (*.f64 -2 (exp.f64 -2)))
(log1p.f64 (expm1.f64 (*.f64 -2 (cos.f64 re))))
(*.f64 (cos.f64 re) -2)
(fma.f64 (*.f64 -2 (cos.f64 re)) 1 (*.f64 -2 (cos.f64 re)))
(*.f64 (cos.f64 re) -4)
(fma.f64 1 (*.f64 -2 (cos.f64 re)) (*.f64 -2 (cos.f64 re)))
(*.f64 (cos.f64 re) -4)

eval19.0ms (0.4%)

Compiler

Compiled 1051 to 599 computations (43% saved)

prune21.0ms (0.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New76682
Fresh000
Picked011
Done000
Total76783
Accuracy
100.0%
Counts
83 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.7%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
11.3%
(*.f64 2 (cos.f64 re))
52.5%
(cos.f64 re)
34.8%
1
8.7%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
11.3%
(*.f64 2 (cos.f64 re))
52.5%
(cos.f64 re)
34.8%
1
Compiler

Compiled 188 to 150 computations (20.2% saved)

localize118.0ms (2.6%)

Localize:

Found 3 expressions with local error:

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

Compiled 74 to 32 computations (56.8% saved)

series9.0ms (0.2%)

Counts
3 → 44
Calls

12 calls:

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

rewrite28.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
224×associate-*r*
140×associate-*l*
119×log1p-expm1-u
119×expm1-log1p-u
118×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02282
126982
2402182
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

simplify96.0ms (2.1%)

Algorithm
egg-herbie
Rules
1478×associate-+r+
1196×associate-+l+
1148×distribute-lft-out
780×*-commutative
720×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01031913
12391813
26651697
327111697
457731697
575451697
Stop Event
node limit
Counts
91 → 89
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 (fma.f64 -1/4 (pow.f64 re 2) (*.f64 1/48 (pow.f64 re 4))) 1/2))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (fma.f64 -1/4 (pow.f64 re 2) 1/2)))
(*.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) 1/2) (fma.f64 -1/1440 (pow.f64 re 6) (*.f64 1/48 (pow.f64 re 4)))))
(*.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

eval24.0ms (0.5%)

Compiler

Compiled 884 to 672 computations (24% saved)

prune40.0ms (0.9%)

Pruning

19 alts after pruning (15 fresh and 4 done)

PrunedKeptTotal
New751489
Fresh011
Picked235
Done011
Total771996
Accuracy
100.0%
Counts
96 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.5%
(-.f64 (cos.f64 re) -4)
2.9%
(+.f64 (cos.f64 re) -4)
14.2%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
53.5%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
55.1%
(*.f64 (fma.f64 im im 2) 1/2)
28.8%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
8.6%
(*.f64 8 1/2)
9.9%
(*.f64 3/2 1/2)
9.4%
(*.f64 1 1/2)
3.1%
(*.f64 -1/2 1/2)
3.3%
(*.f64 -1 1/2)
3.4%
(*.f64 -2 1/2)
3.0%
(*.f64 -4 1/2)
52.5%
(cos.f64 re)
34.8%
1
8.8%
1/4
8.5%
(-.f64 (cos.f64 re) -4)
2.9%
(+.f64 (cos.f64 re) -4)
14.2%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
53.5%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
55.1%
(*.f64 (fma.f64 im im 2) 1/2)
28.8%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
8.6%
(*.f64 8 1/2)
9.9%
(*.f64 3/2 1/2)
9.4%
(*.f64 1 1/2)
3.1%
(*.f64 -1/2 1/2)
3.3%
(*.f64 -1 1/2)
3.4%
(*.f64 -2 1/2)
3.0%
(*.f64 -4 1/2)
52.5%
(cos.f64 re)
34.8%
1
8.8%
1/4
Compiler

Compiled 440 to 382 computations (13.2% saved)

localize64.0ms (1.4%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
Compiler

Compiled 49 to 40 computations (18.4% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite56.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
698×unpow-prod-down
464×cbrt-prod
462×log-prod
454×log1p-expm1-u
454×expm1-log1p-u
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01022
110518
2128118
Stop Event
node limit
Counts
1 → 62
Calls
Call 1
Inputs
(+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4))
Outputs
(-.f64 (+.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 1)
(-.f64 (/.f64 1/16 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))) (/.f64 (*.f64 (pow.f64 re 4) 1/16) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 1/4 (fma.f64 re re 1))
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (log.f64 (E.f64)))
(*.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4))
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(*.f64 (*.f64 (hypot.f64 1 re) 1/2) (*.f64 (hypot.f64 1 re) 1/2))
(*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (/.f64 1 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(*.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (/.f64 1 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 re re 1) 1/4)
(*.f64 (fma.f64 re re 1) (pow.f64 (cbrt.f64 1/4) 3))
(*.f64 (fma.f64 re re 1) (exp.f64 (log.f64 1/4)))
(*.f64 (pow.f64 1 1/3) (fma.f64 1/4 (pow.f64 re 2) 1/4))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (pow.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2) 1/3) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1)) 1/3) (cbrt.f64 1/4))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2)) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1))) (cbrt.f64 1/4))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)))
(/.f64 1 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 4) 1/16 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 2)))))
(/.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64)) (neg.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(/.f64 (neg.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) (neg.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (fma.f64 (pow.f64 re 4) 1/16 -1/16) (fma.f64 1/4 (pow.f64 re 2) -1/4))
(pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 3)
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6) 1/3)
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(pow.f64 (E.f64) (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(pow.f64 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)) -1)
(pow.f64 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))) (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4))
(log.f64 (exp.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))
(expm1.f64 (log1p.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(exp.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 1 re) 1/2)) 2))
(log1p.f64 (expm1.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 re (*.f64 re 1/4) 1/4)
(fma.f64 (pow.f64 re 2) 1/4 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 re 2)) 1 1/4)
(fma.f64 1 (*.f64 1/4 (pow.f64 re 2)) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) 1/4)
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (*.f64 (cbrt.f64 (pow.f64 re 2)) 1/4) 1/4)
(fma.f64 (*.f64 re 1/2) (*.f64 re 1/2) 1/4)
(fma.f64 (*.f64 1/4 re) re 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 (cbrt.f64 re) 4)) (cbrt.f64 (pow.f64 re 2)) 1/4)

simplify61.0ms (1.4%)

Algorithm
egg-herbie
Rules
1278×times-frac
834×associate-*r*
738×associate-*l*
574×fma-neg
492×cancel-sign-sub-inv
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01672428
13632330
28952254
338722254
Stop Event
node limit
Counts
74 → 80
Calls
Call 1
Inputs
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(*.f64 1/4 (pow.f64 re 2))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(*.f64 1/4 (pow.f64 re 2))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(-.f64 (+.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 1)
(-.f64 (/.f64 1/16 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))) (/.f64 (*.f64 (pow.f64 re 4) 1/16) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 1/4 (fma.f64 re re 1))
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (log.f64 (E.f64)))
(*.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4))
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(*.f64 (*.f64 (hypot.f64 1 re) 1/2) (*.f64 (hypot.f64 1 re) 1/2))
(*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (/.f64 1 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(*.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (/.f64 1 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (fma.f64 re re 1) 1/4)
(*.f64 (fma.f64 re re 1) (pow.f64 (cbrt.f64 1/4) 3))
(*.f64 (fma.f64 re re 1) (exp.f64 (log.f64 1/4)))
(*.f64 (pow.f64 1 1/3) (fma.f64 1/4 (pow.f64 re 2) 1/4))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (pow.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2) 1/3) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1)) 1/3) (cbrt.f64 1/4))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2)) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1))) (cbrt.f64 1/4))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)))
(/.f64 1 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 4) 1/16 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 2)))))
(/.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64)) (neg.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(/.f64 (neg.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) (neg.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (fma.f64 (pow.f64 re 4) 1/16 -1/16) (fma.f64 1/4 (pow.f64 re 2) -1/4))
(pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 3)
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6) 1/3)
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(pow.f64 (E.f64) (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(pow.f64 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)) -1)
(pow.f64 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) -1)
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))) (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4))
(log.f64 (exp.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))
(expm1.f64 (log1p.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(exp.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 1 re) 1/2)) 2))
(log1p.f64 (expm1.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 re (*.f64 re 1/4) 1/4)
(fma.f64 (pow.f64 re 2) 1/4 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 re 2)) 1 1/4)
(fma.f64 1 (*.f64 1/4 (pow.f64 re 2)) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) 1/4)
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (*.f64 (cbrt.f64 (pow.f64 re 2)) 1/4) 1/4)
(fma.f64 (*.f64 re 1/2) (*.f64 re 1/2) 1/4)
(fma.f64 (*.f64 1/4 re) re 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 (cbrt.f64 re) 4)) (cbrt.f64 (pow.f64 re 2)) 1/4)
Outputs
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 1/4 (pow.f64 re 2))
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(-.f64 (+.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 1)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(-.f64 (/.f64 1/16 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))) (/.f64 (*.f64 (pow.f64 re 4) 1/16) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(*.f64 1/4 (fma.f64 re re 1))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (log.f64 (E.f64)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 1 (fma.f64 1/4 (pow.f64 re 2) 1/4))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)))
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (*.f64 1/16 (pow.f64 (hypot.f64 1 re) 4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4)))
(*.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) (cbrt.f64 (*.f64 1/16 (pow.f64 (hypot.f64 1 re) 4))))
(*.f64 (*.f64 (hypot.f64 1 re) 1/2) (*.f64 (hypot.f64 1 re) 1/2))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (/.f64 1 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(*.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (/.f64 1 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(*.f64 (fma.f64 re re 1) 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (fma.f64 re re 1) (pow.f64 (cbrt.f64 1/4) 3))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (fma.f64 re re 1) (exp.f64 (log.f64 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (pow.f64 1 1/3) (fma.f64 1/4 (pow.f64 re 2) 1/4))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(*.f64 (pow.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2) 1/3) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 4) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 8)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (pow.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2) 1/3) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2)) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (pow.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1)) 1/3) (cbrt.f64 1/4))
(*.f64 (cbrt.f64 1/4) (cbrt.f64 (*.f64 (fma.f64 re re 1) (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4))))
(*.f64 (cbrt.f64 1/4) (cbrt.f64 (*.f64 (fma.f64 re re 1) (*.f64 1/16 (pow.f64 (hypot.f64 1 re) 4)))))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))) (cbrt.f64 (sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 4) 2)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 8)) (cbrt.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 5/2)) (cbrt.f64 (*.f64 (hypot.f64 1 re) 1/2)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) (fma.f64 re re 1))) (cbrt.f64 1/4))
(*.f64 (cbrt.f64 1/4) (cbrt.f64 (*.f64 (fma.f64 re re 1) (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4))))
(*.f64 (cbrt.f64 1/4) (cbrt.f64 (*.f64 (fma.f64 re re 1) (*.f64 1/16 (pow.f64 (hypot.f64 1 re) 4)))))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(/.f64 1 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 4) 1/16 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 2)))))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(/.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16)) (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (neg.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64)) (neg.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16)))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(/.f64 (neg.f64 (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) (neg.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2)))))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) 1/16 -1/16) (fma.f64 1/4 (pow.f64 re 2) -1/4))
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(pow.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4) 1)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(pow.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)) 3)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4) 1/2)
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(pow.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6) 1/3)
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(pow.f64 (E.f64) (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(pow.f64 (/.f64 (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16) (fma.f64 (pow.f64 re 6) 1/64 1/64)) -1)
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) 1) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (*.f64 1/4 (pow.f64 re 2)) (fma.f64 1/4 (pow.f64 re 2) -1/4) 1/16))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 1/16 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) -1/16 1/16)))
(/.f64 (fma.f64 (pow.f64 re 6) 1/64 1/64) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/16 -1/16) 1/16))
(pow.f64 (/.f64 (+.f64 1/4 (*.f64 -1/4 (pow.f64 re 2))) (-.f64 1/16 (*.f64 (pow.f64 re 4) 1/16))) -1)
(/.f64 (-.f64 1/16 (*.f64 1/16 (pow.f64 re 4))) (+.f64 1/4 (*.f64 (pow.f64 re 2) -1/4)))
(/.f64 (+.f64 1/16 (*.f64 (pow.f64 re 4) -1/16)) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(/.f64 (fma.f64 (pow.f64 re 4) -1/16 1/16) (fma.f64 (pow.f64 re 2) -1/4 1/4))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 2)) (cbrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))) (sqrt.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))))
(sqrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 4))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(log.f64 (exp.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(cbrt.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(expm1.f64 (log1p.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(exp.f64 (log.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4))) 3))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 6)) 1/3))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 1 re) 1/2)) 2))
(pow.f64 (*.f64 (hypot.f64 1 re) 1/2) 2)
(*.f64 1/4 (pow.f64 (hypot.f64 1 re) 2))
(log1p.f64 (expm1.f64 (fma.f64 1/4 (pow.f64 re 2) 1/4)))
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 re (*.f64 re 1/4) 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 (pow.f64 re 2) 1/4 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 re 2)) 1 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 1 (*.f64 1/4 (pow.f64 re 2)) 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) (cbrt.f64 (*.f64 1/16 (pow.f64 re 4))) 1/4)
(fma.f64 (cbrt.f64 (*.f64 (pow.f64 re 4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re 1/2)) 2) (cbrt.f64 (*.f64 1/16 (pow.f64 re 4))) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (*.f64 (cbrt.f64 (pow.f64 re 2)) 1/4) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (*.f64 1/4 (cbrt.f64 (pow.f64 re 2))) 1/4)
(fma.f64 1/4 (*.f64 (pow.f64 (cbrt.f64 re) 4) (cbrt.f64 (pow.f64 re 2))) 1/4)
(fma.f64 (*.f64 re 1/2) (*.f64 re 1/2) 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 (*.f64 1/4 re) re 1/4)
(fma.f64 1/4 (pow.f64 re 2) 1/4)
(fma.f64 (*.f64 1/4 (pow.f64 (cbrt.f64 re) 4)) (cbrt.f64 (pow.f64 re 2)) 1/4)
(fma.f64 (pow.f64 (cbrt.f64 re) 4) (*.f64 1/4 (cbrt.f64 (pow.f64 re 2))) 1/4)
(fma.f64 1/4 (*.f64 (pow.f64 (cbrt.f64 re) 4) (cbrt.f64 (pow.f64 re 2))) 1/4)

eval34.0ms (0.8%)

Compiler

Compiled 1059 to 908 computations (14.3% saved)

prune36.0ms (0.8%)

Pruning

19 alts after pruning (11 fresh and 8 done)

PrunedKeptTotal
New79180
Fresh01010
Picked145
Done044
Total801999
Accuracy
100.0%
Counts
99 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
8.5%
(-.f64 (cos.f64 re) -4)
2.9%
(+.f64 (cos.f64 re) -4)
53.5%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
55.1%
(*.f64 (fma.f64 im im 2) 1/2)
28.8%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
8.6%
(*.f64 8 1/2)
9.9%
(*.f64 3/2 1/2)
9.4%
(*.f64 1 1/2)
9.8%
(*.f64 1/4 (pow.f64 re 2))
3.1%
(*.f64 -1/2 1/2)
3.3%
(*.f64 -1 1/2)
3.4%
(*.f64 -2 1/2)
3.0%
(*.f64 -4 1/2)
52.5%
(cos.f64 re)
34.8%
1
8.8%
1/4
8.5%
(-.f64 (cos.f64 re) -4)
2.9%
(+.f64 (cos.f64 re) -4)
53.5%
(*.f64 (fma.f64 im im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
55.1%
(*.f64 (fma.f64 im im 2) 1/2)
28.8%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
8.6%
(*.f64 8 1/2)
9.9%
(*.f64 3/2 1/2)
9.4%
(*.f64 1 1/2)
9.8%
(*.f64 1/4 (pow.f64 re 2))
3.1%
(*.f64 -1/2 1/2)
3.3%
(*.f64 -1 1/2)
3.4%
(*.f64 -2 1/2)
3.0%
(*.f64 -4 1/2)
52.5%
(cos.f64 re)
34.8%
1
8.8%
1/4
Compiler

Compiled 386 to 332 computations (14% saved)

localize84.0ms (1.9%)

Localize:

Found 2 expressions with local error:

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

Compiled 68 to 51 computations (25% saved)

series2.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite76.0ms (1.7%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02056
122452
2291352
Stop Event
node limit
Counts
2 → 60
Calls
Call 1
Inputs
(*.f64 (fma.f64 im im 2) (+.f64 1/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 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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 -1/4 (pow.f64 re 2) 1/2)) (fma.f64 im im 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 (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)

simplify87.0ms (1.9%)

Algorithm
egg-herbie
Rules
1520×fma-def
1170×fma-neg
798×*-commutative
690×log-prod
668×times-frac
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02043729
15483506
220853146
371803142
Stop Event
node limit
Counts
96 → 102
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 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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 -1/4 (pow.f64 re 2) 1/2)) (fma.f64 im im 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 (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)
(fma.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))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2))))
(*.f64 (fma.f64 im im 2) (fma.f64 -1/4 (pow.f64 re 2) 1/2))
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 2 (pow.f64 im 2))))
(*.f64 -1/4 (*.f64 (pow.f64 re 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 -1/4 (*.f64 (pow.f64 re 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))
-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))
(fma.f64 (pow.f64 re 2) -1/2 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 -1/720 (pow.f64 re 6) -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 (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 (pow.f64 (*.f64 1/2 (fma.f64 im im 2)) 3) (pow.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2))) 3)) (+.f64 (*.f64 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) 1/4) (*.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2))) (-.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2))) (*.f64 1/2 (fma.f64 im im 2))))))
(/.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (fma.f64 (pow.f64 re 6) -1/64 1/8)) (-.f64 (*.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 (fma.f64 (pow.f64 re 6) -1/64 1/8) (pow.f64 (fma.f64 im im 2) 3)) (*.f64 (fma.f64 im im 2) (-.f64 (*.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 4) 1/16 1/4)) (*.f64 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)) -1/8))))
(/.f64 (*.f64 (fma.f64 (pow.f64 re 6) -1/64 1/8) (pow.f64 (fma.f64 im im 2) 3)) (*.f64 (fma.f64 im im 2) (fma.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 4) 1/16 1/4) (*.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 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16))) (fma.f64 im im 2)) (fma.f64 (pow.f64 re 2) 1/4 1/2))
(/.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (/.f64 1 (fma.f64 im im 2)))
(/.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 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) (fma.f64 (pow.f64 re 6) -1/64 1/8)) (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8))))
(*.f64 (fma.f64 (pow.f64 re 6) -1/64 1/8) (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 4) 1/16 (fma.f64 (pow.f64 re 2) 1/8 1/4))))
(/.f64 (*.f64 (fma.f64 im im 2) (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16))) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.f64 (*.f64 (*.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 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16))) (fma.f64 im im 2)) (fma.f64 (pow.f64 re 2) 1/4 1/2))
(/.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (/.f64 1 (fma.f64 im im 2)))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (pow.f64 re 2) 3) -1/64) 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 (fma.f64 im im 2) (fma.f64 (pow.f64 (pow.f64 re 2) 3) -1/64 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) (fma.f64 (pow.f64 re 6) -1/64 1/8)) (+.f64 1/4 (fma.f64 (pow.f64 re 4) 1/16 (*.f64 (pow.f64 re 2) 1/8))))
(*.f64 (fma.f64 (pow.f64 re 6) -1/64 1/8) (/.f64 (fma.f64 im im 2) (fma.f64 (pow.f64 re 4) 1/16 (fma.f64 (pow.f64 re 2) 1/8 1/4))))
(/.f64 (*.f64 (-.f64 1/4 (*.f64 (pow.f64 re 4) 1/16)) (fma.f64 im im 2)) (+.f64 1/2 (*.f64 1/4 (pow.f64 re 2))))
(/.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 (*.f64 (fma.f64 im im 2) (fma.f64 im im 2)) (+.f64 1/4 (*.f64 (pow.f64 re 4) -1/16))) (fma.f64 im im 2)) (fma.f64 (pow.f64 re 2) 1/4 1/2))
(/.f64 (fma.f64 -1/4 (pow.f64 re 2) 1/2) (/.f64 1 (fma.f64 im im 2)))
(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 -1/4 (pow.f64 re 2) 1/2)) (fma.f64 im im 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 (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) (fma.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)) 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) (+.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) (fma.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)) 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) (+.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) (fma.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)) 16))
(/.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) (fma.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)) 16))
(/.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) (fma.f64 (cos.f64 re) (+.f64 4 (cos.f64 re)) 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) (+.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)

eval39.0ms (0.9%)

Compiler

Compiled 1591 to 1187 computations (25.4% saved)

prune30.0ms (0.7%)

Pruning

20 alts after pruning (9 fresh and 11 done)

PrunedKeptTotal
New993102
Fresh066
Picked145
Done178
Total10120121
Accuracy
100.0%
Counts
121 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
6.2%
(-.f64 (*.f64 -1/2 (pow.f64 re 2)) 3)
8.5%
(-.f64 (cos.f64 re) -4)
2.9%
(+.f64 (cos.f64 re) -4)
55.1%
(*.f64 (fma.f64 im im 2) 1/2)
28.8%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
72.2%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
78.0%
(*.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)))
8.6%
(*.f64 8 1/2)
9.9%
(*.f64 3/2 1/2)
9.4%
(*.f64 1 1/2)
9.8%
(*.f64 1/4 (pow.f64 re 2))
9.8%
(*.f64 -1/4 (*.f64 (pow.f64 re 2) (fma.f64 im im 2)))
3.1%
(*.f64 -1/2 1/2)
3.3%
(*.f64 -1 1/2)
3.4%
(*.f64 -2 1/2)
52.5%
(cos.f64 re)
34.8%
1
8.8%
1/4
2.9%
-3
Compiler

Compiled 264 to 208 computations (21.2% saved)

regimes80.0ms (1.8%)

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

20.0ms
re
16.0ms
im
13.0ms
(*.f64 1/2 (cos.f64 re))
10.0ms
(cos.f64 re)
8.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 166 to 121 computations (27.1% saved)

regimes109.0ms (2.4%)

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

4 calls:

38.0ms
im
25.0ms
re
20.0ms
(*.f64 1/2 (cos.f64 re))
20.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
88.4%2re
94.9%3im
88.5%2(*.f64 1/2 (cos.f64 re))
88.5%2(cos.f64 re)
Compiler

Compiled 134 to 101 computations (24.6% saved)

regimes37.0ms (0.8%)

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

1 calls:

32.0ms
im
Results
AccuracySegmentsBranch
94.6%3im
Compiler

Compiled 90 to 70 computations (22.2% saved)

regimes25.0ms (0.6%)

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

1 calls:

21.0ms
im
Results
AccuracySegmentsBranch
89.5%2im
Compiler

Compiled 82 to 65 computations (20.7% saved)

regimes90.0ms (2%)

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

3 calls:

30.0ms
im
28.0ms
re
28.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
65.2%2re
67.8%4(cos.f64 re)
75.7%3im
Compiler

Compiled 81 to 64 computations (21% saved)

regimes30.0ms (0.7%)

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

1 calls:

25.0ms
im
Results
AccuracySegmentsBranch
75.6%3im
Compiler

Compiled 54 to 43 computations (20.4% saved)

regimes36.0ms (0.8%)

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

3 calls:

17.0ms
im
9.0ms
re
7.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
52.5%1(cos.f64 re)
52.5%1re
58.9%2im
Compiler

Compiled 55 to 44 computations (20% saved)

regimes19.0ms (0.4%)

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

2 calls:

10.0ms
im
6.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
52.5%1(cos.f64 re)
52.5%1im
Compiler

Compiled 47 to 38 computations (19.1% saved)

regimes16.0ms (0.3%)

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

2 calls:

7.0ms
im
6.0ms
re
Results
AccuracySegmentsBranch
34.8%1re
34.8%1im
Compiler

Compiled 32 to 30 computations (6.3% saved)

regimes7.0ms (0.2%)

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

2 calls:

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

Compiled 10 to 8 computations (20% saved)

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

Compiled 9 to 7 computations (22.2% saved)

bsearch32.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
23.0ms
1.1456565088813012e+145
2.7185913082526626e+159
10.0ms
0.005883768119189543
0.009607753327262325
Results
20.0ms160×body256infinite
9.0ms64×body256valid
Compiler

Compiled 330 to 266 computations (19.4% saved)

bsearch22.0ms (0.5%)

Algorithm
binary-search
Stop Event
predicate-same
narrow-enough
Steps
TimeLeftRight
4.0ms
1.1456565088813012e+145
2.7185913082526626e+159
18.0ms
9.903355243456345e-31
1.4713886017633641e-28
Results
16.0ms112×body256valid
4.0ms32×body256infinite
Compiler

Compiled 174 to 141 computations (19% saved)

bsearch16.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
16.0ms
9.903355243456345e-31
1.4713886017633641e-28
Results
14.0ms112×body256valid
Compiler

Compiled 130 to 105 computations (19.2% saved)

bsearch64.0ms (1.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
9.0ms
5.803340986135725e+144
1.1456565088813012e+145
55.0ms
881461035194784.6
423251959266703600.0
Results
62.0ms192×body256infinite
Compiler

Compiled 214 to 182 computations (15% saved)

bsearch42.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
9.0ms
5.803340986135725e+144
1.1456565088813012e+145
33.0ms
881461035194784.6
423251959266703600.0
Results
39.0ms192×body256infinite
Compiler

Compiled 190 to 158 computations (16.8% saved)

bsearch19.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
19.0ms
881461035194784.6
423251959266703600.0
Results
17.0ms128×body256infinite
Compiler

Compiled 122 to 102 computations (16.4% saved)

simplify11.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
061496
176496
278496
379496
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 5476377146882523/576460752303423488) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (if (<=.f64 im 200000000000000009250216271808398948002452544790145376983777454402545107507559301846766839764406850263979324900979381181838795379032883593269504018219008) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(if (<=.f64 im 900000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 (fma.f64 im im 2) 1/2)))
(if (<=.f64 im 1060000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (*.f64 1/4 (pow.f64 re 2)) (*.f64 (fma.f64 im im 2) 1/2)))
(if (<=.f64 im 960000000000000) (cos.f64 re) (*.f64 1/4 (pow.f64 re 2)))
(cos.f64 re)
1
1/4
-3
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 5476377146882523/576460752303423488) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 5476377146882523/576460752303423488) (*.f64 (*.f64 1/2 (cos.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 im 2))))
(if (<=.f64 im 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (if (<=.f64 im 200000000000000009250216271808398948002452544790145376983777454402545107507559301846766839764406850263979324900979381181838795379032883593269504018219008) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))))
(if (<=.f64 im 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (if (<=.f64 im 200000000000000009250216271808398948002452544790145376983777454402545107507559301846766839764406850263979324900979381181838795379032883593269504018219008) (*.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 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(if (<=.f64 im 6467216107573881/44601490397061246283071436545296723011960832) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 900000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/4)) (*.f64 (fma.f64 im im 2) 1/2)))
(if (<=.f64 im 900000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (+.f64 1/4 (*.f64 1/4 (pow.f64 re 2))) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 1060000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (*.f64 1/4 (pow.f64 re 2)) (*.f64 (fma.f64 im im 2) 1/2)))
(if (<=.f64 im 1060000000000000) (cos.f64 re) (if (<=.f64 im 11200000000000000265948842416892380002976968791681240499702807873106659210870630412763589436020132894248674854299009300048886227502768913622499328) (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/2 (fma.f64 im im 2))))
(if (<=.f64 im 960000000000000) (cos.f64 re) (*.f64 1/4 (pow.f64 re 2)))
(cos.f64 re)
1
1/4
-3
Compiler

Compiled 166 to 125 computations (24.7% saved)

soundness843.0ms (18.6%)

Rules
1478×associate-+r+
1478×associate-+r+
1478×associate-+r+
1478×associate-+r+
1196×associate-+l+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01081999
13071820
29351667
340671658
02282
126982
2402182
01031913
12391813
26651697
327111697
457731697
575451697
01669
120269
2326069
01081999
13071820
29351667
340671658
01669
120269
2326069
01081999
13071820
29351667
340671658
01031913
12391813
26651697
327111697
457731697
575451697
01081999
13071820
29351667
340671658
01031913
12391813
26651697
327111697
457731697
575451697
01031913
12391813
26651697
327111697
457731697
575451697
Stop Event
node limit
node limit
node limit
node limit
node limit
unsound
node limit
unsound
node limit
unsound
node limit
Compiler

Compiled 204 to 143 computations (29.9% saved)

end0.0ms (0%)

preprocess182.0ms (4%)

Remove

(abs im)

(abs re)

Compiler

Compiled 370 to 232 computations (37.3% saved)

Profiling

Loading profile data...