math.cos on complex, real part

Time bar (total: 5.4s)

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)

sample2.0s (37.5%)

Results
567.0ms1036×body1024valid
482.0ms2572×body256infinite
344.0ms2609×body256valid
308.0ms991×body1024infinite
166.0ms548×body512valid
135.0ms499×body512infinite
1.0msbody2048valid
Bogosity

preprocess107.0ms (2%)

Algorithm
egg-herbie
Rules
1664×fma-def
928×associate-/r/
792×sqr-pow
750×associate-/l/
676×fabs-mul
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
027140
181140
2182140
3343132
4674132
51905132
63540132
73945132
84964132
95834132
107272132
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 (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 (+.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 (*.f64 1/2 (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 (*.f64 1/2 (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 15 to 12 computations (20% saved)

simplify99.0ms (1.8%)

Algorithm
egg-herbie
Rules
1464×fma-def
1028×associate-/l*
860×unswap-sqr
748×times-frac
636×associate-/r/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01335
13035
27335
313233
419433
534833
679033
7133733
8387933
9440133
10536833
11595233
12698433
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(*.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)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (cos.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 35 to 18 computations (48.6% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New213
Fresh011
Picked000
Done000
Total224
Accurracy
100.0%
Counts
4 → 1
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)

localize76.0ms (1.4%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 36 to 14 computations (61.1% saved)

series8.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

rewrite34.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
282×add-sqr-sqrt
272×pow1
272×*-un-lft-identity
264×add-exp-log
262×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
127335
2427735
Stop Event
unsound
Counts
1 → 23
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(pow.f64 (*.f64 (cos.f64 re) -2) 3)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(fabs.f64 (*.f64 (cos.f64 re) -2))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))

simplify67.0ms (1.3%)

Algorithm
egg-herbie
Rules
1156×fma-neg
1106×div-sub
876×cancel-sign-sub-inv
696×associate-*r*
696×fma-def
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0951035
1285921
2906921
34789921
Stop Event
node limit
Counts
47 → 45
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.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/48 (*.f64 (pow.f64 re 4) (+.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/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/48 (*.f64 (pow.f64 re 4) (+.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 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(*.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)))))
(+.f64 (cos.f64 re) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(pow.f64 (*.f64 (cos.f64 re) -2) 3)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(fabs.f64 (*.f64 (cos.f64 re) -2))
(log.f64 (pow.f64 1 (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))
Outputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (*.f64 -1/4 (*.f64 re re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
(+.f64 (*.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/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.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))) (*.f64 re re)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 re re)) (*.f64 1/48 (pow.f64 re 4)))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.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/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(fma.f64 -1/1440 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 6)) (fma.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))) (*.f64 re re)) (*.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/4 (*.f64 re re)) (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) 1/2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))))
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (fma.f64 (*.f64 (cos.f64 re) 1/24) (pow.f64 im 4) (cos.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6)))))
(+.f64 (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (fma.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 6) 1/720))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (cos.f64 re) (cos.f64 re))
(cos.f64 re)
(+.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) -2))) 1)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) -2)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) 1)
(cos.f64 re)
(/.f64 (*.f64 (cos.f64 re) -2) (+.f64 (*.f64 (cos.f64 re) -2) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))))
(cos.f64 re)
(/.f64 (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)) (-.f64 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) 1)
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) 3)
(cos.f64 re)
(pow.f64 (*.f64 (cos.f64 re) -2) 1/3)
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(sqrt.f64 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(fabs.f64 (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(log.f64 (pow.f64 1 (cos.f64 re)))
(cos.f64 re)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) -2))))
(cos.f64 re)
(cbrt.f64 (*.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(exp.f64 (log.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1))
(cos.f64 re)
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -2))
(cos.f64 re)
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) -2)))
(cos.f64 re)
(fma.f64 1 (*.f64 (cos.f64 re) -2) (*.f64 (cos.f64 re) -2))
(cos.f64 re)
(fma.f64 (*.f64 (cos.f64 re) -2) 1 (*.f64 (cos.f64 re) -2))
(cos.f64 re)

eval14.0ms (0.3%)

Compiler

Compiled 653 to 319 computations (51.1% saved)

