math.sin on complex, real part

Time bar (total: 7.6s)

analyze0.0ms (0%)

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

Compiled 15 to 12 computations (20% saved)

sample1.9s (25.1%)

Results
491.0ms1040×body1024valid
408.0ms2596×body256valid
380.0ms2564×body256infinite
363.0ms1030×body1024infinite
134.0ms506×body512valid
120.0ms518×body512infinite
2.0msbody2048valid
Bogosity

preprocess89.0ms (1.2%)

Algorithm
egg-herbie
Rules
1388×fma-def
1228×distribute-lft-neg-in
1086×fma-neg
802×times-frac
794×distribute-rgt-neg-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
031144
194144
2254140
3526134
41151132
53093132
65261132
77961132
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 (neg.f64 im))) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 im)) (+.f64 (exp.f64 (-.f64 0 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (neg.f64 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (neg.f64 (sin.f64 re))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) -1/2))
(*.f64 (sin.f64 re) (*.f64 -1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 (exp.f64 im) -1/2 (/.f64 -1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 (neg.f64 im))) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 im)) (+.f64 (exp.f64 (-.f64 0 re)) (exp.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 im) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (*.f64 1/2 (sin.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 (sin.f64 im) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re))))
Symmetry

(abs im)

Compiler

Compiled 16 to 13 computations (18.8% saved)

simplify84.0ms (1.1%)

Algorithm
egg-herbie
Rules
1568×unswap-sqr
1404×fma-def
900×fabs-mul
862×associate-/r*
692×times-frac
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01435
13035
27435
314133
418933
525633
643833
7110433
8315833
9354033
10403133
11567033
12665033
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 47 to 25 computations (46.8% saved)

prune2.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New314
Fresh101
Picked000
Done000
Total415
Accurracy
100.0%
Counts
5 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 26 to 20 computations (23.1% saved)

localize71.0ms (0.9%)

Local Accuracy

Found 2 expressions with local accuracy:

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

Compiled 36 to 14 computations (61.1% saved)

series7.0ms (0.1%)

Counts
2 → 28
Calls

9 calls:

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

rewrite38.0ms (0.5%)

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
01340
127340
2427740
Stop Event
unsound
Counts
2 → 42
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(sin.f64 re)
Outputs
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(pow.f64 (*.f64 (sin.f64 re) -2) 3)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(fabs.f64 (*.f64 (sin.f64 re) -2))
(log.f64 (pow.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
(-.f64 -2 (*.f64 -2 (cos.f64 (*.f64 -2 re))))
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
(*.f64 (sin.f64 re) (sin.f64 re))
(*.f64 (sin.f64 re) 1)
(*.f64 1 (sin.f64 re))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 (+.f64 re re))) -2)
(pow.f64 (sin.f64 re) -2)
(pow.f64 (sin.f64 re) 1)
(pow.f64 (sin.f64 re) 3)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) 1))
(log1p.f64 (expm1.f64 (sin.f64 re)))

simplify30.0ms (0.4%)

Algorithm
egg-herbie
Rules
176×associate-*r*
172×fma-def
154×associate-*l*
106×*-commutative
102×distribute-lft-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01431438
13851438
218031438
Stop Event
unsound
Counts
70 → 69
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(pow.f64 (*.f64 (sin.f64 re) -2) 3)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(fabs.f64 (*.f64 (sin.f64 re) -2))
(log.f64 (pow.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
(-.f64 -2 (*.f64 -2 (cos.f64 (*.f64 -2 re))))
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
(*.f64 (sin.f64 re) (sin.f64 re))
(*.f64 (sin.f64 re) 1)
(*.f64 1 (sin.f64 re))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 (+.f64 re re))) -2)
(pow.f64 (sin.f64 re) -2)
(pow.f64 (sin.f64 re) 1)
(pow.f64 (sin.f64 re) 3)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) 1))
(log1p.f64 (expm1.f64 (sin.f64 re)))
Outputs
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/240 (pow.f64 re 5)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(fma.f64 -1/10080 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 7)) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/240 (pow.f64 re 5)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 (*.f64 1/24 (sin.f64 re)) (pow.f64 im 4))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (*.f64 (*.f64 1/24 (sin.f64 re)) (pow.f64 im 4)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (fma.f64 -1/6 (pow.f64 re 3) (*.f64 (pow.f64 re 7) -1/5040))))
(+.f64 (sin.f64 re) (sin.f64 re))
(sin.f64 re)
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(sin.f64 re)
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) 3)
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sin.f64 re)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(fabs.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(log.f64 (pow.f64 1 (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(sin.f64 re)
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(sin.f64 re)
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(sin.f64 re)
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(-.f64 -2 (*.f64 -2 (cos.f64 (*.f64 -2 re))))
(+.f64 -2 (*.f64 2 (cos.f64 (*.f64 re -2))))
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
(sin.f64 re)
(*.f64 (sin.f64 re) (sin.f64 re))
(sin.f64 re)
(*.f64 (sin.f64 re) 1)
(sin.f64 re)
(*.f64 1 (sin.f64 re))
(sin.f64 re)
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 (+.f64 re re))) -2)
(/.f64 (-.f64 (cos.f64 0) (cos.f64 (+.f64 re re))) -2)
(pow.f64 (sin.f64 re) -2)
(sin.f64 re)
(pow.f64 (sin.f64 re) 1)
(sin.f64 re)
(pow.f64 (sin.f64 re) 3)
(sin.f64 re)
(pow.f64 (sin.f64 re) 1/3)
(sin.f64 re)
(sqrt.f64 (sin.f64 re))
(sin.f64 re)
(fabs.f64 (sin.f64 re))
(sin.f64 re)
(log.f64 (exp.f64 (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 1 (expm1.f64 (sin.f64 re))))
(sin.f64 re)
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (log.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) 1))
(sin.f64 re)
(log1p.f64 (expm1.f64 (sin.f64 re)))
(sin.f64 re)

eval18.0ms (0.2%)

Compiler

Compiled 999 to 481 computations (51.9% saved)

prune21.0ms (0.3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New63669
Fresh000
Picked011
Done000
Total63770
Accurracy
100.0%
Counts
70 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
10.3%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
11.1%
(+.f64 (sin.f64 re) (sin.f64 re))
56.5%
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
53.0%
(sin.f64 re)
10.3%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
11.1%
(+.f64 (sin.f64 re) (sin.f64 re))
56.5%
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
53.0%
(sin.f64 re)
Compiler

Compiled 270 to 200 computations (25.9% saved)

localize162.0ms (2.1%)

Local Accuracy

Found 8 expressions with local accuracy:

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

Compiled 88 to 33 computations (62.5% saved)

series11.0ms (0.1%)

Counts
4 → 84
Calls

21 calls:

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

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
444×add-sqr-sqrt
430×pow1
428×*-un-lft-identity
416×add-exp-log
414×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020100
1435100
27143100
Stop Event
unsound
Counts
4 → 87
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
im
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
im
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
im
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -512)
(/.f64 re -512)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -512)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -512 (expm1.f64 re)))
(cbrt.f64 re)
re
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -512))
(log1p.f64 (expm1.f64 re))
(fma.f64 -512 re re)
(fma.f64 re -512 re)

simplify92.0ms (1.2%)

