math.sin on complex, real part

Time bar (total: 7.7s)

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)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-exp, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation ival-mult, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation ival-sin, time spent: 0.0ms, 0.0% of total-time

sample1.7s (21.8%)

Results
726.0ms4224×0valid
823.0ms4031×0infinite
2.0ms5exit
0.0ms0infinite
Precisions
Click to see histograms. Total time spent on operations: 589.0ms
Operation ival-sin, time spent: 199.0ms, 34.0% of total-time
Operation ival-mult, time spent: 140.0ms, 24.0% of total-time
Operation ival-exp, time spent: 104.0ms, 18.0% of total-time
Operation ival-add, time spent: 71.0ms, 12.0% of total-time
Operation ival-sub, time spent: 54.0ms, 9.0% of total-time
Operation const, time spent: 16.0ms, 3.0% of total-time
Operation backward-pass, time spent: 5.0ms, 1.0% of total-time
Bogosity

preprocess284.0ms (3.7%)

Algorithm
egg-herbie
Rules
2434×fma-neg
1072×div-sub
1014×times-frac
834×distribute-lft-neg-in
790×fma-define
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-re
00-0-(*.f64 1/2 (sin.f64 re))
00-0-(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
00-0-1/2
00-0-im
00-0-(-.f64 0 im)
00-0-(+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
00-0-(exp.f64 (-.f64 0 im))
00-0-(sin.f64 re)
00-0-(exp.f64 im)
00-0-0
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
036316
1111308
2397308
3993298
42120294
54319294
67087294
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 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))))
(neg.f64 (*.f64 (*.f64 1/2 (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))))
(neg.f64 (*.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 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.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) (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 (+.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 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(neg.f64 (*.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 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 (neg.f64 im))) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (neg.f64 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.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 im)) (+.f64 (exp.f64 (-.f64 0 re)) (exp.f64 re)))
(*.f64 (*.f64 1/2 (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 (sin.f64 im) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re))))
Symmetry

(abs im)

(negabs re)

Compiler

Compiled 96 to 61 computations (36.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 56.0ms
Operation ival-exp, time spent: 14.0ms, 25.0% of total-time
Operation ival-sin, time spent: 14.0ms, 25.0% of total-time
Operation ival-mult, time spent: 11.0ms, 20.0% of total-time
Operation ival-sub, time spent: 9.0ms, 16.0% of total-time
Operation ival-add, time spent: 5.0ms, 9.0% of total-time
Operation const, time spent: 2.0ms, 4.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 24 to 15 computations (37.5% saved)

prune1.0ms (0%)

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

Compiled 13 to 10 computations (23.1% saved)

localize56.0ms (0.7%)

Localize:

Found 2 expressions with local error:

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

Compiled 36 to 14 computations (61.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 21.0ms
Operation ival-sin, time spent: 8.0ms, 37.0% of total-time
Operation ival-mult, time spent: 6.0ms, 28.0% of total-time
Operation ival-exp, time spent: 5.0ms, 23.0% of total-time
Operation ival-add, time spent: 1.0ms, 5.0% of total-time
Operation const, time spent: 1.0ms, 5.0% of total-time
Operation ival-neg, time spent: 1.0ms, 5.0% of total-time

series12.0ms (0.2%)

Counts
2 → 36
Calls

9 calls:

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

rewrite151.0ms (2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01669
120269
2330669
Stop Event
unsound
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
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) 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)))
(log1p.f64 (expm1.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))
(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))
-2
0
1/4
1/2
3/2
2

simplify68.0ms (0.9%)