prune16.0ms (0.3%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New39645
Fresh000
Picked101
Done000
Total40646
Accurracy
100.0%
Counts
46 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
7.7%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
47.3%
(cos.f64 re)
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
7.7%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
47.3%
(cos.f64 re)
Compiler

Compiled 228 to 164 computations (28.1% saved)

localize133.0ms (2.5%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
99.6%
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
99.9%
(*.f64 (cos.f64 re) (*.f64 im im))
Compiler

Compiled 75 to 24 computations (68% saved)

series9.0ms (0.2%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
5.0ms
re
@0
(*.f64 (cos.f64 re) (*.f64 im im))
2.0ms
re
@inf
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
1.0ms
re
@-inf
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
0.0ms
re
@inf
(*.f64 (cos.f64 re) (*.f64 im im))
0.0ms
im
@0
(*.f64 (cos.f64 re) (*.f64 im im))

rewrite68.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1066×log-prod
826×exp-prod
730×prod-exp
652×pow-prod-down
554×pow-prod-up
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
122734
2265134
Stop Event
node limit
Counts
2 → 67
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (*.f64 im im))
(pow.f64 (*.f64 (cos.f64 re) -2) -2)
Outputs
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1)
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2)
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4))
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2)))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im))))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im))))
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re))))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re))))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1)
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1)
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2))
(*.f64 (pow.f64 (cos.f64 re) -2) 1/4)
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4))
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))))
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2))
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1))
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2))
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2)))))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))

simplify99.0ms (1.8%)

Algorithm
egg-herbie
Rules
858×log-prod
564×fma-def
524×associate-*r*
472×associate-*l*
466×associate-/l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02152169
14732073
210612037
332282031
477352031
Stop Event
node limit
Counts
103 → 109
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2))))))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (cos.f64 re) (pow.f64 im 2))
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4))))
(+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 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))
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1)
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2)
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4))
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2)))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im))))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im))))
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re))))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re))))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1)))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1)
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1)
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2))
(*.f64 (pow.f64 (cos.f64 re) -2) 1/4)
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4))
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))))
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2))
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1))
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2))
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2)))))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))
Outputs
(pow.f64 im 2)
(*.f64 im im)
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 im im) (*.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re))))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (*.f64 im im))
(*.f64 (*.f64 im im) (fma.f64 -1/2 (*.f64 re re) 1))
(*.f64 im (*.f64 (fma.f64 (*.f64 -1/2 re) re 1) im))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 re 4)) (+.f64 (*.f64 im im) (*.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re)))))
(fma.f64 1/24 (*.f64 (*.f64 (pow.f64 re 4) im) im) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 re re)) 1) (*.f64 im im)))
(*.f64 (*.f64 im im) (+.f64 (*.f64 -1/2 (*.f64 re re)) (fma.f64 1/24 (pow.f64 re 4) 1)))
(*.f64 (*.f64 im im) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (fma.f64 (*.f64 -1/2 re) re 1)))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2))))))
(fma.f64 1/24 (*.f64 (*.f64 im im) (pow.f64 re 4)) (+.f64 (*.f64 im im) (fma.f64 -1/2 (*.f64 (*.f64 im im) (*.f64 re re)) (*.f64 -1/720 (*.f64 (*.f64 im im) (pow.f64 re 6))))))
(fma.f64 1/24 (*.f64 (*.f64 (pow.f64 re 4) im) im) (fma.f64 im im (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/720 (pow.f64 re 6))))))
(fma.f64 im im (*.f64 (*.f64 im im) (+.f64 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (*.f64 im im) (+.f64 (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6))) (fma.f64 1/24 (pow.f64 re 4) 1)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
1/4
(+.f64 1/4 (*.f64 1/4 (pow.f64 re 2)))
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
(fma.f64 (*.f64 re re) 1/4 1/4)
(fma.f64 re (*.f64 re 1/4) 1/4)
(*.f64 1/4 (fma.f64 re re 1))
(+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4))))
(+.f64 1/4 (fma.f64 1/4 (*.f64 re re) (*.f64 (pow.f64 re 4) 1/6)))
(+.f64 1/4 (fma.f64 (*.f64 re re) 1/4 (*.f64 (pow.f64 re 4) 1/6)))
(fma.f64 re (*.f64 re 1/4) (fma.f64 (pow.f64 re 4) 1/6 1/4))
(+.f64 (*.f64 17/180 (pow.f64 re 6)) (+.f64 1/4 (+.f64 (*.f64 1/4 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 4)))))
(fma.f64 17/180 (pow.f64 re 6) (+.f64 1/4 (fma.f64 1/4 (*.f64 re re) (*.f64 (pow.f64 re 4) 1/6))))
(+.f64 (fma.f64 (*.f64 re re) 1/4 (*.f64 (pow.f64 re 4) 1/6)) (fma.f64 (pow.f64 re 6) 17/180 1/4))
(fma.f64 (pow.f64 re 6) 17/180 (fma.f64 re (*.f64 re 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))
(/.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))
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 im im)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 1)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (*.f64 im im)) 1)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 3)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4) 1/2)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6) 1/3)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 2)
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (exp.f64 1) (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 2)) (cbrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re)))) 2)) (cbrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re)))) 2)) (cbrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))) (sqrt.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re))))) (sqrt.f64 (log.f64 (*.f64 (*.f64 im im) (cos.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re))))) (sqrt.f64 (fma.f64 2 (log.f64 im) (log.f64 (cos.f64 re)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 4))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(log.f64 (pow.f64 (exp.f64 (cos.f64 re)) (*.f64 im im)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im)))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) (*.f64 im im))) 1) 1))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 re) (*.f64 im im)))) 3))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (cos.f64 re))) 6)) 1/3))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (cos.f64 re)))) 2))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 im) 2)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (log.f64 (cos.f64 re)) (*.f64 (log.f64 (*.f64 im im)) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (log.f64 (*.f64 im im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 im) 2)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 (cos.f64 re)) 1) (*.f64 (log.f64 (*.f64 im im)) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 1) (log.f64 (*.f64 (cos.f64 re) im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (log.f64 (*.f64 im im)) (*.f64 (log.f64 (cos.f64 re)) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (log.f64 (cos.f64 re))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 im) 2) (*.f64 (log.f64 (cos.f64 re)) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (log.f64 (cos.f64 re))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 im im)) 1) (*.f64 (log.f64 (cos.f64 re)) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(exp.f64 (+.f64 (log.f64 (*.f64 (cos.f64 re) im)) (*.f64 (log.f64 im) 1)))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(log1p.f64 (expm1.f64 (*.f64 (cos.f64 re) (*.f64 im im))))
(*.f64 (*.f64 im im) (cos.f64 re))
(*.f64 im (*.f64 im (cos.f64 re)))
(+.f64 0 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 (cos.f64 re) -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.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 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))) 1)
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4) 1)
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 1 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16)))
(*.f64 (*.f64 (/.f64 1 (cos.f64 re)) -1/2) (*.f64 (/.f64 1 (cos.f64 re)) -1/2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(*.f64 (pow.f64 (cos.f64 re) -2) 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 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -4) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(/.f64 1 (*.f64 (pow.f64 (cos.f64 re) 2) 4))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(sqrt.f64 (*.f64 (pow.f64 (cos.f64 re) -4) 1/16))
(log.f64 (pow.f64 (exp.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))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4))))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(cbrt.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) 1) -2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (*.f64 (*.f64 -2 (log.f64 (*.f64 (cos.f64 re) -2))) 1) 1))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 re) -2)) -2)) 3))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (cos.f64 re) -2) -6)) 1/3))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 (cos.f64 re) -2))) -1))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) 2))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2))) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (neg.f64 (log.f64 (*.f64 (cos.f64 re) -2)))))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1) (*.f64 (log.f64 (*.f64 (cos.f64 re) -2)) -1)))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 re) -2) 1/4)))
(/.f64 1/4 (pow.f64 (cos.f64 re) 2))
(*.f64 1/4 (pow.f64 (cos.f64 re) -2))