Algorithm
egg-herbie
Rules
1182×distribute-lft-out
1134×fma-def
600×unswap-sqr
586×+-commutative
546×associate-*r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01473149
13333113
28383113
334273113
Stop Event
node limit
Counts
171 → 77
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)))
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (*.f64 (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))) (pow.f64 re 5))))
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (+.f64 (*.f64 (-.f64 (*.f64 -1/10080 (pow.f64 im 2)) 1/5040) (pow.f64 re 7)) (*.f64 (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))) (pow.f64 re 5)))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(/.f64 1/4 (pow.f64 re 2))
(+.f64 1/12 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))))
(+.f64 1/12 (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))) (*.f64 1/60 (pow.f64 re 2))))
(+.f64 1/12 (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))) (+.f64 (*.f64 1/60 (pow.f64 re 2)) (*.f64 1/378 (pow.f64 re 4)))))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 1/720 (*.f64 re (pow.f64 im 6))) (+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
-512
-8
-4
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -512)
(/.f64 re -512)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -512)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -512 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -512))
(log1p.f64 (expm1.f64 re))
(fma.f64 -512 re re)
(fma.f64 re -512 re)
Outputs
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(fma.f64 -1/12 (*.f64 (*.f64 im im) (pow.f64 re 3)) (fma.f64 1/240 (*.f64 (*.f64 im im) (pow.f64 re 5)) (*.f64 (*.f64 1/2 re) (*.f64 im im))))
(fma.f64 -1/12 (*.f64 im (*.f64 im (pow.f64 re 3))) (*.f64 (*.f64 im im) (+.f64 (*.f64 1/2 re) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(fma.f64 -1/12 (*.f64 (*.f64 im im) (pow.f64 re 3)) (fma.f64 1/240 (*.f64 (*.f64 im im) (pow.f64 re 5)) (fma.f64 -1/10080 (*.f64 (*.f64 im im) (pow.f64 re 7)) (*.f64 (*.f64 1/2 re) (*.f64 im im)))))
(+.f64 (*.f64 (*.f64 im im) (+.f64 (*.f64 1/2 re) (*.f64 -1/10080 (pow.f64 re 7)))) (*.f64 (*.f64 im im) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 1/240 (pow.f64 re 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (*.f64 (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))) (pow.f64 re 5))))
(fma.f64 (+.f64 1 (*.f64 1/2 (*.f64 im im))) re (fma.f64 (pow.f64 re 3) (fma.f64 -1/12 (*.f64 im im) -1/6) (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 (*.f64 im im) 1/240)))))
(fma.f64 re (fma.f64 1/2 (*.f64 im im) 1) (fma.f64 (pow.f64 re 3) (fma.f64 (*.f64 im im) -1/12 -1/6) (*.f64 (pow.f64 re 5) (fma.f64 (*.f64 im im) 1/240 1/120))))
(+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (+.f64 (*.f64 (-.f64 (*.f64 -1/10080 (pow.f64 im 2)) 1/5040) (pow.f64 re 7)) (*.f64 (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))) (pow.f64 re 5)))))
(fma.f64 (+.f64 1 (*.f64 1/2 (*.f64 im im))) re (fma.f64 (pow.f64 re 3) (fma.f64 -1/12 (*.f64 im im) -1/6) (fma.f64 (fma.f64 -1/10080 (*.f64 im im) -1/5040) (pow.f64 re 7) (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 (*.f64 im im) 1/240))))))
(fma.f64 re (fma.f64 1/2 (*.f64 im im) 1) (fma.f64 (pow.f64 re 3) (fma.f64 (*.f64 im im) -1/12 -1/6) (fma.f64 (pow.f64 re 5) (fma.f64 (*.f64 im im) 1/240 1/120) (*.f64 (pow.f64 re 7) (fma.f64 (*.f64 im im) -1/10080 -1/5040)))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)))
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 1/12 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 1/12 (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))) (*.f64 1/60 (pow.f64 re 2))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 1/12 (+.f64 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))) (+.f64 (*.f64 1/60 (pow.f64 re 2)) (*.f64 1/378 (pow.f64 re 4)))))
(+.f64 (+.f64 1/12 (/.f64 1/4 (*.f64 re re))) (fma.f64 1/60 (*.f64 re re) (*.f64 1/378 (pow.f64 re 4))))
(+.f64 1/12 (+.f64 (/.f64 1/4 (*.f64 re re)) (fma.f64 (*.f64 re re) 1/60 (*.f64 1/378 (pow.f64 re 4)))))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
re
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(+.f64 (*.f64 1/24 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 1/720 (*.f64 re (pow.f64 im 6))) (+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-512
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-8
-4
-2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
0
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/512
1/64
1/16
1/8
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
8
9
16
27
64
-512
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-8
-4
-2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
0
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/512
1/64
1/16
1/8
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
8
9
16
27
64
-512
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-8
-4
-2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
-1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
0
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/512
1/64
1/16
1/8
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
1
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3/2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
2
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
3
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
4
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
8
9
16
27
64
(+.f64 re re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(-.f64 (exp.f64 (log1p.f64 re)) -512)
(+.f64 (exp.f64 (log1p.f64 re)) 512)
(/.f64 re -512)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(/.f64 (-.f64 re re) (-.f64 re re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(pow.f64 re -512)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(pow.f64 re 1/3)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(sqrt.f64 re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(fabs.f64 re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(log.f64 (exp.f64 re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(log.f64 (+.f64 -512 (expm1.f64 re)))
(cbrt.f64 re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(expm1.f64 (log1p.f64 re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(exp.f64 (log.f64 re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(exp.f64 (*.f64 (log.f64 re) -512))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(fma.f64 -512 re re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(fma.f64 re -512 re)
(*.f64 (*.f64 1/2 re) (*.f64 im im))
(*.f64 1/2 (*.f64 re (*.f64 im im)))

eval209.0ms (2.7%)

Compiler

Compiled 8404 to 4421 computations (47.4% saved)

prune69.0ms (0.9%)

Pruning

20 alts after pruning (16 fresh and 4 done)

PrunedKeptTotal
New73415749
Fresh011
Picked235
Done011
Total73620756
Accurracy
100.0%
Counts
756 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
2.6%
(fma.f64 re -512 re)
13.4%
(pow.f64 re -512)
5.5%
(/.f64 re (+.f64 re (-.f64 re re)))
2.7%
(/.f64 re -512)
54.3%
(+.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
55.3%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
3.8%
(+.f64 (sin.f64 re) -512)
32.7%
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
45.7%
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
6.6%
(+.f64 re re)
43.0%
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
56.5%
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
53.0%
(sin.f64 re)
33.8%
(log1p.f64 (expm1.f64 re))
14.1%
(fabs.f64 re)
4.3%
(cbrt.f64 re)
24.2%
re
2.6%
(fma.f64 re -512 re)
13.4%
(pow.f64 re -512)
5.5%
(/.f64 re (+.f64 re (-.f64 re re)))
2.7%
(/.f64 re -512)
54.3%
(+.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
55.3%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
3.8%
(+.f64 (sin.f64 re) -512)
32.7%
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
45.7%
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
6.6%
(+.f64 re re)
43.0%
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
56.5%
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
53.0%
(sin.f64 re)
33.8%
(log1p.f64 (expm1.f64 re))
14.1%
(fabs.f64 re)
4.3%
(cbrt.f64 re)
24.2%
re
Compiler

Compiled 622 to 456 computations (26.7% saved)

localize227.0ms (3%)

Local Accuracy

Found 8 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 1/2 (pow.f64 im 2))
94.1%
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
100.0%
(sin.f64 re)
99.1%
(cbrt.f64 re)
100.0%
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.7%
(exp.f64 (log1p.f64 (sin.f64 re)))
99.5%
(log1p.f64 (sin.f64 re))
57.3%
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
Compiler

Compiled 102 to 50 computations (51% saved)

series124.0ms (1.6%)

Counts
7 → 72
Calls

27 calls:

TimeVariablePointExpression
56.0ms
re
@0
(cbrt.f64 re)
29.0ms
re
@inf
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
20.0ms
re
@-inf
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
12.0ms
im
@inf
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.0ms
re
@0
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)

rewrite45.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
460×add-sqr-sqrt
448×pow1
444×*-un-lft-identity
432×add-exp-log
430×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02355
148555
2720355
Stop Event
unsound
Counts
7 → 176
Calls
Call 1
Inputs
(-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)
(log1p.f64 (sin.f64 re))
(exp.f64 (log1p.f64 (sin.f64 re)))
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(cbrt.f64 re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 1/2 (pow.f64 im 2))
Outputs
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(*.f64 -1 (sin.f64 re))
(*.f64 (sin.f64 re) -1)
(*.f64 (sin.f64 re) (sin.f64 re))
(*.f64 (sin.f64 re) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) -1)
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (sin.f64 re))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
(pow.f64 (sin.f64 re) -1)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
(+.f64 -1 (log1p.f64 (sin.f64 re)))
(+.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(-.f64 (log1p.f64 (sin.f64 re)) -1)
(*.f64 -1 (log1p.f64 (sin.f64 re)))
(*.f64 (log1p.f64 (sin.f64 re)) -1)
(*.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (log1p.f64 (sin.f64 re)) -1)
(pow.f64 (log1p.f64 (sin.f64 re)) 1/3)
(sqrt.f64 (log1p.f64 (sin.f64 re)))
(fabs.f64 (log1p.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (sin.f64 re)))
(cbrt.f64 (log1p.f64 (sin.f64 re)))
(expm1.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(exp.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (log1p.f64 (sin.f64 re))) -1))
(+.f64 -1 (sin.f64 re))
(+.f64 (sin.f64 re) -1)
(-.f64 (sin.f64 re) -1)
(*.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))
(*.f64 (+.f64 -1 (sin.f64 re)) -1)
(*.f64 -1 (+.f64 -1 (sin.f64 re)))
(/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (-.f64 -1 (sin.f64 re)) (-.f64 -1 (sin.f64 re)))
(pow.f64 (+.f64 -1 (sin.f64 re)) -1)
(pow.f64 (+.f64 -1 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (+.f64 -1 (sin.f64 re)) 1/3)
(pow.f64 -1 (log1p.f64 (sin.f64 re)))
(sqrt.f64 (+.f64 -1 (sin.f64 re)))
(fabs.f64 (+.f64 -1 (sin.f64 re)))
(log.f64 (exp.f64 (+.f64 -1 (sin.f64 re))))
(log.f64 (+.f64 -1 (expm1.f64 (+.f64 -1 (sin.f64 re)))))
(cbrt.f64 (+.f64 -1 (sin.f64 re)))
(expm1.f64 (log.f64 (sin.f64 re)))
(log1p.f64 (expm1.f64 (+.f64 -1 (sin.f64 re))))
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(-.f64 (+.f64 -1 (sin.f64 re)) -1)
(-.f64 -1 (*.f64 -1 (cos.f64 re)))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) -1)
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (sin.f64 re))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
(pow.f64 (sin.f64 re) -1)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(*.f64 re re)
(*.f64 re -1)
(*.f64 -1 re)
(/.f64 re -1)
(pow.f64 re -1)
(pow.f64 re 1/3)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -1 (expm1.f64 re)))
re
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -1))
(exp.f64 (*.f64 (log.f64 re) 1/3))
(log1p.f64 (expm1.f64 re))
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(/.f64 re -1)
(pow.f64 re -1)
(pow.f64 re 1/3)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -1 (expm1.f64 re)))
(cbrt.f64 re)
re
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -1))
(exp.f64 (*.f64 (log.f64 re) 1/3))
(log1p.f64 (expm1.f64 re))
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
im

simplify107.0ms (1.4%)

Algorithm
egg-herbie
Rules
1202×fma-def
754×div-sub
736×associate-+l+
732×associate-+r+
642×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02523896
15683600
213563422
356463384
Stop Event
node limit
Counts
248 → 257
Calls
Call 1
Inputs
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
re
(+.f64 (*.f64 -1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) re))
(+.f64 (*.f64 -1/12 (pow.f64 re 4)) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (sin.f64 re)))
1
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(*.f64 -1 (sin.f64 re))
(*.f64 (sin.f64 re) -1)
(*.f64 (sin.f64 re) (sin.f64 re))
(*.f64 (sin.f64 re) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) -1)
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (sin.f64 re))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
(pow.f64 (sin.f64 re) -1)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
(+.f64 -1 (log1p.f64 (sin.f64 re)))
(+.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(-.f64 (log1p.f64 (sin.f64 re)) -1)
(*.f64 -1 (log1p.f64 (sin.f64 re)))
(*.f64 (log1p.f64 (sin.f64 re)) -1)
(*.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (log1p.f64 (sin.f64 re)) -1)
(pow.f64 (log1p.f64 (sin.f64 re)) 1/3)
(sqrt.f64 (log1p.f64 (sin.f64 re)))
(fabs.f64 (log1p.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (sin.f64 re)))
(cbrt.f64 (log1p.f64 (sin.f64 re)))
(expm1.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(exp.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (log1p.f64 (sin.f64 re))) -1))
(+.f64 -1 (sin.f64 re))
(+.f64 (sin.f64 re) -1)
(-.f64 (sin.f64 re) -1)
(*.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))
(*.f64 (+.f64 -1 (sin.f64 re)) -1)
(*.f64 -1 (+.f64 -1 (sin.f64 re)))
(/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (-.f64 -1 (sin.f64 re)) (-.f64 -1 (sin.f64 re)))
(pow.f64 (+.f64 -1 (sin.f64 re)) -1)
(pow.f64 (+.f64 -1 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (+.f64 -1 (sin.f64 re)) 1/3)
(pow.f64 -1 (log1p.f64 (sin.f64 re)))
(sqrt.f64 (+.f64 -1 (sin.f64 re)))
(fabs.f64 (+.f64 -1 (sin.f64 re)))
(log.f64 (exp.f64 (+.f64 -1 (sin.f64 re))))
(log.f64 (+.f64 -1 (expm1.f64 (+.f64 -1 (sin.f64 re)))))
(cbrt.f64 (+.f64 -1 (sin.f64 re)))
(expm1.f64 (log.f64 (sin.f64 re)))
(log1p.f64 (expm1.f64 (+.f64 -1 (sin.f64 re))))
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(-.f64 (+.f64 -1 (sin.f64 re)) -1)
(-.f64 -1 (*.f64 -1 (cos.f64 re)))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) -1)
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (sin.f64 re))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
(pow.f64 (sin.f64 re) -1)
(pow.f64 (sin.f64 re) 1/3)
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(exp.f64 (log.f64 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(*.f64 re re)
(*.f64 re -1)
(*.f64 -1 re)
(/.f64 re -1)
(pow.f64 re -1)
(pow.f64 re 1/3)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -1 (expm1.f64 re)))
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -1))
(exp.f64 (*.f64 (log.f64 re) 1/3))
(log1p.f64 (expm1.f64 re))
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(/.f64 re -1)
(pow.f64 re -1)
(pow.f64 re 1/3)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -1 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -1))
(exp.f64 (*.f64 (log.f64 re) 1/3))
(log1p.f64 (expm1.f64 re))
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
Outputs
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(fma.f64 -1/6 (pow.f64 re 3) re)
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) re))
(fma.f64 -1/6 (pow.f64 re 3) (fma.f64 1/120 (pow.f64 re 5) re))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (fma.f64 -1/6 (pow.f64 re 3) (*.f64 -1/5040 (pow.f64 re 7)))))
(+.f64 (fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) re)) (*.f64 -1/5040 (pow.f64 re 7)))
(fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) (fma.f64 -1/5040 (pow.f64 re 7) re)))
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
re
(+.f64 (*.f64 -1/2 (pow.f64 re 2)) re)
(fma.f64 -1/2 (*.f64 re re) re)
(fma.f64 re (*.f64 re -1/2) re)
(+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) re))
(fma.f64 1/6 (pow.f64 re 3) (fma.f64 -1/2 (*.f64 re re) re))
(fma.f64 (pow.f64 re 3) 1/6 (fma.f64 -1/2 (*.f64 re re) re))
(fma.f64 re (*.f64 re -1/2) (fma.f64 (pow.f64 re 3) 1/6 re))
(+.f64 (*.f64 -1/12 (pow.f64 re 4)) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) re)))
(fma.f64 -1/12 (pow.f64 re 4) (fma.f64 1/6 (pow.f64 re 3) (fma.f64 -1/2 (*.f64 re re) re)))
(fma.f64 -1/12 (pow.f64 re 4) (fma.f64 (pow.f64 re 3) 1/6 (fma.f64 -1/2 (*.f64 re re) re)))
(fma.f64 (pow.f64 re 3) 1/6 (fma.f64 -1/12 (pow.f64 re 4) (fma.f64 re (*.f64 re -1/2) re)))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
(log.f64 (+.f64 1 (sin.f64 re)))
(log1p.f64 (sin.f64 re))
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) 1)
(+.f64 re (fma.f64 -1/6 (pow.f64 re 3) 1))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1))
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (fma.f64 1/120 (pow.f64 re 5) 1))
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) (fma.f64 1/120 (pow.f64 re 5) re)) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 re 1/2))
(*.f64 1/2 (fma.f64 re (exp.f64 im) (/.f64 re (exp.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 3) -1/12)))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 re 1/2 (*.f64 (pow.f64 re 3) -1/12)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 5) 1/240))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)) (*.f64 (pow.f64 re 3) -1/12)))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) -1/12) (fma.f64 re 1/2 (*.f64 (pow.f64 re 5) 1/240))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(fma.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 5) 1/240))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 7) -1/10080) (*.f64 (pow.f64 re 3) -1/12))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)) (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 re 1/2 (*.f64 (pow.f64 re 5) 1/240)) (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (sin.f64 re))
(fma.f64 (sin.f64 re) (*.f64 im (*.f64 im 1/2)) (sin.f64 re))
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) (sin.f64 re))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 (*.f64 1/24 (pow.f64 im 4)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 im (*.f64 im 1/2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (sin.f64 re)) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (*.f64 (*.f64 1/24 (pow.f64 im 4)) (sin.f64 re))))
(+.f64 (sin.f64 re) (fma.f64 (sin.f64 re) (*.f64 im (*.f64 im 1/2)) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6))))))
(+.f64 (fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) (sin.f64 re)) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(*.f64 re (*.f64 im (*.f64 im 1/2)))
(*.f64 re (*.f64 1/2 (*.f64 im im)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(*.f64 re (*.f64 im (*.f64 im 1/2)))
(*.f64 re (*.f64 1/2 (*.f64 im im)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(fma.f64 1/2 (*.f64 re (*.f64 im im)) re)
(fma.f64 re (*.f64 im (*.f64 im 1/2)) re)
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -2 (sin.f64 re))
(+.f64 (sin.f64 re) -2)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 -2 (sin.f64 re))
(+.f64 (sin.f64 re) -2)
(+.f64 (sin.f64 re) (sin.f64 re))
(*.f64 2 (sin.f64 re))
(*.f64 (sin.f64 re) 2)
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(fma.f64 (sin.f64 re) (+.f64 (sin.f64 re) -1) (sin.f64 re))
(*.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(fma.f64 (sin.f64 re) (+.f64 (sin.f64 re) -1) (sin.f64 re))
(*.f64 (sin.f64 re) (sin.f64 re))
(*.f64 -1 (sin.f64 re))
(neg.f64 (sin.f64 re))
(*.f64 (sin.f64 re) -1)
(neg.f64 (sin.f64 re))
(*.f64 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) (+.f64 (sin.f64 re) -1) (sin.f64 re))
(*.f64 (sin.f64 re) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (neg.f64 (sin.f64 re)) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) -2 1))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (neg.f64 (sin.f64 re)) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) -1)
(neg.f64 (sin.f64 re))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (sin.f64 re))
1
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (cbrt.f64 (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 -1 (*.f64 2 (sin.f64 re))) (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2)) (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (*.f64 (fma.f64 (sin.f64 re) 2 -1) (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (sqrt.f64 (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 1 (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 1 (fma.f64 (sin.f64 re) 2 -1))
(/.f64 -1 (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 1 (fma.f64 (sin.f64 re) 2 -1))
(/.f64 -1 (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (neg.f64 (sin.f64 re)) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
1
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(neg.f64 (sin.f64 re))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(neg.f64 (sin.f64 re))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (-.f64 (cos.f64 0) (cos.f64 re)) -1)
(-.f64 -1 (/.f64 (cos.f64 re) -1))
(+.f64 -1 (cos.f64 re))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
1
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
1
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
1
(pow.f64 (sin.f64 re) -1)
(/.f64 1 (sin.f64 re))
(pow.f64 (sin.f64 re) 1/3)
(cbrt.f64 (sin.f64 re))
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (log.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(/.f64 1 (sin.f64 re))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(sin.f64 re)
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 (+.f64 (sin.f64 re) -1) (+.f64 (sin.f64 re) -1) -1)
(*.f64 (sin.f64 re) (-.f64 (+.f64 (sin.f64 re) -1) 1))
(*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(neg.f64 (sin.f64 re))
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
0
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
0
(+.f64 -1 (log1p.f64 (sin.f64 re)))
(+.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(*.f64 2 (log1p.f64 (sin.f64 re)))
(-.f64 (log1p.f64 (sin.f64 re)) -1)
(+.f64 (log1p.f64 (sin.f64 re)) 1)
(+.f64 1 (log1p.f64 (sin.f64 re)))
(*.f64 -1 (log1p.f64 (sin.f64 re)))
(neg.f64 (log1p.f64 (sin.f64 re)))
(*.f64 (log1p.f64 (sin.f64 re)) -1)
(neg.f64 (log1p.f64 (sin.f64 re)))
(*.f64 (log1p.f64 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (log1p.f64 (sin.f64 re)) -1)
(/.f64 1 (log1p.f64 (sin.f64 re)))
(pow.f64 (log1p.f64 (sin.f64 re)) 1/3)
(cbrt.f64 (log1p.f64 (sin.f64 re)))
(sqrt.f64 (log1p.f64 (sin.f64 re)))
(fabs.f64 (log1p.f64 (sin.f64 re)))
(log.f64 (+.f64 -1 (sin.f64 re)))
(log.f64 (+.f64 (sin.f64 re) -1))
(cbrt.f64 (log1p.f64 (sin.f64 re)))
(expm1.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(exp.f64 (log.f64 (log1p.f64 (sin.f64 re))))
(log1p.f64 (sin.f64 re))
(exp.f64 (*.f64 (log.f64 (log1p.f64 (sin.f64 re))) -1))
(/.f64 1 (log1p.f64 (sin.f64 re)))
(+.f64 -1 (sin.f64 re))
(+.f64 (sin.f64 re) -1)
(+.f64 (sin.f64 re) -1)
(-.f64 (sin.f64 re) -1)
(+.f64 (sin.f64 re) 1)
(*.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))
(*.f64 (+.f64 (sin.f64 re) -1) (+.f64 (sin.f64 re) -1))
(*.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 1 (neg.f64 (sin.f64 re)))
(-.f64 1 (sin.f64 re))
(*.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 1 (neg.f64 (sin.f64 re)))
(-.f64 1 (sin.f64 re))
(/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (-.f64 (sin.f64 re) (sin.f64 re))))
(/.f64 (+.f64 (sin.f64 re) -1) -1)
(/.f64 (-.f64 -1 (sin.f64 re)) (-.f64 -1 (sin.f64 re)))
1
(pow.f64 (+.f64 -1 (sin.f64 re)) -1)
(/.f64 1 (+.f64 (sin.f64 re) -1))
(pow.f64 (+.f64 -1 (sin.f64 re)) (log1p.f64 (sin.f64 re)))
(pow.f64 (+.f64 (sin.f64 re) -1) (log1p.f64 (sin.f64 re)))
(pow.f64 (+.f64 -1 (sin.f64 re)) 1/3)
(cbrt.f64 (+.f64 (sin.f64 re) -1))
(pow.f64 -1 (log1p.f64 (sin.f64 re)))
(sqrt.f64 (+.f64 -1 (sin.f64 re)))
(sqrt.f64 (+.f64 (sin.f64 re) -1))
(fabs.f64 (+.f64 -1 (sin.f64 re)))
(fabs.f64 (+.f64 (sin.f64 re) -1))
(log.f64 (exp.f64 (+.f64 -1 (sin.f64 re))))
(+.f64 (sin.f64 re) -1)
(log.f64 (+.f64 -1 (expm1.f64 (+.f64 -1 (sin.f64 re)))))
(log.f64 (+.f64 -1 (expm1.f64 (+.f64 (sin.f64 re) -1))))
(cbrt.f64 (+.f64 -1 (sin.f64 re)))
(cbrt.f64 (+.f64 (sin.f64 re) -1))
(expm1.f64 (log.f64 (sin.f64 re)))
(+.f64 (sin.f64 re) -1)
(log1p.f64 (expm1.f64 (+.f64 -1 (sin.f64 re))))
(+.f64 (sin.f64 re) -1)
(+.f64 (+.f64 -1 (sin.f64 re)) -1)
(+.f64 -2 (sin.f64 re))
(+.f64 (sin.f64 re) -2)
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(+.f64 -2 (sin.f64 re))
(+.f64 (sin.f64 re) -2)
(+.f64 (sin.f64 re) (sin.f64 re))
(*.f64 2 (sin.f64 re))
(*.f64 (sin.f64 re) 2)
(+.f64 (*.f64 (sin.f64 re) (+.f64 -1 (sin.f64 re))) (sin.f64 re))
(fma.f64 (sin.f64 re) (+.f64 (sin.f64 re) -1) (sin.f64 re))
(*.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(fma.f64 (sin.f64 re) (+.f64 (sin.f64 re) -1) (sin.f64 re))
(*.f64 (sin.f64 re) (sin.f64 re))
(-.f64 (+.f64 -1 (sin.f64 re)) -1)
(sin.f64 re)
(-.f64 -1 (*.f64 -1 (cos.f64 re)))
(/.f64 (-.f64 (cos.f64 0) (cos.f64 re)) -1)
(-.f64 -1 (/.f64 (cos.f64 re) -1))
(+.f64 -1 (cos.f64 re))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))) (/.f64 -1 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) 2 -1))
(-.f64 (/.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re))
(-.f64 (/.f64 (+.f64 (sin.f64 re) -1) (sin.f64 re)) (sin.f64 re))
(/.f64 -1 (sin.f64 re))
(/.f64 -1 (/.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (neg.f64 (sin.f64 re)) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) -1)
(neg.f64 (sin.f64 re))
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (sin.f64 re))
1
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (cbrt.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (cbrt.f64 (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 -1 (*.f64 2 (sin.f64 re))) (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (*.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2)) (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (*.f64 (fma.f64 (sin.f64 re) 2 -1) (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 -1 (*.f64 2 (sin.f64 re)))))
(/.f64 (sin.f64 re) (sqrt.f64 (+.f64 -1 (*.f64 (sin.f64 re) 2))))
(/.f64 (sin.f64 re) (sqrt.f64 (fma.f64 (sin.f64 re) 2 -1)))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) (sin.f64 re)))
(/.f64 1 (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 1 (fma.f64 (sin.f64 re) 2 -1))
(/.f64 -1 (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 1 (fma.f64 (sin.f64 re) 2 -1))
(/.f64 -1 (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (*.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re)) -1))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (sin.f64 re)) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (neg.f64 (sin.f64 re)) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) -2 1))
(/.f64 (sin.f64 re) (+.f64 (sin.f64 re) (-.f64 (sin.f64 re) (sin.f64 re))))
1
(/.f64 (sin.f64 re) (+.f64 (+.f64 -1 (sin.f64 re)) (-.f64 -1 (+.f64 -1 (sin.f64 re)))))
(neg.f64 (sin.f64 re))
(/.f64 (sin.f64 re) (+.f64 -1 (-.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)))))
(neg.f64 (sin.f64 re))
(/.f64 (-.f64 (cos.f64 (-.f64 re re)) (cos.f64 re)) -1)
(/.f64 (-.f64 (cos.f64 0) (cos.f64 re)) -1)
(-.f64 -1 (/.f64 (cos.f64 re) -1))
(+.f64 -1 (cos.f64 re))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (+.f64 (+.f64 -1 (sin.f64 re)) (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 2 (sin.f64 re))))
(/.f64 (sin.f64 re) (+.f64 -1 (*.f64 (sin.f64 re) 2)))
(/.f64 (sin.f64 re) (fma.f64 (sin.f64 re) 2 -1))
(/.f64 (neg.f64 (sin.f64 re)) (neg.f64 (sin.f64 re)))
1
(/.f64 (-.f64 (sin.f64 re) (sin.f64 re)) (-.f64 (sin.f64 re) (sin.f64 re)))
1
(/.f64 (-.f64 -1 (+.f64 -1 (sin.f64 re))) (-.f64 -1 (+.f64 -1 (sin.f64 re))))
1
(pow.f64 (sin.f64 re) -1)
(/.f64 1 (sin.f64 re))
(pow.f64 (sin.f64 re) 1/3)
(cbrt.f64 (sin.f64 re))
(sqrt.f64 (sin.f64 re))
(fabs.f64 (sin.f64 re))
(log.f64 (exp.f64 (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 -1 (expm1.f64 (sin.f64 re))))
(cbrt.f64 (sin.f64 re))
(sin.f64 re)
(expm1.f64 (log1p.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (log.f64 (sin.f64 re)))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (sin.f64 re)) -1))
(/.f64 1 (sin.f64 re))
(log1p.f64 (expm1.f64 (sin.f64 re)))
(sin.f64 re)
(fma.f64 (+.f64 -1 (sin.f64 re)) (+.f64 -1 (sin.f64 re)) -1)
(fma.f64 (+.f64 (sin.f64 re) -1) (+.f64 (sin.f64 re) -1) -1)
(*.f64 (sin.f64 re) (-.f64 (+.f64 (sin.f64 re) -1) 1))
(*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))
(fma.f64 -1 (+.f64 -1 (sin.f64 re)) -1)
(neg.f64 (sin.f64 re))
(fma.f64 -1 (sin.f64 re) (sin.f64 re))
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
0
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
0
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(+.f64 (exp.f64 (log1p.f64 re)) 1)
(+.f64 1 (exp.f64 (log1p.f64 re)))
(*.f64 re re)
(*.f64 re -1)
(neg.f64 re)
(*.f64 -1 re)
(neg.f64 re)
(/.f64 re -1)
(pow.f64 re -1)
(/.f64 1 re)
(pow.f64 re 1/3)
(cbrt.f64 re)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
re
(log.f64 (exp.f64 re))
re
(log.f64 (+.f64 -1 (expm1.f64 re)))
(expm1.f64 (log1p.f64 re))
re
(exp.f64 (log.f64 re))
re
(exp.f64 (*.f64 (log.f64 re) -1))
(/.f64 1 re)
(exp.f64 (*.f64 (log.f64 re) 1/3))
(cbrt.f64 re)
(log1p.f64 (expm1.f64 re))
re
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -1)
(+.f64 (exp.f64 (log1p.f64 re)) 1)
(+.f64 1 (exp.f64 (log1p.f64 re)))
(/.f64 re -1)
(pow.f64 re -1)
(/.f64 1 re)
(pow.f64 re 1/3)
(cbrt.f64 re)
(pow.f64 re 1/6)
(sqrt.f64 re)
(fabs.f64 re)
re
(log.f64 (exp.f64 re))
re
(log.f64 (+.f64 -1 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
re
(exp.f64 (log.f64 re))
re
(exp.f64 (*.f64 (log.f64 re) -1))
(/.f64 1 re)
(exp.f64 (*.f64 (log.f64 re) 1/3))
(cbrt.f64 re)
(log1p.f64 (expm1.f64 re))
re
-1
-1/2
0
(fma.f64 (sin.f64 re) -1 (sin.f64 re))
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512

eval77.0ms (1%)

Compiler

Compiled 4784 to 2376 computations (50.3% saved)

prune117.0ms (1.5%)

Pruning

23 alts after pruning (17 fresh and 6 done)

PrunedKeptTotal
New3058313
Fresh2911
Picked325
Done044
Total31023333
Accurracy
100.0%
Counts
333 → 23
Alt Table
Click to see full alt table
StatusAccuracyProgram
2.6%
(fma.f64 re -512 re)
13.4%
(pow.f64 re -512)
5.5%
(/.f64 re (+.f64 re (-.f64 re re)))
2.7%
(/.f64 re -512)
3.9%
(/.f64 1 re)
55.3%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
32.7%
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
45.7%
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
43.0%
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
6.6%
(+.f64 re re)
43.0%
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
5.8%
(*.f64 (+.f64 1 512) re)
6.6%
(*.f64 (+.f64 1 -1/2) re)
22.2%
(*.f64 (*.f64 im im) (*.f64 re 1/2))
56.5%
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
9.6%
(*.f64 re re)
53.0%
(sin.f64 re)
2.6%
(neg.f64 re)
33.8%
(log1p.f64 (expm1.f64 re))
24.2%
re
2.6%
(fma.f64 re -512 re)
13.4%
(pow.f64 re -512)
5.5%
(/.f64 re (+.f64 re (-.f64 re re)))
2.7%
(/.f64 re -512)
3.9%
(/.f64 1 re)
55.3%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
74.6%
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
32.7%
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
45.7%
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
43.0%
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
6.6%
(+.f64 re re)
43.0%
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
5.8%
(*.f64 (+.f64 1 512) re)
6.6%
(*.f64 (+.f64 1 -1/2) re)
22.2%
(*.f64 (*.f64 im im) (*.f64 re 1/2))
56.5%
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
9.6%
(*.f64 re re)
53.0%
(sin.f64 re)
2.6%
(neg.f64 re)
33.8%
(log1p.f64 (expm1.f64 re))
24.2%
re
Compiler

Compiled 658 to 480 computations (27.1% saved)

localize242.0ms (3.2%)

Local Accuracy

Found 9 expressions with local accuracy:

NewAccuracyProgram
100.0%
(sin.f64 re)
100.0%
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
94.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
100.0%
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
87.6%
(*.f64 re (*.f64 im im))
100.0%
(sin.f64 re)
100.0%
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
99.3%
(-.f64 (sin.f64 re) -1)
57.3%
(-.f64 (-.f64 (sin.f64 re) -1) 1)
Compiler

Compiled 127 to 58 computations (54.3% saved)

series5.0ms (0.1%)

Counts
6 → 120
Calls

30 calls:

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

rewrite51.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
544×add-sqr-sqrt
532×pow1
532×*-un-lft-identity
504×add-exp-log
504×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02466
153366
Stop Event
node limit
Counts
6 → 108
Calls
Call 1
Inputs
(-.f64 (-.f64 (sin.f64 re) -1) 1)
(-.f64 (sin.f64 re) -1)
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 re (*.f64 im im))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
Outputs
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
re
im

simplify98.0ms (1.3%)

Algorithm
egg-herbie
Rules
1548×unswap-sqr
1324×associate-+r+
1224×associate-+l+
1198×fma-def
1012×fma-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01113052
13002848
29522740
337282708
469292692
Stop Event
node limit
Counts
228 → 118
Calls
Call 1
Inputs
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
1
(+.f64 1 re)
(+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(+.f64 1 (sin.f64 re))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
re
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))))))
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
Outputs
re
(+.f64 re (*.f64 -1/6 (pow.f64 re 3)))
(fma.f64 -1/6 (pow.f64 re 3) re)
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) re))
(fma.f64 -1/6 (pow.f64 re 3) (fma.f64 1/120 (pow.f64 re 5) re))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 re (fma.f64 -1/6 (pow.f64 re 3) (*.f64 -1/5040 (pow.f64 re 7)))))
(+.f64 (fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) re)) (*.f64 -1/5040 (pow.f64 re 7)))
(fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) (fma.f64 -1/5040 (pow.f64 re 7) re)))
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
(sin.f64 re)
1
(+.f64 1 re)
(+.f64 re 1)
(+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (+.f64 re 1) (*.f64 -1/6 (pow.f64 re 3)))
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) 1)
(fma.f64 -1/6 (pow.f64 re 3) (+.f64 re 1))
(+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 1 (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(fma.f64 1/120 (pow.f64 re 5) (+.f64 (+.f64 re 1) (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (fma.f64 1/120 (pow.f64 re 5) 1))
(fma.f64 1/120 (pow.f64 re 5) (fma.f64 -1/6 (pow.f64 re 3) (+.f64 re 1)))
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(+.f64 1 (sin.f64 re))
(+.f64 (sin.f64 re) 1)
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 1/2 (fma.f64 re (exp.f64 im) (/.f64 re (exp.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 3) -1/12)))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/240 (pow.f64 re 5)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 5) 1/240))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) -1/12) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 5) 1/240) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(fma.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/240 (pow.f64 re 5)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 re 1/2) (*.f64 (pow.f64 re 5) 1/240))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 7) -1/10080) (*.f64 (pow.f64 re 3) -1/12))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)) (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12)) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (sin.f64 re))
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 im im) 1))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 4) 1/24))))
(fma.f64 (pow.f64 im 4) (*.f64 (sin.f64 re) 1/24) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)))
(*.f64 (sin.f64 re) (+.f64 (fma.f64 1/2 (*.f64 im im) 1) (*.f64 1/24 (pow.f64 im 4))))
(*.f64 (sin.f64 re) (+.f64 1 (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (*.f64 im im)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 (*.f64 (sin.f64 re) 1/720) (pow.f64 im 6) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 4) 1/24)))))
(+.f64 (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (+.f64 (*.f64 1/2 (*.f64 im im)) (*.f64 1/24 (pow.f64 im 4))) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (*.f64 im im))) (*.f64 1/720 (pow.f64 im 6)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (sin.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1) re))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
re
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 re (*.f64 1/2 (*.f64 im im)))
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 1/2 (*.f64 re (*.f64 im im)))
(*.f64 re (*.f64 1/2 (*.f64 im im)))
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(*.f64 re (fma.f64 1/2 (*.f64 im im) 1))
(*.f64 re (fma.f64 im (*.f64 1/2 im) 1))
(fma.f64 re (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (*.f64 im im)) (*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(fma.f64 re (fma.f64 1/2 (*.f64 im im) 1) (*.f64 (pow.f64 re 3) (*.f64 (*.f64 im im) -1/12)))
(fma.f64 (pow.f64 re 3) (*.f64 im (*.f64 im -1/12)) (*.f64 re (fma.f64 im (*.f64 1/2 im) 1)))
(+.f64 re (*.f64 (*.f64 im im) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2))))
(fma.f64 (*.f64 im im) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2)) re)
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2)))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (*.f64 im im)) (fma.f64 (+.f64 1 (*.f64 1/2 (*.f64 im im))) re (*.f64 1/240 (*.f64 (pow.f64 re 5) (*.f64 im im)))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (*.f64 im im)) (fma.f64 re (fma.f64 1/2 (*.f64 im im) 1) (*.f64 1/240 (*.f64 (pow.f64 re 5) (*.f64 im im)))))
(fma.f64 re (fma.f64 im (*.f64 1/2 im) 1) (*.f64 (*.f64 im im) (+.f64 (*.f64 (pow.f64 re 5) 1/240) (*.f64 (pow.f64 re 3) -1/12))))
(+.f64 re (*.f64 (*.f64 im im) (+.f64 (*.f64 (pow.f64 re 5) 1/240) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2)))))
(fma.f64 (*.f64 im im) (+.f64 (*.f64 (pow.f64 re 5) 1/240) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/2))) re)
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (*.f64 im im)) (fma.f64 (+.f64 1 (*.f64 1/2 (*.f64 im im))) re (fma.f64 1/240 (*.f64 (pow.f64 re 5) (*.f64 im im)) (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (*.f64 im im))))))
(fma.f64 -1/12 (*.f64 (pow.f64 re 3) (*.f64 im im)) (fma.f64 re (fma.f64 1/2 (*.f64 im im) 1) (*.f64 (*.f64 im im) (+.f64 (*.f64 (pow.f64 re 5) 1/240) (*.f64 (pow.f64 re 7) -1/10080)))))
(fma.f64 re (fma.f64 im (*.f64 1/2 im) 1) (*.f64 (*.f64 im im) (+.f64 (*.f64 (pow.f64 re 3) -1/12) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 (pow.f64 re 7) -1/10080)))))
(+.f64 re (*.f64 (*.f64 im im) (+.f64 (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12)) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)))))
(fma.f64 (*.f64 im im) (+.f64 (fma.f64 (pow.f64 re 7) -1/10080 (*.f64 (pow.f64 re 3) -1/12)) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2))) re)
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
re
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) re)
(fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) re)
(fma.f64 (sin.f64 re) (*.f64 1/2 (*.f64 im im)) re)
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27
-2
-1
-1/2
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
27