Algorithm
egg-herbie
Rules
948×fma-define
940×distribute-lft-in
908×distribute-rgt-in
832×distribute-lft-out
710×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01122107
13281974
29381737
344651728
Stop Event
node limit
Counts
64 → 85
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/240 (*.f64 (pow.f64 re 5) (+.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/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.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 (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 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) (sin.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))))
(*.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)))))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (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) 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)))
(log1p.f64 (expm1.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))
(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))
-2
0
1/4
1/2
3/2
2
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 re (*.f64 1/2 (+.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 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (fma.f64 -1/12 (pow.f64 re 3) (*.f64 1/2 re)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.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)) (fma.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 (*.f64 -1/12 (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 1/2 re) (*.f64 1/240 (pow.f64 re 5)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 1/2 re) (fma.f64 -1/12 (pow.f64 re 3) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.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/240 (*.f64 (pow.f64 re 5) (+.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)) (fma.f64 -1/10080 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 7)) (fma.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/10080 (pow.f64 re 7)) (*.f64 1/240 (pow.f64 re 5)))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (fma.f64 1/240 (pow.f64 re 5) (*.f64 1/2 re)) (fma.f64 -1/12 (pow.f64 re 3) (*.f64 -1/10080 (pow.f64 re 7)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(+.f64 (sin.f64 re) (fma.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (sin.f64 re) (+.f64 1 (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) (sin.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))))
(+.f64 (sin.f64 re) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (fma.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))))
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re)))
(fma.f64 (sin.f64 re) (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (pow.f64 im 2))) (*.f64 (sin.f64 re) (fma.f64 1/720 (pow.f64 im 6) 1)))
(*.f64 (sin.f64 re) (+.f64 (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (pow.f64 im 2))) (fma.f64 1/720 (pow.f64 im 6) 1)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 (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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
2
(+.f64 2 (pow.f64 im 2))
(fma.f64 im im 2)
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2)))
(+.f64 2 (fma.f64 (pow.f64 im 4) 1/12 (pow.f64 im 2)))
(fma.f64 (pow.f64 im 4) 1/12 (fma.f64 im im 2))
(fma.f64 im im (fma.f64 (pow.f64 im 4) 1/12 2))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 2 (fma.f64 1/360 (pow.f64 im 6) (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(+.f64 2 (fma.f64 (pow.f64 im 6) 1/360 (fma.f64 (pow.f64 im 4) 1/12 (pow.f64 im 2))))
(fma.f64 (pow.f64 im 6) 1/360 (fma.f64 (pow.f64 im 4) 1/12 (fma.f64 im im 2)))
(fma.f64 (pow.f64 im 6) 1/360 (fma.f64 im im (fma.f64 (pow.f64 im 4) 1/12 2)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (sin.f64 re) (sin.f64 re))
(*.f64 2 (sin.f64 re))
(*.f64 (sin.f64 re) 2)
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(*.f64 (sin.f64 re) -4)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(*.f64 (sin.f64 re) (/.f64 -2 (fma.f64 (sin.f64 re) -2 0)))
(*.f64 (sin.f64 re) (/.f64 -2 (*.f64 (sin.f64 re) -2)))
1
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) (/.f64 -2 (fma.f64 (sin.f64 re) -2 0)))
(*.f64 (sin.f64 re) (/.f64 -2 (*.f64 (sin.f64 re) -2)))
1
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(fabs.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(log.f64 (pow.f64 1 (sin.f64 re)))
0
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(*.f64 (sin.f64 re) -2)
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(*.f64 (*.f64 (sin.f64 re) -2) (exp.f64 -2))
(*.f64 (sin.f64 re) (*.f64 -2 (exp.f64 -2)))
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(*.f64 (sin.f64 re) -4)
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
(*.f64 (sin.f64 re) -4)
-2
0
1/4
1/2
3/2
2

eval22.0ms (0.3%)

Compiler

Compiled 1145 to 649 computations (43.3% saved)

prune24.0ms (0.3%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New76985
Fresh000
Picked011
Done000
Total761086
Accuracy
100.0%
Counts
86 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
20.1%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
74.3%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.3%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
74.3%
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
60.9%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
10.3%
(*.f64 (sin.f64 re) 2)
47.4%
(sin.f64 re)
5.5%
1
2.7%
0
Compiler

Compiled 157 to 124 computations (21% saved)

localize136.0ms (1.8%)

Localize:

Found 5 expressions with local error:

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

Compiled 84 to 40 computations (52.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 52.0ms
Operation ival-mult, time spent: 18.0ms, 35.0% of total-time
Operation ival-pow, time spent: 17.0ms, 33.0% of total-time
Operation ival-sin, time spent: 7.0ms, 14.0% of total-time
Operation ival-exp, time spent: 3.0ms, 6.0% of total-time
Operation ival-add, time spent: 3.0ms, 6.0% of total-time
Operation const, time spent: 2.0ms, 4.0% of total-time
Operation ival-neg, time spent: 1.0ms, 2.0% of total-time

series26.0ms (0.3%)

Counts
5 → 55
Calls

24 calls:

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

rewrite48.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
358×associate-*r*
218×associate-*l*
157×log1p-expm1-u
157×expm1-log1p-u
154×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024121
1348121
25950121
Stop Event
unsound
Counts
5 → 74
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 2) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -4)
(/.f64 re -4)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -4)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -4 (expm1.f64 re)))
(cbrt.f64 re)
re
(expm1.f64 (log1p.f64 re))
(log1p.f64 (expm1.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(fma.f64 -4 re re)
(fma.f64 re -4 re)
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

simplify73.0ms (0.9%)

Algorithm
egg-herbie
Rules
1228×fma-define
866×distribute-lft-out
734×associate-*r*
658×associate-*l*
600×unswap-sqr
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01492352
13672298
29472229
341712191
Stop Event
node limit
Counts
129 → 115
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 2) re)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (*.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5))) (*.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 im 2) (pow.f64 re 7))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5))) (*.f64 (pow.f64 im 2) re))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))))))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (+.f64 (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2)))) (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/10080 (pow.f64 im 2)) 1/5040)))))
(sin.f64 re)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(/.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/60 (pow.f64 re 2)) (*.f64 1/4 (/.f64 1 (pow.f64 re 2)))))
(+.f64 1/12 (+.f64 (*.f64 1/378 (pow.f64 re 4)) (+.f64 (*.f64 1/60 (pow.f64 re 2)) (*.f64 1/4 (/.f64 1 (pow.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/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 (pow.f64 im 2) re)))
(+.f64 re (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) re)) (*.f64 1/2 (*.f64 (pow.f64 im 2) re))))
(+.f64 re (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) re)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) re)) (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))))
(*.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 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -4)
(/.f64 re -4)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -4)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -4 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
(log1p.f64 (expm1.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(fma.f64 -4 re re)
(fma.f64 re -4 re)
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
Outputs
(*.f64 (pow.f64 im 2) re)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (*.f64 (pow.f64 im 2) re))
(fma.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3)) (*.f64 (pow.f64 im 2) re))
(fma.f64 (pow.f64 im 2) re (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 3) -1/6)))
(*.f64 (pow.f64 im 2) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5))) (*.f64 (pow.f64 im 2) re)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3)) (fma.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5)) (*.f64 (pow.f64 im 2) re)))
(fma.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3)) (fma.f64 (pow.f64 im 2) re (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5)))))
(fma.f64 (pow.f64 im 2) re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/6 (pow.f64 re 3)))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 im 2) (pow.f64 re 7))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5))) (*.f64 (pow.f64 im 2) re))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3)) (fma.f64 -1/5040 (*.f64 (pow.f64 im 2) (pow.f64 re 7)) (fma.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5)) (*.f64 (pow.f64 im 2) re))))
(fma.f64 -1/6 (*.f64 (pow.f64 im 2) (pow.f64 re 3)) (fma.f64 -1/5040 (*.f64 (pow.f64 im 2) (pow.f64 re 7)) (fma.f64 (pow.f64 im 2) re (*.f64 1/120 (*.f64 (pow.f64 im 2) (pow.f64 re 5))))))
(+.f64 (*.f64 (pow.f64 im 2) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 (pow.f64 im 2) (+.f64 (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (*.f64 -1/6 (pow.f64 re 3))) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) 1/2)))
(*.f64 re (fma.f64 (pow.f64 im 2) 1/2 1))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)))
(fma.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) 1/2)) (*.f64 (pow.f64 re 3) (fma.f64 -1/12 (pow.f64 im 2) -1/6)))
(fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 1) (*.f64 (pow.f64 re 3) (fma.f64 (pow.f64 im 2) -1/12 -1/6)))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2))))))
(fma.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) 1/2)) (fma.f64 (pow.f64 re 3) (fma.f64 -1/12 (pow.f64 im 2) -1/6) (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 (pow.f64 im 2) 1/240)))))
(fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 re 3) (fma.f64 (pow.f64 im 2) -1/12 -1/6) (*.f64 (pow.f64 re 5) (fma.f64 (pow.f64 im 2) 1/240 1/120))))
(+.f64 (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (+.f64 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/12 (pow.f64 im 2)) 1/6)) (+.f64 (*.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 1/240 (pow.f64 im 2)))) (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/10080 (pow.f64 im 2)) 1/5040)))))
(fma.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) 1/2)) (fma.f64 (pow.f64 re 3) (fma.f64 -1/12 (pow.f64 im 2) -1/6) (fma.f64 (pow.f64 re 5) (+.f64 1/120 (*.f64 (pow.f64 im 2) 1/240)) (*.f64 (pow.f64 re 7) (fma.f64 -1/10080 (pow.f64 im 2) -1/5040)))))
(fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 re 3) (fma.f64 (pow.f64 im 2) -1/12 -1/6) (fma.f64 (pow.f64 re 5) (fma.f64 (pow.f64 im 2) 1/240 1/120) (*.f64 (pow.f64 re 7) (fma.f64 (pow.f64 im 2) -1/10080 -1/5040)))))
(fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 re 5) (fma.f64 (pow.f64 im 2) 1/240 1/120) (fma.f64 (pow.f64 re 3) (fma.f64 (pow.f64 im 2) -1/12 -1/6) (*.f64 (pow.f64 re 7) (fma.f64 (pow.f64 im 2) -1/10080 -1/5040)))))
(fma.f64 (pow.f64 re 3) (fma.f64 (pow.f64 im 2) -1/12 -1/6) (fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 1) (fma.f64 (pow.f64 re 5) (fma.f64 (pow.f64 im 2) 1/240 1/120) (*.f64 (pow.f64 re 7) (fma.f64 (pow.f64 im 2) -1/10080 -1/5040)))))
(sin.f64 re)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (*.f64 (pow.f64 im 2) 1/2) (sin.f64 re))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (*.f64 (pow.f64 im 2) 1/2) (sin.f64 re))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(/.f64 1/4 (pow.f64 re 2))
(*.f64 1/4 (pow.f64 re -2))
(+.f64 1/12 (*.f64 1/4 (/.f64 1 (pow.f64 re 2))))
(+.f64 1/12 (/.f64 1/4 (pow.f64 re 2)))
(fma.f64 1/4 (pow.f64 re -2) 1/12)
(+.f64 1/12 (+.f64 (*.f64 1/60 (pow.f64 re 2)) (*.f64 1/4 (/.f64 1 (pow.f64 re 2)))))
(+.f64 1/12 (fma.f64 1/60 (pow.f64 re 2) (/.f64 1/4 (pow.f64 re 2))))
(+.f64 1/12 (fma.f64 (pow.f64 re 2) 1/60 (/.f64 1/4 (pow.f64 re 2))))
(fma.f64 1/4 (pow.f64 re -2) (fma.f64 (pow.f64 re 2) 1/60 1/12))
(+.f64 1/12 (+.f64 (*.f64 1/378 (pow.f64 re 4)) (+.f64 (*.f64 1/60 (pow.f64 re 2)) (*.f64 1/4 (/.f64 1 (pow.f64 re 2))))))
(+.f64 1/12 (fma.f64 1/378 (pow.f64 re 4) (fma.f64 1/60 (pow.f64 re 2) (/.f64 1/4 (pow.f64 re 2)))))
(+.f64 1/12 (fma.f64 1/378 (pow.f64 re 4) (fma.f64 (pow.f64 re 2) 1/60 (/.f64 1/4 (pow.f64 re 2)))))
(+.f64 (fma.f64 (pow.f64 re 2) 1/60 (/.f64 1/4 (pow.f64 re 2))) (fma.f64 1/378 (pow.f64 re 4) 1/12))
(fma.f64 1/378 (pow.f64 re 4) (fma.f64 1/4 (pow.f64 re -2) (fma.f64 (pow.f64 re 2) 1/60 1/12)))
(/.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 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) 1/2)))
(*.f64 re (fma.f64 (pow.f64 im 2) 1/2 1))
(+.f64 re (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) re)) (*.f64 1/2 (*.f64 (pow.f64 im 2) re))))
(+.f64 re (fma.f64 1/24 (*.f64 re (pow.f64 im 4)) (*.f64 (*.f64 (pow.f64 im 2) 1/2) re)))
(+.f64 re (*.f64 re (+.f64 (*.f64 (pow.f64 im 2) 1/2) (*.f64 1/24 (pow.f64 im 4)))))
(fma.f64 re (fma.f64 (pow.f64 im 2) 1/2 (*.f64 1/24 (pow.f64 im 4))) re)
(fma.f64 re (fma.f64 1/24 (pow.f64 im 4) (*.f64 (pow.f64 im 2) 1/2)) re)
(+.f64 re (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 6) re)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 4) re)) (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))))
(+.f64 re (fma.f64 1/720 (*.f64 re (pow.f64 im 6)) (fma.f64 1/24 (*.f64 re (pow.f64 im 4)) (*.f64 (*.f64 (pow.f64 im 2) 1/2) re))))
(+.f64 (*.f64 re (+.f64 (*.f64 1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))) (*.f64 re (fma.f64 (pow.f64 im 2) 1/2 1)))
(*.f64 re (+.f64 (fma.f64 1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4))) (fma.f64 (pow.f64 im 2) 1/2 1)))
(*.f64 re (+.f64 (fma.f64 1/24 (pow.f64 im 4) (*.f64 (pow.f64 im 2) 1/2)) (fma.f64 1/720 (pow.f64 im 6) 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 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.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/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 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 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 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 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 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 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 1/2 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 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2
(+.f64 2 (pow.f64 im 2))
(fma.f64 im im 2)
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2)))
(+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2)))
(fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2))
(+.f64 2 (+.f64 (*.f64 1/360 (pow.f64 im 6)) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (pow.f64 im 2))))
(+.f64 2 (fma.f64 1/360 (pow.f64 im 6) (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(+.f64 2 (fma.f64 (pow.f64 im 6) 1/360 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(fma.f64 (pow.f64 im 6) 1/360 (fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
(+.f64 re re)
(*.f64 2 re)
(-.f64 (exp.f64 (log1p.f64 re)) -4)
(+.f64 (exp.f64 (log1p.f64 re)) 4)
(+.f64 4 (+.f64 re 1))
(+.f64 re 5)
(/.f64 re -4)
(*.f64 re -1/4)
(/.f64 re (+.f64 re (-.f64 re re)))
1
(/.f64 (-.f64 re re) (-.f64 re re))
1
(pow.f64 re -4)
(pow.f64 re 1/3)
(cbrt.f64 re)
(sqrt.f64 re)
(fabs.f64 re)
re
(log.f64 (exp.f64 re))
re
(log.f64 (+.f64 -4 (expm1.f64 re)))
(log1p.f64 (+.f64 (exp.f64 re) -6))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
re
(log1p.f64 (expm1.f64 re))
re
(exp.f64 (log.f64 re))
re
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 re -4)
(fma.f64 -4 re re)
(*.f64 -3 re)
(*.f64 re -3)
(fma.f64 re -4 re)
(fma.f64 -4 re re)
(*.f64 -3 re)
(*.f64 re -3)
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

eval43.0ms (0.6%)

Compiler

Compiled 1539 to 1127 computations (26.8% saved)

prune33.0ms (0.4%)

Pruning

22 alts after pruning (18 fresh and 4 done)

PrunedKeptTotal
New10114115
Fresh044
Picked235
Done011
Total10322125
Accuracy
100.0%
Counts
125 → 22
Alt Table
Click to see full alt table
StatusAccuracyProgram
24.5%
(pow.f64 re -4)
2.5%
(/.f64 re -4)
5.0%
(+.f64 (sin.f64 re) (*.f64 1/2 4))
7.8%
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
3.7%
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
46.1%
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
5.9%
(+.f64 re re)
3.5%
(+.f64 re 5)
30.5%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
74.3%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
74.3%
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
46.1%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
60.9%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
10.3%
(*.f64 (sin.f64 re) 2)
2.5%
(*.f64 re -3)
47.4%
(sin.f64 re)
31.6%
(log1p.f64 (expm1.f64 re))
24.5%
(exp.f64 (*.f64 (log.f64 re) -4))
22.0%
re
5.5%
1
2.7%
0
Compiler

Compiled 286 to 227 computations (20.6% saved)

localize140.0ms (1.8%)

Localize:

Found 4 expressions with local error:

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

Compiled 73 to 44 computations (39.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 52.0ms
Operation ival-mult, time spent: 22.0ms, 43.0% of total-time
Operation composed, time spent: 8.0ms, 16.0% of total-time
Operation ival-sin, time spent: 7.0ms, 14.0% of total-time
Operation ival-add, time spent: 6.0ms, 12.0% of total-time
Operation ival-pow, time spent: 6.0ms, 12.0% of total-time
Operation const, time spent: 3.0ms, 6.0% of total-time

series23.0ms (0.3%)

Counts
4 → 51
Calls

21 calls:

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

rewrite189.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1342×log-prod
770×log1p-expm1-u
770×expm1-log1p-u
758×fma-define
440×expm1-undefine
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
023101
126197
2343394
Stop Event
node limit
Counts
4 → 135
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(*.f64 (pow.f64 im 2) re)
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
Outputs
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))) (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))) 1)
(pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 3)
(pow.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 2)
(sqrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 2))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))))
(cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 1))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (sin.f64 re) -2))) 1)
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 2)) (/.f64 4 (+.f64 (sin.f64 re) 2)))
(*.f64 (+.f64 (sin.f64 re) -2) 1)
(*.f64 1 (+.f64 (sin.f64 re) -2))
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -2)))
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) (sqrt.f64 (+.f64 (sin.f64 re) -2)))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) 2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))) (+.f64 (pow.f64 (sin.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) 2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) 2)))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 -2 (sin.f64 re)))
(pow.f64 (+.f64 (sin.f64 re) -2) 1)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 3)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) 2)
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 2))
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -2))))
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3))
(expm1.f64 (log1p.f64 (+.f64 (sin.f64 re) -2)))
(log1p.f64 (expm1.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))
(fma.f64 (sin.f64 re) 1 -2)
(fma.f64 1 (sin.f64 re) -2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -2)
(+.f64 0 (*.f64 re (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))) (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 re (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 3)
(pow.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)))
(log.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (pow.f64 im 2)))))
(cbrt.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 re 3) (pow.f64 (pow.f64 im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 re 3)))
(expm1.f64 (log1p.f64 (*.f64 re (pow.f64 im 2))))
(log1p.f64 (expm1.f64 (*.f64 re (pow.f64 im 2))))
(exp.f64 (log.f64 (*.f64 re (pow.f64 im 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im 2))) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))) 1)
(-.f64 (/.f64 (pow.f64 re 2) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (/.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(*.f64 1 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2) (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(*.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (/.f64 1 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) re)
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)) (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))))
(/.f64 1 (/.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4 (-.f64 (pow.f64 re 2) (*.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))) (neg.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))) (neg.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (pow.f64 re 2)) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)))
(pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 3)
(pow.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2)
(sqrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 2))
(log.f64 (exp.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 re))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (exp.f64 re)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (+.f64 1 (expm1.f64 re))))
(cbrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(log1p.f64 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(exp.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(exp.f64 (*.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 1))
(fma.f64 1/2 (*.f64 re (pow.f64 im 2)) re)
(fma.f64 re 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 re (*.f64 1/2 (pow.f64 im 2)) re)
(fma.f64 (pow.f64 im 2) (*.f64 re 1/2) re)
(fma.f64 (*.f64 re (pow.f64 im 2)) 1/2 re)
(fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) 1 re)
(fma.f64 1 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) re)
(fma.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) re)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) re)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2) (*.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 1/2) re)
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) re)
(fma.f64 (*.f64 im (sqrt.f64 re)) (*.f64 (*.f64 im (sqrt.f64 re)) 1/2) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) re re)
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) re)
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2)) (cbrt.f64 (*.f64 re (pow.f64 im 2))) re)
(fma.f64 (*.f64 1/2 (*.f64 im (sqrt.f64 re))) (*.f64 im (sqrt.f64 re)) re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) re re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sqrt.f64 re)) (sqrt.f64 re) re)