eval59.0ms (1.1%)

Compiler

Compiled 1555 to 855 computations (45% saved)

prune25.0ms (0.5%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New1063109
Fresh011
Picked145
Done000
Total1078115
Accurracy
100.0%
Counts
115 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
64.2%
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
12.2%
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
47.3%
(cos.f64 re)
7.7%
1/4
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
64.2%
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
12.2%
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
47.3%
(cos.f64 re)
7.7%
1/4
Compiler

Compiled 140 to 100 computations (28.6% saved)

localize185.0ms (3.4%)

Local Accuracy

Found 3 expressions with local accuracy:

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

Compiled 81 to 33 computations (59.3% saved)

series3.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

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

rewrite104.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1182×log-prod
646×pow-prod-down
614×pow-prod-up
542×pow-exp
466×expm1-udef
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01545
129845
2333021
Stop Event
node limit
Counts
3 → 36
Calls
Call 1
Inputs
(*.f64 -1/4 (*.f64 re re))
(*.f64 (*.f64 re re) 1/4)
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
Outputs
0
re
0
re
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1)
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))))
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2))
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0)))))
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3))
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2))
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))

simplify61.0ms (1.1%)

Algorithm
egg-herbie
Rules
1228×fma-def
936×associate-*r*
870×associate-*l*
552×log-prod
482×times-frac
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01201540
13001436
28631398
349871384
Stop Event
node limit
Counts
84 → 72
Calls
Call 1
Inputs
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re 2))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
0
0
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1)
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))))
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2))
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0)))))
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3))
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2))
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
Outputs
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 -1/4 (pow.f64 re 2))
(*.f64 -1/4 (*.f64 re re))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(*.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 re re) 1/4)
(*.f64 re (*.f64 re 1/4))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 im im))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 im im))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (*.f64 im im) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 1 (fma.f64 1/2 (*.f64 im im) (*.f64 (*.f64 re re) -1/2)))
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
(fma.f64 (*.f64 re re) -1/2 (fma.f64 1/2 (*.f64 im im) 1))
(fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))))
(fma.f64 1/24 (pow.f64 re 4) (+.f64 1 (fma.f64 1/2 (*.f64 im im) (*.f64 (*.f64 re re) -1/2))))
(+.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) (fma.f64 1/24 (pow.f64 re 4) 1))
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 (*.f64 re re) -1/2 (fma.f64 1/2 (*.f64 im im) 1)))
(fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1)))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))))
(fma.f64 1/24 (pow.f64 re 4) (+.f64 (fma.f64 1/2 (*.f64 im im) 1) (fma.f64 -1/2 (*.f64 re re) (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 (fma.f64 1/2 (*.f64 im im) (fma.f64 (*.f64 re re) -1/2 (*.f64 -1/720 (pow.f64 re 6)))) (fma.f64 1/24 (pow.f64 re 4) 1))
(+.f64 1 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 -1/720 (pow.f64 re 6) (*.f64 1/2 (*.f64 im im))))))
(+.f64 (fma.f64 1/24 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) (fma.f64 1/2 (*.f64 im im) 1))) (*.f64 -1/720 (pow.f64 re 6)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (cos.f64 re))
0
0
(+.f64 0 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(fma.f64 1/2 (*.f64 im im) 1)
(+.f64 (cos.f64 0) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) 1)
(+.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0))
(fma.f64 1/2 (*.f64 im im) 1)
(+.f64 (*.f64 (*.f64 1/2 (*.f64 im im)) 1) (cos.f64 0))
(fma.f64 1/2 (*.f64 im im) 1)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1)))))
(*.f64 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) 1)))) 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))))
(fma.f64 1/2 (*.f64 im im) 1)
(-.f64 (exp.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1)
(fma.f64 1/2 (*.f64 im im) 1)
(*.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(fma.f64 1/2 (*.f64 im im) 1)
(*.f64 1 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))
(fma.f64 1/2 (*.f64 im im) 1)
(*.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2))
(fma.f64 1/2 (*.f64 im im) 1)
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2) (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)
(*.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3) (pow.f64 (cos.f64 0) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 (pow.f64 (cos.f64 0) 2) (*.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))))
(/.f64 (+.f64 1 (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 1 (*.f64 1/2 (*.f64 im im)))))
(/.f64 (fma.f64 1/8 (pow.f64 (*.f64 im im) 3) 1) (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (-.f64 1 (*.f64 1/2 (*.f64 im im)))))
(/.f64 (fma.f64 1/8 (pow.f64 im 6) 1) (fma.f64 1/4 (pow.f64 im 4) (fma.f64 (*.f64 im im) -1/2 1)))
(/.f64 (-.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) (pow.f64 (cos.f64 0) 2)) (-.f64 (*.f64 1/2 (*.f64 im im)) (cos.f64 0)))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 im im)) 2) -1) (fma.f64 1/2 (*.f64 im im) -1))
(/.f64 (fma.f64 1/4 (pow.f64 im 4) -1) (fma.f64 1/2 (*.f64 im im) -1))
(/.f64 (fma.f64 1/2 (*.f64 im im) 1) 1)
(pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 1)
(fma.f64 1/2 (*.f64 im im) 1)
(pow.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 3)
(fma.f64 1/2 (*.f64 im im) 1)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2) 1/2)
(fma.f64 1/2 (*.f64 im im) 1)
(pow.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3) 1/3)
(fma.f64 1/2 (*.f64 im im) 1)
(pow.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 2)
(fma.f64 1/2 (*.f64 im im) 1)
(sqrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 2))
(fma.f64 1/2 (*.f64 im im) 1)
(log.f64 (exp.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)
(log.f64 (+.f64 1 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))))
(fma.f64 1/2 (*.f64 im im) 1)
(log.f64 (*.f64 (exp.f64 (cos.f64 0)) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) 1)
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (cos.f64 0))) (exp.f64 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) 1)
(log.f64 (*.f64 (exp.f64 (*.f64 1/2 (*.f64 im im))) (+.f64 1 (expm1.f64 (cos.f64 0)))))
(fma.f64 1/2 (*.f64 im im) 1)
(cbrt.f64 (pow.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)) 3))
(fma.f64 1/2 (*.f64 im im) 1)
(expm1.f64 (log1p.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))) 1) 1))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 3))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 1/3))
(fma.f64 1/2 (*.f64 im im) 1)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0)))) 2))
(fma.f64 1/2 (*.f64 im im) 1)
(log1p.f64 (expm1.f64 (fma.f64 1/2 (*.f64 im im) (cos.f64 0))))
(fma.f64 1/2 (*.f64 im im) 1)