eval79.0ms (1%)

Compiler

Compiled 4268 to 2317 computations (45.7% saved)

prune50.0ms (0.7%)

Pruning

26 alts after pruning (19 fresh and 7 done)

PrunedKeptTotal
New2578265
Fresh11112
Picked235
Done246
Total26226288
Accurracy
100.0%
Counts
288 → 26
Alt Table
Click to see full alt table
StatusAccuracyProgram
2.6%
(fma.f64 re -512 re)
13.4%
(pow.f64 re -512)
5.5%
(/.f64 re (+.f64 re (-.f64 re re)))
2.7%
(/.f64 re -512)
3.9%
(/.f64 1 re)
32.7%
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
46.7%
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
6.6%
(+.f64 re re)
3.2%
(+.f64 re 64)
3.1%
(+.f64 re -4)
74.6%
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
5.8%
(*.f64 (+.f64 1 512) re)
6.6%
(*.f64 (+.f64 1 -1/2) re)
22.2%
(*.f64 (*.f64 im im) (*.f64 re 1/2))
56.5%
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
25.1%
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
58.3%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
28.1%
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
43.0%
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
9.6%
(*.f64 re re)
16.4%
(*.f64 im (*.f64 (*.f64 1/2 im) re))
53.0%
(sin.f64 re)
2.6%
(neg.f64 re)
33.8%
(log1p.f64 (expm1.f64 re))
24.2%
re
Compiler