simplify174.0ms (2.3%)

Algorithm
egg-herbie
Rules
1284×distribute-lft-in
1056×times-frac
632×log-prod
446×cancel-sign-sub-inv
440×distribute-lft-neg-in
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03636602
19416068
232395807
Stop Event
node limit
Counts
186 → 195
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2)))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
-2
(-.f64 re 2)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(-.f64 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
re
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))) (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))) 1)
(pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 3)
(pow.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 2)
(sqrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 2))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))))
(cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 1))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (sin.f64 re) -2))) 1)
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 2)) (/.f64 4 (+.f64 (sin.f64 re) 2)))
(*.f64 (+.f64 (sin.f64 re) -2) 1)
(*.f64 1 (+.f64 (sin.f64 re) -2))
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -2)))
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) (sqrt.f64 (+.f64 (sin.f64 re) -2)))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) 2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))) (+.f64 (pow.f64 (sin.f64 re) 3) -8)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) 2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) 2)))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 -2 (sin.f64 re)))
(pow.f64 (+.f64 (sin.f64 re) -2) 1)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 3)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) 2)
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 2))
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -2)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -2))))
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3))
(expm1.f64 (log1p.f64 (+.f64 (sin.f64 re) -2)))
(log1p.f64 (expm1.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))
(fma.f64 (sin.f64 re) 1 -2)
(fma.f64 1 (sin.f64 re) -2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -2)
(+.f64 0 (*.f64 re (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))) (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 re (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 3)
(pow.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)))
(log.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (pow.f64 im 2)))))
(cbrt.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3))
(cbrt.f64 (*.f64 (pow.f64 re 3) (pow.f64 (pow.f64 im 2) 3)))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 re 3)))
(expm1.f64 (log1p.f64 (*.f64 re (pow.f64 im 2))))
(log1p.f64 (expm1.f64 (*.f64 re (pow.f64 im 2))))
(exp.f64 (log.f64 (*.f64 re (pow.f64 im 2))))
(exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im 2))) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))) 1)
(-.f64 (/.f64 (pow.f64 re 2) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (/.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(*.f64 1 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2) (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(*.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (/.f64 1 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) re)
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)) (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))))
(/.f64 1 (/.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4 (-.f64 (pow.f64 re 2) (*.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))) (neg.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))) (neg.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (pow.f64 re 2)) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)))
(pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 3)
(pow.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2)
(sqrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 2))
(log.f64 (exp.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 re))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (exp.f64 re)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (+.f64 1 (expm1.f64 re))))
(cbrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(log1p.f64 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(exp.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(exp.f64 (*.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 1))
(fma.f64 1/2 (*.f64 re (pow.f64 im 2)) re)
(fma.f64 re 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 re (*.f64 1/2 (pow.f64 im 2)) re)
(fma.f64 (pow.f64 im 2) (*.f64 re 1/2) re)
(fma.f64 (*.f64 re (pow.f64 im 2)) 1/2 re)
(fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) 1 re)
(fma.f64 1 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) re)
(fma.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) re)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) re)
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2) (*.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 1/2) re)
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) re)
(fma.f64 (*.f64 im (sqrt.f64 re)) (*.f64 (*.f64 im (sqrt.f64 re)) 1/2) re)
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) re re)
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) re)
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2)) (cbrt.f64 (*.f64 re (pow.f64 im 2))) re)
(fma.f64 (*.f64 1/2 (*.f64 im (sqrt.f64 re))) (*.f64 im (sqrt.f64 re)) re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) re re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) re)
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sqrt.f64 re)) (sqrt.f64 re) re)
Outputs
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2)))))
(fma.f64 -1/12 (*.f64 (fma.f64 im im 2) (pow.f64 re 3)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2)))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))))
(fma.f64 -1/12 (*.f64 (fma.f64 im im 2) (pow.f64 re 3)) (fma.f64 1/240 (*.f64 (fma.f64 im im 2) (pow.f64 re 5)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(fma.f64 -1/12 (*.f64 (fma.f64 im im 2) (pow.f64 re 3)) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 2 (pow.f64 im 2)))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 2 (pow.f64 im 2)))) (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2)))))))
(fma.f64 -1/12 (*.f64 (fma.f64 im im 2) (pow.f64 re 3)) (fma.f64 -1/10080 (*.f64 (fma.f64 im im 2) (pow.f64 re 7)) (fma.f64 1/240 (*.f64 (fma.f64 im im 2) (pow.f64 re 5)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2)))))
(+.f64 (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 1/240 (pow.f64 re 5)))) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 -1/10080 (pow.f64 re 7)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
-2
(-.f64 re 2)
(+.f64 re -2)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(+.f64 re (-.f64 (*.f64 (pow.f64 re 3) -1/6) 2))
(+.f64 re (fma.f64 (pow.f64 re 3) -1/6 -2))
(-.f64 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))) 2)
(+.f64 re (-.f64 (fma.f64 -1/6 (pow.f64 re 3) (*.f64 (pow.f64 re 5) 1/120)) 2))
(+.f64 re (+.f64 (*.f64 (pow.f64 re 5) 1/120) (fma.f64 (pow.f64 re 3) -1/6 -2)))
(+.f64 (fma.f64 (pow.f64 re 3) -1/6 re) (fma.f64 (pow.f64 re 5) 1/120 -2))
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) -2)
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 -1 (*.f64 re (-.f64 (*.f64 -1/2 (pow.f64 im 2)) 1)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
re
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 (*.f64 1/2 re) (pow.f64 im 2))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 (*.f64 1/2 re) (pow.f64 im 2))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2)) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))) (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (fma.f64 im im 2) (sin.f64 re)))) (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (fma.f64 im im 2) (sin.f64 re)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (fma.f64 im im 2) (sin.f64 re))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))) 1)
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))))
(pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 1)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 3)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3) 1/3)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (sqrt.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 2)
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(sqrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (pow.f64 (exp.f64 1/2) (*.f64 (sin.f64 re) (fma.f64 im im 2))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (pow.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2))) 3))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 im im 2) 3)))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 im im 2) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (fma.f64 im im 2)))) 1))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2) (*.f64 (*.f64 1/2 (sin.f64 re)) 2))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)) (*.f64 2 (*.f64 1/2 (sin.f64 re))))
(*.f64 1/2 (*.f64 (fma.f64 im im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(-.f64 (exp.f64 (log1p.f64 (+.f64 (sin.f64 re) -2))) 1)
(expm1.f64 (log1p.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 2)) (/.f64 4 (+.f64 (sin.f64 re) 2)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(*.f64 (+.f64 (sin.f64 re) -2) 1)
(+.f64 (sin.f64 re) -2)
(*.f64 1 (+.f64 (sin.f64 re) -2))
(+.f64 (sin.f64 re) -2)
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2))
(+.f64 (sin.f64 re) -2)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 (sin.f64 re) -2)
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) (sqrt.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 (sin.f64 re) -2)
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) 1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (-.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 2 (sin.f64 re)))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) 2)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))) (+.f64 (pow.f64 (sin.f64 re) 3) -8)))
(/.f64 (*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) 1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (-.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 2 (sin.f64 re)))))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) 1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (-.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 (sin.f64 re) -2))))
(/.f64 (*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) 1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (-.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) 2))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) 1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (-.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 2 (sin.f64 re)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) 2)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 -2 (sin.f64 re)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (+.f64 2 (sin.f64 re))))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 2 (sin.f64 re))) (/.f64 4 (-.f64 -2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 2 (sin.f64 re)))
(pow.f64 (+.f64 (sin.f64 re) -2) 1)
(+.f64 (sin.f64 re) -2)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -2)) 3)
(+.f64 (sin.f64 re) -2)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3) 1/3)
(+.f64 (sin.f64 re) -2)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -2)) 2)
(+.f64 (sin.f64 re) -2)
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 2))
(+.f64 (sin.f64 re) -2)
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 (sin.f64 re) -2)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -2))))
(+.f64 (sin.f64 re) -2)
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -2) 3))
(+.f64 (sin.f64 re) -2)
(expm1.f64 (log1p.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 -1 (+.f64 -1 (sin.f64 re)))
(log1p.f64 (expm1.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 (sin.f64 re) -2)
(exp.f64 (log.f64 (+.f64 (sin.f64 re) -2)))
(+.f64 (sin.f64 re) -2)
(exp.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -2)) 1))
(+.f64 (sin.f64 re) -2)
(fma.f64 (sin.f64 re) 1 -2)
(+.f64 (sin.f64 re) -2)
(fma.f64 1 (sin.f64 re) -2)
(+.f64 (sin.f64 re) -2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -2)
(+.f64 (sin.f64 re) -2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -2)
(+.f64 (sin.f64 re) -2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -2)
(+.f64 (sin.f64 re) -2)
(+.f64 0 (*.f64 re (pow.f64 im 2)))
(*.f64 re (pow.f64 im 2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))) (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))))
(*.f64 re (pow.f64 im 2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (pow.f64 im 2)))) 1)
(expm1.f64 (log1p.f64 (*.f64 re (pow.f64 im 2))))
(pow.f64 (*.f64 re (pow.f64 im 2)) 1)
(*.f64 re (pow.f64 im 2))
(pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 3)
(*.f64 re (pow.f64 im 2))
(pow.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/3)
(*.f64 re (pow.f64 im 2))
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(*.f64 re (pow.f64 im 2))
(sqrt.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)))
(sqrt.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)))
(fabs.f64 (*.f64 re (pow.f64 im 2)))
(log.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)))
(*.f64 re (pow.f64 im 2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (pow.f64 im 2)))))
(*.f64 re (pow.f64 im 2))
(cbrt.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3))
(*.f64 re (pow.f64 im 2))
(cbrt.f64 (*.f64 (pow.f64 re 3) (pow.f64 (pow.f64 im 2) 3)))
(*.f64 re (pow.f64 im 2))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 im 2) 3) (pow.f64 re 3)))
(*.f64 re (pow.f64 im 2))
(expm1.f64 (log1p.f64 (*.f64 re (pow.f64 im 2))))
(log1p.f64 (expm1.f64 (*.f64 re (pow.f64 im 2))))
(*.f64 re (pow.f64 im 2))
(exp.f64 (log.f64 (*.f64 re (pow.f64 im 2))))
(*.f64 re (pow.f64 im 2))
(exp.f64 (*.f64 (log.f64 (*.f64 re (pow.f64 im 2))) 1))
(*.f64 re (pow.f64 im 2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))) 1)
(expm1.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(-.f64 (/.f64 (pow.f64 re 2) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (/.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2) (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (*.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) -1)) (pow.f64 re 2)))
(*.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (/.f64 1 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(/.f64 1 (/.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)) (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (*.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) -1)) (pow.f64 re 2)))
(/.f64 1 (/.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2)))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (*.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) -1)) (pow.f64 re 2)))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4 (-.f64 (pow.f64 re 2) (*.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4 (-.f64 (pow.f64 re 2) (*.f64 re (*.f64 (*.f64 1/2 re) (pow.f64 im 2))))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4 (*.f64 re (-.f64 re (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(/.f64 (fma.f64 (*.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/8 (pow.f64 re 3)) (fma.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) 4) 1/4 (*.f64 re (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (neg.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3))) (neg.f64 (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)) (pow.f64 re 2))))
(*.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (/.f64 1 (fma.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2))))
(/.f64 (fma.f64 (pow.f64 (*.f64 re (pow.f64 im 2)) 3) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) (fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (neg.f64 re)) (pow.f64 re 2)))
(/.f64 (fma.f64 (*.f64 (pow.f64 re 3) (pow.f64 im 6)) 1/8 (pow.f64 re 3)) (fma.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) -1)) (pow.f64 re 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4))) (neg.f64 (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 4) (pow.f64 re 2)) 1/4) (pow.f64 re 2)) (fma.f64 (pow.f64 im 2) (*.f64 re 1/2) (neg.f64 re)))
(/.f64 (-.f64 (pow.f64 re 2) (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) 1/4)) (*.f64 re (+.f64 1 (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (fma.f64 re re (*.f64 (*.f64 (pow.f64 re 2) (pow.f64 im 4)) -1/4)) (*.f64 re (-.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(/.f64 (+.f64 re (*.f64 -1/4 (*.f64 (pow.f64 im 4) re))) (+.f64 1 (*.f64 (pow.f64 im 2) -1/2)))
(pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 1)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (cbrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 3)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3) 1/3)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (sqrt.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 2)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(sqrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 2))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (exp.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (exp.f64 re) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 re)) (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im 2)) 1/2) (+.f64 1 (expm1.f64 re))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (exp.f64 re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))) (+.f64 1 (expm1.f64 re))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 3))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(expm1.f64 (log1p.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(log1p.f64 (expm1.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))) 1))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1/2 (*.f64 re (pow.f64 im 2)) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 re 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 re (*.f64 1/2 (pow.f64 im 2)) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 im 2) (*.f64 re 1/2) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 re (pow.f64 im 2)) 1/2 re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) 1 re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1 re (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1 (*.f64 1/2 (*.f64 re (pow.f64 im 2))) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) 2) (cbrt.f64 (*.f64 1/2 (*.f64 re (pow.f64 im 2)))) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2) (*.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 1/2) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) (*.f64 (*.f64 im (sqrt.f64 re)) (sqrt.f64 1/2)) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 im (sqrt.f64 re)) (*.f64 (*.f64 im (sqrt.f64 re)) 1/2) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 re) (sqrt.f64 re) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) re re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (pow.f64 (cbrt.f64 (*.f64 re (pow.f64 im 2))) 2)) (cbrt.f64 (*.f64 re (pow.f64 im 2))) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (*.f64 im (sqrt.f64 re))) (*.f64 im (sqrt.f64 re)) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) 1) re re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (pow.f64 (cbrt.f64 re) 2)) (cbrt.f64 re) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sqrt.f64 re)) (sqrt.f64 re) re)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))