eval25.0ms (0.5%)

Compiler

Compiled 947 to 640 computations (32.4% saved)

prune19.0ms (0.4%)

Pruning

10 alts after pruning (4 fresh and 6 done)

PrunedKeptTotal
New69372
Fresh011
Picked123
Done044
Total701080
Accurracy
100.0%
Counts
80 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
46.0%
(fma.f64 1/2 (*.f64 im im) 1)
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
45.3%
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
12.2%
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
20.3%
(*.f64 1/2 (*.f64 im im))
47.3%
(cos.f64 re)
7.7%
1/4
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
46.0%
(fma.f64 1/2 (*.f64 im im) 1)
10.3%
(+.f64 (cos.f64 re) (cos.f64 re))
45.3%
(+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
12.2%
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
20.3%
(*.f64 1/2 (*.f64 im im))
47.3%
(cos.f64 re)
7.7%
1/4
Compiler

Compiled 180 to 130 computations (27.8% saved)

localize60.0ms (1.1%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
94.7%
(fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))
Compiler

Compiled 63 to 28 computations (55.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite59.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1864×pow1
1708×add-exp-log
1708×log1p-expm1-u
1708×expm1-log1p-u
1670×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
122027
2245327
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))
Outputs
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2)))
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im)))
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1)
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))))
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3)
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2))
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))