Compiled 486 to 300 computations (38.3% saved)

regimes113.0ms (1.5%)

Counts
39 → 1
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (-.f64 (-.f64 (sin.f64 re) -1) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(*.f64 (*.f64 1/2 (-.f64 (exp.f64 (log1p.f64 (sin.f64 re))) 1)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

6 calls:

27.0ms
(sin.f64 re)
21.0ms
im
19.0ms
(*.f64 1/2 (sin.f64 re))
18.0ms
re
13.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
100.0%1(*.f64 1/2 (sin.f64 re))
100.0%1(sin.f64 re)
100.0%1(+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
Compiler

Compiled 315 to 174 computations (44.8% saved)

regimes296.0ms (3.9%)

Counts
34 → 3
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
Outputs
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

4 calls:

107.0ms
(*.f64 1/2 (sin.f64 re))
84.0ms
re
49.0ms
im
46.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
87.3%3re
93.4%3im
87.7%3(*.f64 1/2 (sin.f64 re))
87.7%3(sin.f64 re)
Compiler

Compiled 224 to 126 computations (43.8% saved)

regimes203.0ms (2.7%)

Counts
31 → 5
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(log1p.f64 (expm1.f64 re))
(*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

4 calls:

68.0ms
im
43.0ms
re
43.0ms
(*.f64 1/2 (sin.f64 re))
40.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
76.5%3re
76.5%3(*.f64 1/2 (sin.f64 re))
76.5%3(sin.f64 re)
86.1%5im
Compiler

Compiled 187 to 110 computations (41.2% saved)

regimes70.0ms (0.9%)

Counts
30 → 4
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
Outputs
(*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

1 calls:

64.0ms
im
Results
AccuracySegmentsBranch
82.9%4im
Compiler

Compiled 164 to 92 computations (43.9% saved)

regimes61.0ms (0.8%)

Counts
29 → 4
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
Outputs
(sin.f64 re)
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(log1p.f64 (expm1.f64 re))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

1 calls:

55.0ms
im
Results
AccuracySegmentsBranch
82.8%4im
Compiler

Compiled 155 to 87 computations (43.9% saved)

regimes64.0ms (0.8%)

Counts
26 → 4
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
Outputs
(sin.f64 re)
(+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im)))
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

1 calls:

59.0ms
im
Results
AccuracySegmentsBranch
82.1%4im
Compiler

Compiled 141 to 80 computations (43.3% saved)

regimes50.0ms (0.7%)

Counts
25 → 4
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
(*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) re)
(+.f64 re (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))
Outputs
(sin.f64 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))
Calls

1 calls:

46.0ms
im
Results
AccuracySegmentsBranch
81.6%4im
Compiler

Compiled 126 to 71 computations (43.7% saved)

regimes168.0ms (2.2%)

Counts
22 → 3
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
Outputs
(sin.f64 re)
(+.f64 re (*.f64 (pow.f64 re 3) -1/6))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
Calls

3 calls:

68.0ms
re
66.0ms
(sin.f64 re)
30.0ms
im
Results
AccuracySegmentsBranch
67.6%7re
67.5%7(sin.f64 re)
75.3%3im
Compiler

Compiled 106 to 62 computations (41.5% saved)

regimes42.0ms (0.6%)

Counts
21 → 3
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
(pow.f64 re -512)
(+.f64 (sin.f64 re) -512)
(fma.f64 re -512 re)
Outputs
(sin.f64 re)
(pow.f64 re -512)
(*.f64 (*.f64 im im) (*.f64 re 1/2))
Calls

1 calls:

38.0ms
im
Results
AccuracySegmentsBranch
74.4%3im
Compiler

Compiled 92 to 52 computations (43.5% saved)

regimes21.0ms (0.3%)

Counts
18 → 2
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
(sin.f64 re)
Outputs
(sin.f64 re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
Calls

1 calls:

17.0ms
im
Results
AccuracySegmentsBranch
71.7%2im
Compiler

Compiled 81 to 46 computations (43.2% saved)

regimes39.0ms (0.5%)

Counts
17 → 2
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
(+.f64 re (*.f64 1/2 (*.f64 re (*.f64 im im))))
(cbrt.f64 re)
(fabs.f64 re)
Outputs
(*.f64 re re)
(*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im))))
Calls