eval66.0ms (0.9%)

Compiler

Compiled 2818 to 1992 computations (29.3% saved)

prune58.0ms (0.8%)

Pruning

24 alts after pruning (17 fresh and 7 done)

PrunedKeptTotal
New1905195
Fresh11213
Picked145
Done134
Total19324217
Accuracy
100.0%
Counts
217 → 24
Alt Table
Click to see full alt table
StatusAccuracyProgram
24.5%
(pow.f64 re -4)
11.1%
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
3.7%
(-.f64 (sin.f64 re) 2)
5.0%
(+.f64 (sin.f64 re) (*.f64 1/2 4))
7.8%
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
46.1%
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
5.9%
(+.f64 re re)
3.5%
(+.f64 re 5)
48.6%
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
30.5%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
27.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
74.3%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
74.3%
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
46.1%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
60.9%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
10.3%
(*.f64 (sin.f64 re) 2)
2.5%
(*.f64 re -3)
47.4%
(sin.f64 re)
31.6%
(log1p.f64 (expm1.f64 re))
24.5%
(exp.f64 (*.f64 (log.f64 re) -4))
22.0%
re
5.5%
1
3.8%
-2
Compiler

Compiled 317 to 252 computations (20.5% saved)

localize680.0ms (8.9%)

Localize:

Found 3 expressions with local error:

NewAccuracyProgram
98.9%
(log1p.f64 (expm1.f64 re))
100.0%
(+.f64 (sin.f64 re) (*.f64 1/2 4))
90.4%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
Compiler

Compiled 61 to 41 computations (32.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 495.0ms
Operation ival-sin, time spent: 163.0ms, 33.0% of total-time
Operation composed, time spent: 105.0ms, 21.0% of total-time
Operation ival-log, time spent: 75.0ms, 15.0% of total-time
Operation ival-pow, time spent: 53.0ms, 11.0% of total-time
Operation ival-mult, time spent: 44.0ms, 9.0% of total-time
Operation ival-add, time spent: 26.0ms, 5.0% of total-time
Operation const, time spent: 12.0ms, 2.0% of total-time
Operation ival-exp, time spent: 11.0ms, 2.0% of total-time
Operation ival-sub, time spent: 6.0ms, 1.0% of total-time

series14.0ms (0.2%)

Counts
3 → 48
Calls

12 calls:

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

rewrite109.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
954×log-prod
947×log1p-expm1-u
946×expm1-log1p-u
684×prod-diff
482×fma-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02149
122249
2264149
Stop Event
node limit
Counts
3 → 91
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(log1p.f64 (expm1.f64 re))
Outputs
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(+.f64 0 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))
(+.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))) (sin.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)) (sin.f64 re))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))) 1)
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 im 4) 1/4 -1)) (fma.f64 1/2 (pow.f64 im 2) -1))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1) (sin.f64 re)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) -1))
(pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (sin.f64 re) 3)))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 1))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re) (sin.f64 re))
(fma.f64 1 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 1 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(fma.f64 (sin.f64 re) 1 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (sin.f64 re) 1 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (+.f64 2 (sin.f64 re)))) 1)
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(*.f64 1 (+.f64 2 (sin.f64 re)))
(*.f64 (+.f64 2 (sin.f64 re)) 1)
(*.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2) (cbrt.f64 (+.f64 2 (sin.f64 re))))
(*.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) (sqrt.f64 (+.f64 2 (sin.f64 re))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) -2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))) (+.f64 (pow.f64 (sin.f64 re) 3) 8)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) -2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) -2)))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 2 (sin.f64 re)))
(pow.f64 (+.f64 2 (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 3)
(pow.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 2))
(log.f64 (exp.f64 (+.f64 2 (sin.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 2 (sin.f64 re)))))
(cbrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3))
(expm1.f64 (log1p.f64 (+.f64 2 (sin.f64 re))))
(log1p.f64 (expm1.f64 (+.f64 2 (sin.f64 re))))
(exp.f64 (log.f64 (+.f64 2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (+.f64 2 (sin.f64 re))) 1))
(fma.f64 1 (sin.f64 re) 2)
(fma.f64 (sin.f64 re) 1 2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) 2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) 2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) 2)
(+.f64 0 re)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 re)) (cbrt.f64 (exp.f64 re)))) (log.f64 (cbrt.f64 (exp.f64 re))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 re))) (log.f64 (sqrt.f64 (exp.f64 re))))
(-.f64 (exp.f64 (log1p.f64 re)) 1)
(*.f64 1 re)
(*.f64 re 1)
(*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2))
(*.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re))
(*.f64 (sqrt.f64 re) (sqrt.f64 re))
(pow.f64 re 1)
(pow.f64 (cbrt.f64 re) 3)
(pow.f64 (pow.f64 re 3) 1/3)
(pow.f64 (sqrt.f64 re) 2)
(sqrt.f64 (pow.f64 re 2))
(log.f64 (exp.f64 re))
(cbrt.f64 (pow.f64 re 3))
re
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) 1))

simplify95.0ms (1.2%)