simplify54.0ms (1%)

Algorithm
egg-herbie
Rules
976×associate-/l*
760×distribute-rgt-in
744×distribute-lft-in
692×associate-/r*
640×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0681291
11811259
27621219
328571207
Stop Event
node limit
Counts
45 → 35
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(*.f64 -1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(*.f64 -1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(*.f64 -1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2)))
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im)))
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1)
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))))
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3)
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3)
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2))
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
Outputs
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 im im))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 -1/2 (pow.f64 re 2))
(*.f64 -1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 -1/2 (pow.f64 re 2))
(*.f64 -1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 -1/2 (pow.f64 re 2))
(*.f64 -1/2 (*.f64 re re))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 im im))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (*.f64 im im))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 re (*.f64 re -1/2)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) 1) (*.f64 1/2 (*.f64 im im)))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(-.f64 (+.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 1)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 1 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2) (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(/.f64 (+.f64 (pow.f64 (*.f64 re (*.f64 re -1/2)) 3) (pow.f64 (*.f64 1/2 (*.f64 im im)) 3)) (+.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))))
(/.f64 (+.f64 (pow.f64 (*.f64 -1/2 (*.f64 re re)) 3) (*.f64 1/8 (pow.f64 (*.f64 im im) 3))) (fma.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/2 (*.f64 re re)) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 re (*.f64 (*.f64 -1/2 re) (*.f64 1/2 (*.f64 im im)))))))
(/.f64 (fma.f64 1/8 (pow.f64 (*.f64 im im) 3) (*.f64 -1/8 (pow.f64 (*.f64 re re) 3))) (fma.f64 re (*.f64 -1/2 (*.f64 -1/2 (pow.f64 re 3))) (-.f64 (*.f64 (pow.f64 im 4) 1/4) (*.f64 (*.f64 im im) (*.f64 (*.f64 re re) -1/4)))))
(/.f64 (fma.f64 1/8 (pow.f64 im 6) (*.f64 -1/8 (pow.f64 (*.f64 re re) 3))) (fma.f64 1/4 (pow.f64 re 4) (fma.f64 (*.f64 (*.f64 re re) 1/4) (*.f64 im im) (*.f64 (pow.f64 im 4) 1/4))))
(/.f64 (fma.f64 1/8 (pow.f64 im 6) (*.f64 -1/8 (pow.f64 re 6))) (fma.f64 (pow.f64 im 4) 1/4 (*.f64 (*.f64 (*.f64 re re) 1/4) (fma.f64 re re (*.f64 im im)))))
(/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))
(/.f64 (-.f64 (*.f64 re (*.f64 (*.f64 -1/2 re) (*.f64 -1/2 (*.f64 re re)))) (*.f64 (pow.f64 im 4) 1/4)) (+.f64 (*.f64 -1/2 (*.f64 re re)) (*.f64 -1/2 (*.f64 im im))))
(/.f64 (fma.f64 re (*.f64 -1/2 (*.f64 -1/2 (pow.f64 re 3))) (*.f64 (pow.f64 im 4) -1/4)) (*.f64 -1/2 (+.f64 (*.f64 re re) (*.f64 im im))))
(/.f64 (*.f64 1/4 (-.f64 (pow.f64 re 4) (pow.f64 im 4))) (*.f64 -1/2 (fma.f64 re re (*.f64 im im))))
(/.f64 1/4 (/.f64 (*.f64 -1/2 (fma.f64 re re (*.f64 im im))) (-.f64 (pow.f64 re 4) (pow.f64 im 4))))
(pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 1)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(pow.f64 (cbrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 3)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(pow.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3) 1/3)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(pow.f64 (sqrt.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))) 2)
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(sqrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 2))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(log.f64 (exp.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(cbrt.f64 (pow.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im))) 3))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(expm1.f64 (log1p.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(exp.f64 (log.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))
(log1p.f64 (expm1.f64 (fma.f64 (*.f64 re re) -1/2 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 1/2 (*.f64 im im) (*.f64 -1/2 (*.f64 re re)))

eval13.0ms (0.2%)

Compiler

Compiled 691 to 430 computations (37.8% saved)

prune18.0ms (0.3%)

Pruning

10 alts after pruning (4 fresh and 6 done)

PrunedKeptTotal
New32335
Fresh011
Picked213
Done156
Total351045
Accurracy
100.0%
Counts
45 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.9%
(fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))
30.0%
(+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im)))))
46.0%
(+.f64 1 (*.f64 1/2 (*.f64 im im)))
34.2%
(+.f64 1 (*.f64 -1/2 (*.f64 re re)))
12.2%
(+.f64 1/4 (*.f64 (*.f64 re re) 1/4))
65.8%
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))
68.9%
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
20.3%
(*.f64 1/2 (*.f64 im im))
47.3%
(cos.f64 re)
7.7%
1/4
Compiler