2 calls:

26.0ms
re
8.0ms
im
Results
AccuracySegmentsBranch
45.7%2re
43.0%1im
Compiler

Compiled 82 to 47 computations (42.7% saved)

regimes47.0ms (0.6%)

Counts
13 → 2
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
(*.f64 (*.f64 im im) (*.f64 re 1/2))
(/.f64 re (+.f64 re (-.f64 re re)))
Outputs
re
(*.f64 (*.f64 im im) (*.f64 re 1/2))
Calls

2 calls:

30.0ms
re
14.0ms
im
Results
AccuracySegmentsBranch
42.9%2im
35.1%4re
Compiler

Compiled 60 to 36 computations (40% saved)

regimes52.0ms (0.7%)

Counts
11 → 2
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
(*.f64 im (*.f64 (*.f64 1/2 im) re))
Outputs
re
(*.f64 im (*.f64 (*.f64 1/2 im) re))
Calls

1 calls:

50.0ms
im
Results
AccuracySegmentsBranch
37.1%2im
Compiler

Compiled 43 to 27 computations (37.2% saved)

regimes33.0ms (0.4%)

Counts
10 → 2
Calls
Call 1
Inputs
re
(neg.f64 re)
(*.f64 re re)
(+.f64 re -4)
(+.f64 re 64)
(+.f64 re re)
(/.f64 1 re)
(/.f64 re -512)
(*.f64 (+.f64 1 -1/2) re)
(*.f64 (+.f64 1 512) re)
Outputs
re
(*.f64 re re)
Calls