Algorithm
egg-herbie
Rules
1024×log-prod
912×unswap-sqr
736×distribute-lft-in
694×distribute-rgt-in
618×associate-+r+
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02383765
15493572
218903331
366353331
Stop Event
node limit
Counts
139 → 135
Calls
Call 1
Inputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
2
(+.f64 2 re)
(+.f64 2 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 2 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
(+.f64 2 (sin.f64 re))
re
re
re
re
re
re
re
re
re
re
re
re
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(+.f64 0 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))
(+.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))) (sin.f64 re))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)) (sin.f64 re))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))) 1)
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 im 4) 1/4 -1)) (fma.f64 1/2 (pow.f64 im 2) -1))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1) (sin.f64 re)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) -1))
(pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (sin.f64 re) 3)))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 1))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re) (sin.f64 re))
(fma.f64 1 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 1 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(fma.f64 (sin.f64 re) 1 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (sin.f64 re) 1 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (+.f64 2 (sin.f64 re)))) 1)
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(*.f64 1 (+.f64 2 (sin.f64 re)))
(*.f64 (+.f64 2 (sin.f64 re)) 1)
(*.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2) (cbrt.f64 (+.f64 2 (sin.f64 re))))
(*.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) (sqrt.f64 (+.f64 2 (sin.f64 re))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) -2)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))) (+.f64 (pow.f64 (sin.f64 re) 3) 8)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) -2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 2 (sin.f64 re)))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) -2)))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 2 (sin.f64 re)))
(pow.f64 (+.f64 2 (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 3)
(pow.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 2))
(log.f64 (exp.f64 (+.f64 2 (sin.f64 re))))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 2 (sin.f64 re)))))
(cbrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3))
(expm1.f64 (log1p.f64 (+.f64 2 (sin.f64 re))))
(log1p.f64 (expm1.f64 (+.f64 2 (sin.f64 re))))
(exp.f64 (log.f64 (+.f64 2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (+.f64 2 (sin.f64 re))) 1))
(fma.f64 1 (sin.f64 re) 2)
(fma.f64 (sin.f64 re) 1 2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) 2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) 2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) 2)
(+.f64 0 re)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 re)) (cbrt.f64 (exp.f64 re)))) (log.f64 (cbrt.f64 (exp.f64 re))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 re))) (log.f64 (sqrt.f64 (exp.f64 re))))
(-.f64 (exp.f64 (log1p.f64 re)) 1)
(*.f64 1 re)
(*.f64 re 1)
(*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2))
(*.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re))
(*.f64 (sqrt.f64 re) (sqrt.f64 re))
(pow.f64 re 1)
(pow.f64 (cbrt.f64 re) 3)
(pow.f64 (pow.f64 re 3) 1/3)
(pow.f64 (sqrt.f64 re) 2)
(sqrt.f64 (pow.f64 re 2))
(log.f64 (exp.f64 re))
(cbrt.f64 (pow.f64 re 3))
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) 1))
Outputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))
(fma.f64 -1/6 (*.f64 (pow.f64 re 3) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 -1/6 (pow.f64 re 3) re))
(*.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))))
(fma.f64 -1/6 (*.f64 (pow.f64 re 3) (fma.f64 1/2 (pow.f64 im 2) 1)) (fma.f64 1/120 (*.f64 (pow.f64 re 5) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))
(+.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 -1/6 (pow.f64 re 3) re)) (*.f64 (pow.f64 re 5) (*.f64 1/120 (fma.f64 1/2 (pow.f64 im 2) 1))))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 re (fma.f64 -1/6 (pow.f64 re 3) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))))
(fma.f64 -1/6 (*.f64 (pow.f64 re 3) (fma.f64 1/2 (pow.f64 im 2) 1)) (fma.f64 -1/5040 (*.f64 (pow.f64 re 7) (fma.f64 1/2 (pow.f64 im 2) 1)) (fma.f64 1/120 (*.f64 (pow.f64 re 5) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (*.f64 1/120 (pow.f64 re 5)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 -1/6 (pow.f64 re 3) re)))
(*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/5040 (pow.f64 re 7))) (fma.f64 -1/6 (pow.f64 re 3) re)))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
2
(+.f64 2 re)
(+.f64 re 2)
(+.f64 2 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 2 (fma.f64 -1/6 (pow.f64 re 3) re))
(+.f64 2 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 2 (+.f64 re (fma.f64 -1/6 (pow.f64 re 3) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 2 (+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (*.f64 1/120 (pow.f64 re 5))))
(+.f64 (+.f64 re 2) (fma.f64 -1/6 (pow.f64 re 3) (*.f64 1/120 (pow.f64 re 5))))
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
(+.f64 2 (sin.f64 re))
(+.f64 (sin.f64 re) 2)
re
re
re
re
re
re
re
re
re
re
re
re
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 0 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sin.f64 re)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 1/2 (pow.f64 im 2) 1)) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))) 1)
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1)) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 -1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 (pow.f64 im 2) -1/2))))
(*.f64 (fma.f64 (pow.f64 im 6) 1/8 1) (/.f64 (sin.f64 re) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 im 4) 1/4 -1)) (fma.f64 1/2 (pow.f64 im 2) -1))
(*.f64 (sin.f64 re) (/.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (fma.f64 1/2 (pow.f64 im 2) -1)))
(*.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (/.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) -1)))
(/.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1) (sin.f64 re)) (-.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 1/2 (pow.f64 im 2))))
(/.f64 (*.f64 (sin.f64 re) (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1)) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 -1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (/.f64 (fma.f64 (pow.f64 (pow.f64 im 2) 3) 1/8 1) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 (pow.f64 im 2) -1/2))))
(*.f64 (fma.f64 (pow.f64 im 6) 1/8 1) (/.f64 (sin.f64 re) (+.f64 (fma.f64 (pow.f64 im 4) 1/4 1) (*.f64 (pow.f64 im 2) -1/2))))
(/.f64 (*.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) -1))
(*.f64 (sin.f64 re) (/.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (fma.f64 1/2 (pow.f64 im 2) -1)))
(*.f64 (fma.f64 (pow.f64 im 4) 1/4 -1) (/.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) -1)))
(pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 1)
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (cbrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 3)
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3) 1/3)
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (sqrt.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 2)
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(sqrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 2))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (pow.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)) 3))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3) (pow.f64 (sin.f64 re) 3)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (pow.f64 (fma.f64 1/2 (pow.f64 im 2) 1) 3)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(expm1.f64 (log1p.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(log1p.f64 (expm1.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re))) 1))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1 (sin.f64 re) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1 (sin.f64 re) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sin.f64 re) 1 (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sin.f64 re) 1 (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re)))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(-.f64 (exp.f64 (log1p.f64 (+.f64 2 (sin.f64 re)))) 1)
(+.f64 (sin.f64 re) 2)
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(*.f64 1 (+.f64 2 (sin.f64 re)))
(+.f64 (sin.f64 re) 2)
(*.f64 (+.f64 2 (sin.f64 re)) 1)
(+.f64 (sin.f64 re) 2)
(*.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2))
(+.f64 (sin.f64 re) 2)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 2) (cbrt.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(*.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) (sqrt.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 4 (*.f64 -2 (sin.f64 re))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (/.f64 1 (+.f64 (sin.f64 re) -2)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))) (+.f64 (pow.f64 (sin.f64 re) 3) 8)))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 4 (*.f64 -2 (sin.f64 re))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) -2) (+.f64 (pow.f64 (sin.f64 re) 2) -4)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re)))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 4 (*.f64 -2 (sin.f64 re))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (-.f64 (pow.f64 (sin.f64 re) 2) (*.f64 2 (sin.f64 re)))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 4 (*.f64 -2 (sin.f64 re))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 4 (*.f64 2 (sin.f64 re))))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 4 (*.f64 -2 (sin.f64 re))))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) 8) (+.f64 4 (*.f64 (sin.f64 re) (+.f64 (sin.f64 re) -2))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4)) (neg.f64 (+.f64 (sin.f64 re) -2)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(/.f64 (-.f64 4 (pow.f64 (sin.f64 re) 2)) (-.f64 2 (sin.f64 re)))
(-.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (+.f64 (sin.f64 re) -2)))
(+.f64 (/.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) -2)) (/.f64 4 (-.f64 2 (sin.f64 re))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -4) (+.f64 (sin.f64 re) -2))
(pow.f64 (+.f64 2 (sin.f64 re)) 1)
(+.f64 (sin.f64 re) 2)
(pow.f64 (cbrt.f64 (+.f64 2 (sin.f64 re))) 3)
(+.f64 (sin.f64 re) 2)
(pow.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3) 1/3)
(+.f64 (sin.f64 re) 2)
(pow.f64 (sqrt.f64 (+.f64 2 (sin.f64 re))) 2)
(+.f64 (sin.f64 re) 2)
(sqrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 2))
(+.f64 (sin.f64 re) 2)
(log.f64 (exp.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 2 (sin.f64 re)))))
(+.f64 (sin.f64 re) 2)
(cbrt.f64 (pow.f64 (+.f64 2 (sin.f64 re)) 3))
(+.f64 (sin.f64 re) 2)
(expm1.f64 (log1p.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(log1p.f64 (expm1.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(exp.f64 (log.f64 (+.f64 2 (sin.f64 re))))
(+.f64 (sin.f64 re) 2)
(exp.f64 (*.f64 (log.f64 (+.f64 2 (sin.f64 re))) 1))
(+.f64 (sin.f64 re) 2)
(fma.f64 1 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(fma.f64 (sin.f64 re) 1 2)
(+.f64 (sin.f64 re) 2)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) 2)
(+.f64 (sin.f64 re) 2)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) 2)
(+.f64 (sin.f64 re) 2)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) 2)
(+.f64 (sin.f64 re) 2)
(+.f64 0 re)
re
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 re)) (cbrt.f64 (exp.f64 re)))) (log.f64 (cbrt.f64 (exp.f64 re))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 re)))) (log.f64 (cbrt.f64 (exp.f64 re))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 re))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 re))) (log.f64 (sqrt.f64 (exp.f64 re))))
re
(-.f64 (exp.f64 (log1p.f64 re)) 1)
re
(*.f64 1 re)
re
(*.f64 re 1)
re
(*.f64 (cbrt.f64 re) (pow.f64 (cbrt.f64 re) 2))
re
(*.f64 (pow.f64 (cbrt.f64 re) 2) (cbrt.f64 re))
re
(*.f64 (sqrt.f64 re) (sqrt.f64 re))
re
(pow.f64 re 1)
re
(pow.f64 (cbrt.f64 re) 3)
re
(pow.f64 (pow.f64 re 3) 1/3)
re
(pow.f64 (sqrt.f64 re) 2)
re
(sqrt.f64 (pow.f64 re 2))
re
(log.f64 (exp.f64 re))
re
(cbrt.f64 (pow.f64 re 3))
re
(expm1.f64 (log1p.f64 re))
re
(exp.f64 (log.f64 re))
re
(exp.f64 (*.f64 (log.f64 re) 1))
re