Compiled 253 to 158 computations (37.5% saved)

regimes47.0ms (0.9%)

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

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

Compiled 178 to 103 computations (42.1% saved)

regimes88.0ms (1.6%)

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

3 calls:

36.0ms
(cos.f64 re)
32.0ms
im
16.0ms
re
Results
AccuracySegmentsBranch
85.1%2re
94.5%3im
89.3%4(cos.f64 re)
Compiler

Compiled 140 to 78 computations (44.3% saved)

regimes33.0ms (0.6%)

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

1 calls:

30.0ms
im
Results
AccuracySegmentsBranch
90.2%3im
Compiler

Compiled 123 to 70 computations (43.1% saved)

regimes18.0ms (0.3%)

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

1 calls:

14.0ms
im
Results
AccuracySegmentsBranch
87.1%2im
Compiler

Compiled 109 to 65 computations (40.4% saved)

regimes65.0ms (1.2%)

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

3 calls:

35.0ms
re
20.0ms
im
6.0ms
(cos.f64 re)
Results
AccuracySegmentsBranch
68.4%5re
64.2%1(cos.f64 re)
71.1%3im
Compiler

Compiled 108 to 64 computations (40.7% saved)

regimes22.0ms (0.4%)

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

1 calls:

19.0ms
im
Results
AccuracySegmentsBranch
71.1%3im
Compiler

Compiled 94 to 57 computations (39.4% saved)

regimes18.0ms (0.3%)

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

1 calls:

16.0ms
im
Results
AccuracySegmentsBranch
68.0%3im
Compiler

Compiled 52 to 31 computations (40.4% saved)

regimes30.0ms (0.6%)

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

2 calls:

16.0ms
re
12.0ms
im
Results
AccuracySegmentsBranch
52.3%4re
49.9%3im
Compiler

Compiled 35 to 23 computations (34.3% saved)

regimes30.0ms (0.6%)

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

2 calls:

18.0ms
re
11.0ms
im
Results
AccuracySegmentsBranch
48.7%3im
39.9%5re
Compiler

Compiled 28 to 19 computations (32.1% saved)

regimes14.0ms (0.3%)

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