2 calls:

19.0ms
re
12.0ms
im
Results
AccuracySegmentsBranch
30.5%3re
30.4%2im
Compiler

Compiled 39 to 25 computations (35.9% saved)

regimes8.0ms (0.1%)

Accuracy

Total -14.6b remaining (-30.1%)

Threshold costs -14.6b (-30.1%)

Counts
2 → 1
Calls
Call 1
Inputs
re
(neg.f64 re)
Outputs
re
Calls

2 calls:

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

Compiled 11 to 7 computations (36.4% saved)

bsearch46.0ms (0.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
1.0128551267803953e+149
2.333986985252666e+151
21.0ms
2.4910265840262235e-5
9.215492315965691e-5
Results
12.0ms72×body256infinite
10.0ms22×body1024valid
8.0ms25×body1024infinite
7.0ms46×body256valid
3.0ms15×body512infinite
3.0ms12×body512valid
Compiler

Compiled 312 to 236 computations (24.4% saved)

bsearch160.0ms (2.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
43.0ms
2.333986985252666e+151
1.3657274179653269e+157
26.0ms
1.2459920426250981e+143
1.6334952985757408e+145
50.0ms
8.679427186549368e+112
1.5021401854899243e+114
41.0ms
9.215492315965691e-5
216.37910026140983
Results
58.0ms91×body1024infinite
44.0ms227×body256infinite
20.0ms35×body1024valid
14.0ms92×body256valid
11.0ms50×body512infinite
4.0ms17×body512valid
Compiler

Compiled 726 to 590 computations (18.7% saved)

bsearch123.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
59.0ms
1.0128551267803953e+149
2.333986985252666e+151
29.0ms
8.679427186549368e+112
1.5021401854899243e+114
34.0ms
150679897.59147745
188594248613.4914
Results
67.0ms215×body256infinite
32.0ms93×body1024infinite
18.0ms44×body512infinite
Compiler

Compiled 546 to 408 computations (25.3% saved)

bsearch83.0ms (1.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
33.0ms
1.0128551267803953e+149
2.333986985252666e+151
27.0ms
8.679427186549368e+112
1.5021401854899243e+114
23.0ms
2.4910265840262235e-5
9.215492315965691e-5
Results
27.0ms55×body1024infinite
19.0ms140×body256infinite
10.0ms48×body256valid
9.0ms24×body1024valid
7.0ms29×body512infinite
2.0msbody512valid
Compiler

Compiled 421 to 317 computations (24.7% saved)

bsearch68.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
1.0128551267803953e+149
2.333986985252666e+151
21.0ms
9.630489224188717e+111
8.679427186549368e+112
22.0ms
2.4910265840262235e-5
9.215492315965691e-5
Results
18.0ms54×body1024infinite
18.0ms126×body256infinite
11.0ms28×body1024valid
6.0ms28×body512infinite
6.0ms41×body256valid
4.0ms11×body512valid
Compiler

Compiled 449 to 325 computations (27.6% saved)

bsearch83.0ms (1.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
28.0ms
1.0128551267803953e+149
2.333986985252666e+151
27.0ms
2.177783736464695e+96
2.904550546310984e+98
28.0ms
188594248613.4914
17354637624245.549
Results
38.0ms201×body256infinite
28.0ms88×body1024infinite
13.0ms47×body512infinite
Compiler

Compiled 411 to 309 computations (24.8% saved)

bsearch56.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
26.0ms
2.177783736464695e+96
2.904550546310984e+98
29.0ms
188594248613.4914
17354637624245.549
Results
28.0ms69×body1024infinite
20.0ms133×body256infinite
5.0ms22×body512infinite
Compiler

Compiled 264 to 204 computations (22.7% saved)

bsearch62.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
30.0ms
4.467302837481794e+102
1.6959557774103464e+106
32.0ms
150679897.59147745
188594248613.4914
Results
27.0ms164×body256infinite
25.0ms63×body1024infinite
7.0ms29×body512infinite
Compiler

Compiled 235 to 183 computations (22.1% saved)

bsearch37.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
37.0ms
2.4910265840262235e-5
9.215492315965691e-5
Results
27.0ms26×body1024valid
7.0ms48×body256valid
1.0msbody512valid
Compiler

Compiled 104 to 80 computations (23.1% saved)

bsearch26.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
26.0ms
-8.716082114261514e+121
-1.710729857782316e+121
Results
14.0ms54×body512infinite
10.0ms42×body512valid
Compiler

Compiled 127 to 93 computations (26.8% saved)

bsearch36.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
36.0ms
9.215492315965691e-5
216.37910026140983
Results
15.0ms96×body256valid
15.0ms32×body1024valid
4.0ms16×body512valid
Compiler

Compiled 145 to 105 computations (27.6% saved)

bsearch36.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
35.0ms
9.215492315965691e-5
216.37910026140983
Results
15.0ms33×body1024valid
14.0ms94×body256valid
4.0ms17×body512valid
Compiler

Compiled 145 to 105 computations (27.6% saved)

bsearch36.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
36.0ms
23257748811933405000.0
1.6948905402076983e+30
Results
16.0ms40×body1024infinite
15.0ms103×body256infinite
4.0ms17×body512infinite
Compiler

Compiled 119 to 85 computations (28.6% saved)

simplify25.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0112985
1137985
2139985
3140985
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 6640827866535439/73786976294838206464) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))
(if (<=.f64 im 78) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 1500000000000000023339124194200264536402302095381592150054655870646250671747133554897478084872571171514309421301760) (*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2300000000000000141260422366173006683865356488477334763577628079435814062024134211113724413822792296496695919762194082517800192834608807274348544) (log1p.f64 (expm1.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))))
(if (<=.f64 im 155000000) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 102000000000000002270576296700309214841763488460204942876582046358073932061858396236138822021139815670320908468224) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 430000000000000034031182995458391555091604439646323483263619235750413981222977532528356207655669442794683413561344) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 50000000000000000777970806473342151213410069846053071668488529021541689058237785163249269495752372383810314043392) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 (*.f64 1/2 im) re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 220000000000) (sin.f64 re) (if (<=.f64 im 8199999999999999958295384929408143107284784714789002604269957700077742082276956794560993871003648) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 (*.f64 1/2 im) re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 190000000000) (sin.f64 re) (if (<=.f64 im 57999999999999997437705358936173725754707894306195593270914432285162198633149700183558564331126784) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (*.f64 im im) (*.f64 re 1/2))))
(if (<=.f64 im 155000000) (sin.f64 re) (if (<=.f64 im 160000000000000000306508013717546997794552820362430721784448562335900691872638200953797783217308851765248) (pow.f64 re -512) (*.f64 (*.f64 im im) (*.f64 re 1/2))))
(if (<=.f64 im 4574792530279969/73786976294838206464) (sin.f64 re) (*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 re -34000000000000001040241885803956473884855048035063495215837784478457104900524206205994997853983349004176301388750884175872) (*.f64 re re) (*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 (*.f64 im im) (*.f64 re 1/2)))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 im (*.f64 (*.f64 1/2 im) re)))
(if (<=.f64 im 23500000000000000000) re (*.f64 re re))
re
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 6640827866535439/73786976294838206464) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (*.f64 (sin.f64 re) (fma.f64 im (*.f64 1/2 im) 1)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))
(if (<=.f64 im 78) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 1500000000000000023339124194200264536402302095381592150054655870646250671747133554897478084872571171514309421301760) (*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 2300000000000000141260422366173006683865356488477334763577628079435814062024134211113724413822792296496695919762194082517800192834608807274348544) (log1p.f64 (expm1.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 (*.f64 1/2 3/2) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))))
(if (<=.f64 im 78) (*.f64 (sin.f64 re) (fma.f64 im (*.f64 1/2 im) 1)) (if (<=.f64 im 1500000000000000023339124194200264536402302095381592150054655870646250671747133554897478084872571171514309421301760) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 3/4) (if (<=.f64 im 2300000000000000141260422366173006683865356488477334763577628079435814062024134211113724413822792296496695919762194082517800192834608807274348544) (log1p.f64 (expm1.f64 re)) (if (<=.f64 im 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 3/4) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im))))))
(if (<=.f64 im 155000000) (*.f64 (fma.f64 im (*.f64 1/2 im) 1) (sin.f64 re)) (if (<=.f64 im 102000000000000002270576296700309214841763488460204942876582046358073932061858396236138822021139815670320908468224) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 155000000) (*.f64 (sin.f64 re) (fma.f64 im (*.f64 1/2 im) 1)) (if (<=.f64 im 102000000000000002270576296700309214841763488460204942876582046358073932061858396236138822021139815670320908468224) (+.f64 re (*.f64 (*.f64 im im) (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 430000000000000034031182995458391555091604439646323483263619235750413981222977532528356207655669442794683413561344) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 430000000000000034031182995458391555091604439646323483263619235750413981222977532528356207655669442794683413561344) (+.f64 re (*.f64 (*.f64 im im) (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (log1p.f64 (expm1.f64 re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 50000000000000000777970806473342151213410069846053071668488529021541689058237785163249269495752372383810314043392) (+.f64 re (*.f64 (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))) (*.f64 im im))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 (*.f64 1/2 im) re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 6640827866535439/73786976294838206464) (sin.f64 re) (if (<=.f64 im 50000000000000000777970806473342151213410069846053071668488529021541689058237785163249269495752372383810314043392) (+.f64 re (*.f64 (*.f64 im im) (*.f64 1/2 (+.f64 re (*.f64 (pow.f64 re 3) -1/6))))) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 re (*.f64 1/2 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 220000000000) (sin.f64 re) (if (<=.f64 im 8199999999999999958295384929408143107284784714789002604269957700077742082276956794560993871003648) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 (*.f64 1/2 im) re)) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 220000000000) (sin.f64 re) (if (<=.f64 im 8199999999999999958295384929408143107284784714789002604269957700077742082276956794560993871003648) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (if (<=.f64 im 23000000000000000831186479483371674044498424126705267359969171836350908073292455974573614376619452315976486135208287856467454554583604674494920440938496) (*.f64 im (*.f64 re (*.f64 1/2 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 im im)))))
(if (<=.f64 im 190000000000) (sin.f64 re) (if (<=.f64 im 57999999999999997437705358936173725754707894306195593270914432285162198633149700183558564331126784) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (*.f64 im im) (*.f64 re 1/2))))
(if (<=.f64 im 190000000000) (sin.f64 re) (if (<=.f64 im 57999999999999997437705358936173725754707894306195593270914432285162198633149700183558564331126784) (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (*.f64 1/2 re) (*.f64 im im))))
(if (<=.f64 im 155000000) (sin.f64 re) (if (<=.f64 im 160000000000000000306508013717546997794552820362430721784448562335900691872638200953797783217308851765248) (pow.f64 re -512) (*.f64 (*.f64 im im) (*.f64 re 1/2))))
(if (<=.f64 im 155000000) (sin.f64 re) (if (<=.f64 im 160000000000000000306508013717546997794552820362430721784448562335900691872638200953797783217308851765248) (pow.f64 re -512) (*.f64 (*.f64 1/2 re) (*.f64 im im))))
(if (<=.f64 im 4574792530279969/73786976294838206464) (sin.f64 re) (*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 re -34000000000000001040241885803956473884855048035063495215837784478457104900524206205994997853983349004176301388750884175872) (*.f64 re re) (*.f64 re (+.f64 1 (*.f64 1/2 (*.f64 im im)))))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 (*.f64 im im) (*.f64 re 1/2)))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 (*.f64 1/2 re) (*.f64 im im)))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 im (*.f64 (*.f64 1/2 im) re)))
(if (<=.f64 im 6530219459687219/4503599627370496) re (*.f64 im (*.f64 re (*.f64 1/2 im))))
(if (<=.f64 im 23500000000000000000) re (*.f64 re re))
re
Compiler