eval43.0ms (0.6%)

Compiler

Compiled 1693 to 1174 computations (30.7% saved)

prune95.0ms (1.2%)

Pruning

25 alts after pruning (14 fresh and 11 done)

PrunedKeptTotal
New1332135
Fresh01212
Picked145
Done077
Total13425159
Accuracy
100.0%
Counts
159 → 25
Alt Table
Click to see full alt table
StatusAccuracyProgram
24.5%
(pow.f64 re -4)
11.1%
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
3.7%
(-.f64 (sin.f64 re) 2)
7.8%
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
5.0%
(+.f64 (sin.f64 re) 2)
46.1%
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
5.9%
(+.f64 re re)
3.5%
(+.f64 re 5)
48.6%
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
30.5%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
27.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
74.3%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
74.3%
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
46.1%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
60.9%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
10.3%
(*.f64 (sin.f64 re) 2)
2.5%
(*.f64 re -3)
47.4%
(sin.f64 re)
31.6%
(log1p.f64 (expm1.f64 re))
24.5%
(exp.f64 (*.f64 (log.f64 re) -4))
22.0%
re
5.0%
2
5.5%
1
3.8%
-2
Compiler

Compiled 375 to 267 computations (28.8% saved)

regimes107.0ms (1.4%)

Counts
32 → 1
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.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 (neg.f64 im)) (exp.f64 im)))
Calls

6 calls:

21.0ms
(+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
19.0ms
(*.f64 1/2 (sin.f64 re))
18.0ms
re
18.0ms
im
17.0ms
(sin.f64 re)
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 39 to 30 computations (23.1% saved)

regimes226.0ms (2.9%)

Counts
29 → 5
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
Calls

4 calls:

76.0ms
im
58.0ms
(sin.f64 re)
57.0ms
(*.f64 1/2 (sin.f64 re))
34.0ms
re
Results
AccuracySegmentsBranch
87.6%2re
93.6%5im
88.3%3(*.f64 1/2 (sin.f64 re))
88.3%3(sin.f64 re)
Compiler

Compiled 16 to 12 computations (25% saved)

regimes55.0ms (0.7%)

Counts
28 → 3
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
Calls

1 calls:

53.0ms
im
Results
AccuracySegmentsBranch
92.0%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes129.0ms (1.7%)

Counts
26 → 5
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(pow.f64 re -4)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(pow.f64 re -4)
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
Calls

4 calls:

74.0ms
im
23.0ms
(sin.f64 re)
15.0ms
(*.f64 1/2 (sin.f64 re))
15.0ms
re
Results
AccuracySegmentsBranch
74.3%1(*.f64 1/2 (sin.f64 re))
74.3%1(sin.f64 re)
74.3%1re
85.0%5im
Compiler

Compiled 16 to 12 computations (25% saved)

regimes207.0ms (2.7%)

Counts
25 → 5
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
Outputs
(sin.f64 re)
(pow.f64 re -4)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(pow.f64 re -4)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
Calls

1 calls:

205.0ms
im
Results
AccuracySegmentsBranch
84.7%5im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes271.0ms (3.5%)

Counts
24 → 5
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(log1p.f64 (expm1.f64 re))
(exp.f64 (*.f64 (log.f64 re) -4))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
Outputs
(sin.f64 re)
(pow.f64 re -4)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2)
(pow.f64 re -4)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
Calls

3 calls:

133.0ms
(sin.f64 re)
74.0ms
re
63.0ms
im
Results
AccuracySegmentsBranch
66.4%5(sin.f64 re)
67.1%6re
78.8%5im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes35.0ms (0.5%)

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

1 calls:

34.0ms
im
Results
AccuracySegmentsBranch
76.9%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes31.0ms (0.4%)

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

1 calls:

30.0ms
im
Results
AccuracySegmentsBranch
76.9%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes20.0ms (0.3%)

Counts
17 → 2
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
(pow.f64 re -4)
(*.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) 2)
(-.f64 (sin.f64 re) 2)
(+.f64 (sin.f64 re) (*.f64 1/2 -4))
(+.f64 (sin.f64 re) (*.f64 1/2 1/2))
(+.f64 (sin.f64 re) (*.f64 1/2 4))
Outputs
(sin.f64 re)
(pow.f64 re -4)
Calls

1 calls:

19.0ms
im
Results
AccuracySegmentsBranch
69.0%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes24.0ms (0.3%)

Counts
10 → 1
Calls
Call 1
Inputs
-2
0
1
2
re
(*.f64 re -3)
(+.f64 re 5)
(+.f64 re re)
(/.f64 re -4)
(sin.f64 re)
Outputs
(sin.f64 re)
Calls

3 calls:

8.0ms
im
8.0ms
re
7.0ms
(sin.f64 re)
Results
AccuracySegmentsBranch
47.4%1re
47.4%1(sin.f64 re)
47.4%1im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes19.0ms (0.3%)

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

2 calls:

12.0ms
re
6.0ms
im
Results
AccuracySegmentsBranch
23.9%2re
22.0%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes10.0ms (0.1%)

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

2 calls:

5.0ms
im
4.0ms
re
Results
AccuracySegmentsBranch
5.5%1im
5.5%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes7.0ms (0.1%)

Accuracy

Total -1.4b remaining (-2.3%)

Threshold costs -1.4b (-2.3%)

Counts
2 → 1
Calls
Call 1
Inputs
-2
0
Outputs
-2
Calls

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

bsearch75.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
23.0ms
2.878680056239501e+144
2.6991915003044804e+147
17.0ms
6.73092473262927e+115
3.969005329892525e+116
26.0ms
3.2947627895740544e+100
7.547668959646751e+105
10.0ms
0.09688937131870806
0.1242245586684452
Results
54.0ms367×0infinite
9.0ms48×0valid
0.0ms0infinite
Compiler