2 calls:

7.0ms
im
6.0ms
re
Results
AccuracySegmentsBranch
24.2%2re
27.3%2im
Compiler

Compiled 21 to 15 computations (28.6% saved)

regimes7.0ms (0.1%)

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

1 calls:

6.0ms
im
Results
AccuracySegmentsBranch
24.8%2im
Compiler

Compiled 11 to 8 computations (27.3% saved)

regimes6.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

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

Compiled 9 to 7 computations (22.2% saved)

bsearch48.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
5.083723235422087e+152
2.8677811883932575e+156
23.0ms
3.958207999644232e-8
4.206122758780734e-7
Results
11.0ms28×body1024valid
11.0ms83×body256infinite
8.0ms26×body1024infinite
7.0ms53×body256valid
4.0ms19×body512infinite
4.0ms15×body512valid
Compiler

Compiled 354 to 252 computations (28.8% saved)

bsearch45.0ms (0.8%)

Algorithm
binary-search
Stop Event
predicate-same
narrow-enough
Steps
TimeLeftRight
23.0ms
3.9031006754011984e+127
4.797893492963072e+130
21.0ms
3.958207999644232e-8
4.206122758780734e-7
Results
11.0ms89×body256infinite
9.0ms64×body256valid
7.0ms18×body1024valid
6.0ms22×body1024infinite
4.0ms14×body512valid
4.0ms17×body512infinite
Compiler

Compiled 338 to 268 computations (20.7% saved)

bsearch23.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
23.0ms
3.958207999644232e-8
4.206122758780734e-7
Results
10.0ms27×body1024valid
8.0ms54×body256valid
4.0ms15×body512valid
Compiler

Compiled 114 to 92 computations (19.3% saved)

bsearch48.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
29.0ms
5.083723235422087e+152
2.8677811883932575e+156
19.0ms
1.2626049870689057e+23
1.7533726487726416e+24
Results
21.0ms52×body1024infinite
18.0ms143×body256infinite
6.0ms29×body512infinite
Compiler

Compiled 634 to 462 computations (27.1% saved)

bsearch46.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
28.0ms
5.083723235422087e+152
2.8677811883932575e+156
18.0ms
1.3486353971197489e+25
6.827066843334879e+25
Results
22.0ms148×body256infinite
12.0ms42×body1024infinite
7.0ms34×body512infinite
Compiler

Compiled 604 to 452 computations (25.2% saved)