Compiled 403 to 265 computations (34.2% saved)

soundness1.2s (15.3%)

Rules
1568×unswap-sqr
1548×unswap-sqr
1548×unswap-sqr
1548×unswap-sqr
1548×unswap-sqr
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01435
13035
27435
314133
418933
525633
643833
7110433
8315833
9354033
10403133
11567033
12665033
020100
1435100
27143100
02355
148555
2720355
01431438
13851438
218031438
02523896
15683600
213563422
356463384
01113052
13002848
29522740
337282708
469292692
02523896
15683600
213563422
356463384
01113052
13002848
29522740
337282708
469292692
020100
1435100
27143100
01431438
13851438
218031438
01113052
13002848
29522740
337282708
469292692
020100
1435100
27143100
01340
127340
2427740
02355
148555
2720355
01113052
13002848
29522740
337282708
469292692
02466
153366
Stop Event
node limit
node limit
unsound
unsound
unsound
node limit
unsound
unsound
node limit
node limit
node limit
node limit
unsound
unsound
unsound
node limit
Compiler

Compiled 279 to 184 computations (34.1% saved)

end0.0ms (0%)

preprocess232.0ms (3%)

Remove

(abs im)

Compiler

Compiled 804 to 452 computations (43.8% saved)

Profiling

Loading profile data...