Compiled 744 to 569 computations (23.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
Operation ival-sin, time spent: 10.0ms, 38.0% of total-time
Operation ival-mult, time spent: 6.0ms, 23.0% of total-time
Operation ival-exp, time spent: 5.0ms, 19.0% of total-time
Operation ival-sub, time spent: 2.0ms, 8.0% of total-time
Operation ival-add, time spent: 2.0ms, 8.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch47.0ms (0.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
38.0ms
2.878680056239501e+144
2.6991915003044804e+147
8.0ms
0.09688937131870806
0.1242245586684452
Results
18.0ms127×0infinite
7.0ms48×0valid
0.0ms0infinite
Compiler

Compiled 294 to 224 computations (23.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
Operation ival-sin, time spent: 4.0ms, 35.0% of total-time
Operation ival-mult, time spent: 3.0ms, 26.0% of total-time
Operation ival-exp, time spent: 2.0ms, 18.0% of total-time
Operation ival-sub, time spent: 1.0ms, 9.0% of total-time
Operation ival-add, time spent: 1.0ms, 9.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch70.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
13.0ms
6.829623311531409e+143
1.4807711375580599e+144
17.0ms
6.73092473262927e+115
3.969005329892525e+116
25.0ms
3.2947627895740544e+100
7.547668959646751e+105
15.0ms
226130620755675.28
816887520793200.4
Results
58.0ms399×0infinite
0.0ms0infinite
Compiler

Compiled 469 to 380 computations (19% saved)

Precisions
Click to see histograms. Total time spent on operations: 28.0ms
Operation ival-sin, time spent: 10.0ms, 35.0% of total-time
Operation ival-mult, time spent: 8.0ms, 28.0% of total-time
Operation ival-exp, time spent: 5.0ms, 18.0% of total-time
Operation ival-add, time spent: 3.0ms, 11.0% of total-time
Operation ival-sub, time spent: 2.0ms, 7.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch72.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
6.829623311531409e+143
1.4807711375580599e+144
17.0ms
6.73092473262927e+115
3.969005329892525e+116
25.0ms
3.2947627895740544e+100
7.547668959646751e+105
15.0ms
226130620755675.28
816887520793200.4
Results
60.0ms399×0infinite
0.0ms0infinite
Compiler

Compiled 429 to 355 computations (17.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
Operation ival-sin, time spent: 11.0ms, 41.0% of total-time
Operation ival-mult, time spent: 6.0ms, 22.0% of total-time
Operation ival-exp, time spent: 4.0ms, 15.0% of total-time
Operation ival-sub, time spent: 2.0ms, 7.0% of total-time
Operation ival-add, time spent: 2.0ms, 7.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch100.0ms (1.3%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
44.0ms
1.4807711375580599e+144
2.878680056239501e+144
16.0ms
6.73092473262927e+115
3.969005329892525e+116
27.0ms
3.2947627895740544e+100
7.547668959646751e+105
13.0ms
226130620755675.28
816887520793200.4
Results
88.0ms383×0infinite
0.0ms0infinite
Compiler

Compiled 412 to 337 computations (18.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
Operation ival-sin, time spent: 9.0ms, 37.0% of total-time
Operation ival-mult, time spent: 6.0ms, 25.0% of total-time
Operation ival-exp, time spent: 4.0ms, 17.0% of total-time
Operation ival-sub, time spent: 2.0ms, 8.0% of total-time
Operation ival-add, time spent: 2.0ms, 8.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch26.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
11.0ms
1.4807711375580599e+144
2.878680056239501e+144
15.0ms
226130620755675.28
816887520793200.4
Results
22.0ms143×0infinite
0.0ms0infinite
Compiler

Compiled 142 to 112 computations (21.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
Operation ival-sin, time spent: 3.0ms, 32.0% of total-time
Operation ival-exp, time spent: 2.0ms, 22.0% of total-time
Operation ival-mult, time spent: 2.0ms, 22.0% of total-time
Operation ival-sub, time spent: 1.0ms, 11.0% of total-time
Operation ival-add, time spent: 1.0ms, 11.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch32.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
1.4807711375580599e+144
2.878680056239501e+144
18.0ms
226130620755675.28
816887520793200.4
Results
25.0ms143×0infinite
0.0ms0infinite
Compiler

Compiled 138 to 112 computations (18.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 9.0ms
Operation ival-sin, time spent: 3.0ms, 33.0% of total-time
Operation ival-exp, time spent: 2.0ms, 22.0% of total-time
Operation ival-mult, time spent: 2.0ms, 22.0% of total-time
Operation ival-sub, time spent: 1.0ms, 11.0% of total-time
Operation ival-add, time spent: 1.0ms, 11.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch13.0ms (0.2%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
13.0ms
226130620755675.28
816887520793200.4
Results
11.0ms79×0infinite
0.0ms0infinite
Compiler

Compiled 74 to 60 computations (18.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
Operation ival-sin, time spent: 2.0ms, 40.0% of total-time
Operation ival-exp, time spent: 1.0ms, 20.0% of total-time
Operation ival-mult, time spent: 1.0ms, 20.0% of total-time
Operation ival-sub, time spent: 0.0ms, 0.0% of total-time
Operation ival-add, time spent: 0.0ms, 0.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

bsearch23.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
23.0ms
410303438.8741814
57940638726.72018
Results
13.0ms62×0infinite
7.0ms49×0valid
0.0ms0valid
Compiler

Compiled 75 to 64 computations (14.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
Operation ival-sin, time spent: 8.0ms, 66.0% of total-time
Operation ival-mult, time spent: 2.0ms, 17.0% of total-time
Operation ival-sub, time spent: 1.0ms, 8.0% of total-time
Operation ival-exp, time spent: 1.0ms, 8.0% of total-time
Operation ival-add, time spent: 1.0ms, 8.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time
Operation backward-pass, time spent: 0.0ms, 0.0% of total-time

simplify38.0ms (0.5%)

Algorithm
egg-herbie
Rules
26×*-commutative
12×+-commutative
sub-neg
neg-sub0
neg-mul-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0951032
11241032
21291032
31321032
41331032
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 3602879701896397/36028797018963968) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7500000000000000173510998794141741011341982861471608915791994614646614512478388275520310132322032597073920) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3)))) (if (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 7566047373982433/72057594037927936) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))
(if (<=.f64 im 230000000000000) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7300000000000000236785238037447497459987719598811638046419821213787246480016979566652478520904668600598528) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 5000000000000000455179995251842175052302269975877432785772728687420451447675667076077090048770806095282176) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1050000000000000049754489535360919819943448705723252261354234166874729164698729975502609665566793390882816) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 2649999999999999846310575897236768292569335372567593465833035706240459253092637281788381042458118929444766341318771768742164188540554667031003136) (pow.f64 re -4) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1799999999999999869449922363021060919684697761148896472674919768617891425020663242208887992937348489434422362932188577849477458618078907521302528) (pow.f64 re -4) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 2400000000000000056989037660762652857780779026788837249936315972808569830900849374163626307718599905910430325921216278581904191607736195776249856) (pow.f64 re -4) (*.f64 (pow.f64 im 2) (*.f64 1/2 re))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (pow.f64 re -4))
(sin.f64 re)
(if (<=.f64 re 420000000) re 1)
1
-2
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 3602879701896397/36028797018963968) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7500000000000000173510998794141741011341982861471608915791994614646614512478388275520310132322032597073920) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3)))) (if (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 3602879701896397/36028797018963968) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7500000000000000173510998794141741011341982861471608915791994614646614512478388275520310132322032597073920) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (*.f64 (fma.f64 im im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3)))) (if (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 7566047373982433/72057594037927936) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))
(if (or (<=.f64 im 7566047373982433/72057594037927936) (not (<=.f64 im 2650000000000000101396187756351735373783440313731294181985246640815584168776758698333541360575676249122411702899612953702155596989683275296625655808))) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(if (<=.f64 im 230000000000000) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7300000000000000236785238037447497459987719598811638046419821213787246480016979566652478520904668600598528) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 230000000000000) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (if (<=.f64 im 7300000000000000236785238037447497459987719598811638046419821213787246480016979566652478520904668600598528) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 5000000000000000455179995251842175052302269975877432785772728687420451447675667076077090048770806095282176) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 5000000000000000455179995251842175052302269975877432785772728687420451447675667076077090048770806095282176) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) 2) (if (<=.f64 im 1460000000000000017339145655375520949451551923735602847233527162359693052315852657108156163410321465429005076784534206361963314719267195166130176) (pow.f64 re -4) (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 im 2))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1050000000000000049754489535360919819943448705723252261354234166874729164698729975502609665566793390882816) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 2) (if (<=.f64 im 2649999999999999846310575897236768292569335372567593465833035706240459253092637281788381042458118929444766341318771768742164188540554667031003136) (pow.f64 re -4) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1050000000000000049754489535360919819943448705723252261354234166874729164698729975502609665566793390882816) (pow.f64 re -4) (if (<=.f64 im 68000000000000001058040296803745325650237694990632177469144399469296697119203387822019006514223226441982027099013120) (-.f64 (+.f64 re (*.f64 (pow.f64 re 3) -1/6)) 2) (if (<=.f64 im 2649999999999999846310575897236768292569335372567593465833035706240459253092637281788381042458118929444766341318771768742164188540554667031003136) (pow.f64 re -4) (*.f64 (fma.f64 im im 2) (*.f64 1/2 re))))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1799999999999999869449922363021060919684697761148896472674919768617891425020663242208887992937348489434422362932188577849477458618078907521302528) (pow.f64 re -4) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 1799999999999999869449922363021060919684697761148896472674919768617891425020663242208887992937348489434422362932188577849477458618078907521302528) (pow.f64 re -4) (*.f64 (fma.f64 im im 2) (*.f64 1/2 re))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 2400000000000000056989037660762652857780779026788837249936315972808569830900849374163626307718599905910430325921216278581904191607736195776249856) (pow.f64 re -4) (*.f64 (pow.f64 im 2) (*.f64 1/2 re))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (if (<=.f64 im 2400000000000000056989037660762652857780779026788837249936315972808569830900849374163626307718599905910430325921216278581904191607736195776249856) (pow.f64 re -4) (*.f64 (*.f64 1/2 re) (pow.f64 im 2))))
(if (<=.f64 im 230000000000000) (sin.f64 re) (pow.f64 re -4))
(sin.f64 re)
(if (<=.f64 re 420000000) re 1)
1
-2
Compiler

Compiled 324 to 230 computations (29% saved)

soundness1.4s (17.9%)

Rules
2434×fma-neg
1284×distribute-lft-in
1284×distribute-lft-in
1228×fma-define
1228×fma-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036316
1111308
2397308
3993298
42120294
54319294
67087294
024121
1348121
25950121
01669
120269
2330669
01122107
13281974
29381737
344651728
01122107
13281974
29381737
344651728
024121
1348121
25950121
03636602
19416068
232395807
01492352
13672298
29472229
341712191
01492352
13672298
29472229
341712191
01122107
13281974
29381737
344651728
03636602
19416068
232395807
Stop Event
node limit
node limit
node limit
node limit
node limit
unsound
node limit
node limit
unsound
unsound
node limit
Compiler

Compiled 486 to 338 computations (30.5% saved)

end1.0ms (0%)

preprocess337.0ms (4.4%)

Remove

(negabs re)

(abs im)

Compiler

Compiled 888 to 600 computations (32.4% saved)

Profiling

Loading profile data...