bsearch59.0ms (1.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
22.0ms
9.505225846316366e+149
6.394830973150909e+151
37.0ms
4.206122758780734e-7
35315.795389819854
Results
23.0ms152×body256infinite
15.0ms47×body1024infinite
6.0ms25×body512infinite
5.0ms14×body1024valid
4.0ms26×body256valid
2.0msbody512valid
Compiler

Compiled 308 to 246 computations (20.1% saved)

bsearch88.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
30.0ms
6.742258172826217e+289
2.071162366755797e+290
31.0ms
1.9844134332531692e+238
7.36095147599478e+238
27.0ms
4.696814347783136e+165
7.94618346588493e+165
Results
44.0ms97×body1024valid
41.0ms127×body1024infinite
Compiler

Compiled 298 to 238 computations (20.1% saved)

bsearch58.0ms (1.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
21.0ms
9.505225846316366e+149
6.394830973150909e+151
38.0ms
4.206122758780734e-7
35315.795389819854
Results
17.0ms44×body1024valid
13.0ms96×body256valid
10.0ms77×body256infinite
8.0ms27×body1024infinite
5.0ms20×body512valid
2.0msbody512infinite
Compiler

Compiled 344 to 272 computations (20.9% saved)

bsearch23.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
23.0ms
9.505225846316366e+149
6.394830973150909e+151
Results
10.0ms31×body1024infinite
8.0ms65×body256infinite
3.0ms16×body512infinite
Compiler

Compiled 144 to 112 computations (22.2% saved)

bsearch35.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
35.0ms
4.206122758780734e-7
35315.795389819854
Results
13.0ms99×body256valid
13.0ms34×body1024valid
7.0ms27×body512valid
Compiler

Compiled 138 to 114 computations (17.4% saved)

simplify24.0ms (0.4%)

Algorithm
egg-herbie
Rules
38×*-commutative
30×+-commutative
18×sub-neg
14×neg-mul-1
14×neg-sub0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093798
1136798
2158798
3173798
4181798
5183798
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 1983393922805251/4722366482869645213696) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 195000000000000002097152) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re))))
(if (<=.f64 im 25999999999999998490050560) (cos.f64 re) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 im 720) (cos.f64 re) (if (<=.f64 im 35000000000000002781729806439440840779347287959082695937987231620154290264207196512207057940207876118102062999693096604041823761356639322477525808971776) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 -1/2 (*.f64 re re))))))
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im))))
(if (<=.f64 im 7499999999999999765412130756329448110632924119226824153978565990240993306341314474742326000446918223946384112775874345708937541700790787919925097791488) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im)))
(if (<=.f64 im 799388933858263/1125899906842624) 1/4 (*.f64 1/2 (*.f64 im im)))
1/4
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re))))
(if (or (<=.f64 im 1983393922805251/4722366482869645213696) (not (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160))) (fma.f64 1/2 (*.f64 (cos.f64 re) (*.f64 im im)) (cos.f64 re)) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (if (<=.f64 im 90000000000000006765703822486638776472428615791716739213461819212198933271817368419808699098798223188543935953496727369400975360) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 1/2 (*.f64 -1/4 (*.f64 re re))))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(if (<=.f64 im 1983393922805251/4722366482869645213696) (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 195000000000000002097152) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re))))
(if (or (<=.f64 im 195000000000000002097152) (not (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160))) (fma.f64 1/2 (*.f64 im im) (cos.f64 re)) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))))
(if (<=.f64 im 25999999999999998490050560) (cos.f64 re) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (+.f64 1 (/.f64 (-.f64 (*.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 re (*.f64 re -1/2))) (*.f64 (pow.f64 im 4) 1/4)) (-.f64 (*.f64 re (*.f64 re -1/2)) (*.f64 1/2 (*.f64 im im))))) (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 im 720) (cos.f64 re) (if (<=.f64 im 35000000000000002781729806439440840779347287959082695937987231620154290264207196512207057940207876118102062999693096604041823761356639322477525808971776) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (+.f64 1 (*.f64 -1/2 (*.f64 re re))))))
(if (<=.f64 re 5800000000000000112636886198564359955756869294359954283990752549513285836524672559602899644004569013895050413285321648632549722456086679198356951687567212866072215552) (+.f64 1 (*.f64 1/2 (*.f64 im im))) (if (or (<=.f64 re 65000000000000004607988973225829926069456722358581324574172720451228924965727064156846610681139469870263750697835167374885507016697219354049905027287016131830178267685346464261188184769406593196664400169962501748166042716071822787237380096) (not (<=.f64 re 179999999999999993799854838762609447185516943828925864086220333545356370688124367223606611791243468147271241594517694103171688274731528559512015933876577326772005137522887331801027676181466158488097723507301678615492659327938404828345130926742892505185249057699081087455759892800959953240064))) (+.f64 1 (*.f64 (*.f64 re re) -1/2)) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4))))
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 -1/2 (*.f64 re re))) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im))))
(if (<=.f64 im 49/2) (+.f64 1 (*.f64 (*.f64 re re) -1/2)) (if (<=.f64 im 27999999999999998736557968532639597986723552504844391852911253996996742860212801142697063407856268928764606973689362591573355299007657377015932829827072) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im))))
(if (<=.f64 im 7499999999999999765412130756329448110632924119226824153978565990240993306341314474742326000446918223946384112775874345708937541700790787919925097791488) (+.f64 1/4 (*.f64 (*.f64 re re) 1/4)) (*.f64 1/2 (*.f64 im im)))
(if (<=.f64 im 799388933858263/1125899906842624) 1/4 (*.f64 1/2 (*.f64 im im)))
1/4
Compiler

Compiled 315 to 222 computations (29.5% saved)

soundness829.0ms (15.4%)

Rules
1864×pow1
1708×add-exp-log
1708×log1p-expm1-u
1708×expm1-log1p-u
1670×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
127335
2427735
0951035
1285921
2906921
34789921
02152169
14732073
210612037
332282031
477352031
01201540
13001436
28631398
349871384
02152169
14732073
210612037
332282031
477352031
01201540
13001436
28631398
349871384
0681291
11811259
27621219
328571207
0681291
11811259
27621219
328571207
01127
122027
2245327
0951035
1285921
2906921
34789921
Stop Event
node limit
node limit
node limit
node limit
node limit
node limit
node limit
node limit
node limit
unsound
Compiler

Compiled 614 to 399 computations (35% saved)

end0.0ms (0%)

preprocess233.0ms (4.3%)

Remove

(abs im)

(abs re)

Compiler

Compiled 664 to 402 computations (39.5% saved)

Profiling

Loading profile data...