math.sin on complex, real part

Time bar (total: 5.8s)

analyze0.0ms (0%)

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

Compiled 15 to 12 computations (20% saved)

sample1.7s (28.8%)

Results
907.0ms4152×body256valid
762.0ms4104×body256infinite
Bogosity

preprocess188.0ms (3.2%)

Algorithm
egg-herbie
Rules
2266×fma-def
1530×div-sub
1052×times-frac
898×distribute-lft-neg-in
784×distribute-rgt-neg-in
Problems
256×No Errors
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
036316
1111308
2397308
31003298
42231294
55114294
67594294
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 55 to 36 computations (34.5% saved)

eval1.0ms (0%)

Compiler

Compiled 24 to 15 computations (37.5% saved)

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

Compiled 52 to 38 computations (26.9% saved)

localize90.0ms (1.5%)

Localize:

Found 5 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)))
100.0%
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
100.0%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
100.0%
(/.f64 1/2 (exp.f64 im))
Compiler

Compiled 66 to 26 computations (60.6% saved)

series14.0ms (0.2%)

Counts
5 → 76
Calls

21 calls:

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

rewrite142.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
268×associate-*r*
166×associate-*l*
120×add-exp-log
120×add-log-exp
120×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020126
1270126
24369126
Stop Event
unsound
Counts
5 → 64
Calls
Call 1
Inputs
(/.f64 1/2 (exp.f64 im))
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.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
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
-1/2
-1/4
0
1/4
1/2
2

simplify95.0ms (1.6%)

Algorithm
egg-herbie
Rules
1666×fma-def
1308×associate-*r*
1112×associate-*l*
976×distribute-lft-in
762×associate-+r+
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01514180
14793815
215203601
363623601
Stop Event
node limit
Counts
140 → 113
Calls
Call 1
Inputs
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (*.f64 1/4 (pow.f64 im 2))))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (+.f64 (*.f64 -1/12 (pow.f64 im 3)) (*.f64 1/4 (pow.f64 im 2)))))
(*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.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 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (+.f64 (*.f64 1/720 (pow.f64 im 6)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.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 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)))
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
-1/2
-1/4
0
1/4
1/2
2
Outputs
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(fma.f64 -1/2 im 1/2)
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (*.f64 1/4 (pow.f64 im 2))))
(+.f64 1/2 (fma.f64 -1/2 im (*.f64 1/4 (pow.f64 im 2))))
(+.f64 (fma.f64 -1/2 im 1/2) (*.f64 1/4 (pow.f64 im 2)))
(fma.f64 -1/2 im (fma.f64 1/4 (pow.f64 im 2) 1/2))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (+.f64 (*.f64 -1/12 (pow.f64 im 3)) (*.f64 1/4 (pow.f64 im 2)))))
(+.f64 1/2 (fma.f64 -1/2 im (fma.f64 -1/12 (pow.f64 im 3) (*.f64 1/4 (pow.f64 im 2)))))
(+.f64 (fma.f64 -1/2 im 1/2) (fma.f64 1/4 (pow.f64 im 2) (*.f64 -1/12 (pow.f64 im 3))))
(+.f64 (fma.f64 -1/2 im 1/2) (*.f64 (pow.f64 im 2) (+.f64 1/4 (*.f64 im -1/12))))
(*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (fma.f64 -1/6 (pow.f64 re 3) re))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (fma.f64 1/120 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 5)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (fma.f64 1/120 (pow.f64 re 5) re)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))) (*.f64 re (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (fma.f64 -1/5040 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 7)) (fma.f64 1/120 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 5)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))))))
(+.f64 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))) (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (fma.f64 1/120 (pow.f64 re 5) re) (fma.f64 -1/6 (pow.f64 re 3) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.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 (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 (pow.f64 im 2) (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) 1)))
(+.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 (pow.f64 im 2) (sin.f64 re))))))
(+.f64 (*.f64 (sin.f64 re) (fma.f64 1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/720 (pow.f64 im 6))))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 im 4))))
(fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) 1))
(+.f64 1 (+.f64 (*.f64 1/720 (pow.f64 im 6)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 1 (fma.f64 1/720 (pow.f64 im 6) (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (fma.f64 1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4))) (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 1/720 (pow.f64 im 6) (fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) 1)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))
(fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (fma.f64 -1/6 (pow.f64 re 3) 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/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (fma.f64 1/120 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 5)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))))
(fma.f64 -1/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (fma.f64 1/120 (pow.f64 re 5) re)))
(+.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/6 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 3)) (fma.f64 -1/5040 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 7)) (fma.f64 1/120 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (pow.f64 re 5)) (*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))))))
(+.f64 (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))) (*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (+.f64 (fma.f64 1/120 (pow.f64 re 5) re) (fma.f64 -1/6 (pow.f64 re 3) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.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 (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 (pow.f64 im 2) (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) 1)))
(+.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 (pow.f64 im 2) (sin.f64 re))))))
(+.f64 (*.f64 (sin.f64 re) (fma.f64 1/720 (pow.f64 im 6) (*.f64 1/24 (pow.f64 im 4)))) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) (fma.f64 1/24 (pow.f64 im 4) (*.f64 1/720 (pow.f64 im 6))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (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 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 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)))
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(*.f64 2 (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) -1)
(neg.f64 (sin.f64 re))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(+.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) 1)
(+.f64 1 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(sin.f64 re)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 -1/2 (/.f64 -1 (sin.f64 re)))
(*.f64 1/2 (sin.f64 re))
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
1
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
1
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 1 (*.f64 -1/2 (sin.f64 re)))
(/.f64 -2 (sin.f64 re))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(*.f64 -1/8 (pow.f64 (sin.f64 re) 3))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(*.f64 1/2 (fabs.f64 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(*.f64 (sin.f64 re) (log.f64 -1))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(/.f64 1 (*.f64 -1/2 (sin.f64 re)))
(/.f64 -2 (sin.f64 re))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(*.f64 (*.f64 -1/2 (sin.f64 re)) (exp.f64 -1/2))
(*.f64 -1/2 (*.f64 (sin.f64 re) (exp.f64 -1/2)))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
0
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
0
-1/2
-1/4
0
1/4
1/2
2
(+.f64 (sin.f64 re) (sin.f64 re))
(*.f64 2 (sin.f64 re))
(+.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) -1)
(neg.f64 (sin.f64 re))
(-.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) -1)
(+.f64 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))) 1)
(+.f64 1 (exp.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re)))))
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(sin.f64 re)
(/.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 -1/2 (/.f64 -1 (sin.f64 re)))
(*.f64 1/2 (sin.f64 re))
(/.f64 (*.f64 -1/2 (sin.f64 re)) (+.f64 (*.f64 -1/2 (sin.f64 re)) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))))
1
(/.f64 (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))) (-.f64 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re))))
1
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1/2)
(pow.f64 (*.f64 -1/2 (sin.f64 re)) -1)
(/.f64 1 (*.f64 -1/2 (sin.f64 re)))
(/.f64 -2 (sin.f64 re))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 3)
(*.f64 -1/8 (pow.f64 (sin.f64 re) 3))
(pow.f64 (*.f64 -1/2 (sin.f64 re)) 1/3)
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(sqrt.f64 (*.f64 -1/2 (sin.f64 re)))
(fabs.f64 (*.f64 -1/2 (sin.f64 re)))
(*.f64 1/2 (fabs.f64 (sin.f64 re)))
(log.f64 (pow.f64 -1 (sin.f64 re)))
(*.f64 (sin.f64 re) (log.f64 -1))
(log.f64 (+.f64 -1 (expm1.f64 (*.f64 -1/2 (sin.f64 re)))))
(cbrt.f64 (*.f64 -1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(exp.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(exp.f64 (*.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1))
(/.f64 1 (*.f64 -1/2 (sin.f64 re)))
(/.f64 -2 (sin.f64 re))
(exp.f64 (+.f64 (log.f64 (*.f64 -1/2 (sin.f64 re))) -1/2))
(*.f64 (*.f64 -1/2 (sin.f64 re)) (exp.f64 -1/2))
(*.f64 -1/2 (*.f64 (sin.f64 re) (exp.f64 -1/2)))
(log1p.f64 (expm1.f64 (*.f64 -1/2 (sin.f64 re))))
(*.f64 -1/2 (sin.f64 re))
(fma.f64 -1 (*.f64 -1/2 (sin.f64 re)) (*.f64 -1/2 (sin.f64 re)))
0
(fma.f64 (*.f64 -1/2 (sin.f64 re)) -1 (*.f64 -1/2 (sin.f64 re)))
0
-1/2
-1/4
0
1/4
1/2
2

eval41.0ms (0.7%)

Compiler

Compiled 1654 to 1042 computations (37% saved)

prune25.0ms (0.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1076113
Fresh000
Picked112
Done000
Total1087115
Accuracy
100.0%
Counts
115 → 7
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.8%
(*.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)))
58.7%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) 0))
10.9%
(*.f64 2 (sin.f64 re))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
51.6%
(sin.f64 re)
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.8%
(*.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)))
58.7%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) 0))
10.9%
(*.f64 2 (sin.f64 re))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
51.6%
(sin.f64 re)
Compiler

Compiled 250 to 188 computations (24.8% saved)

localize121.0ms (2.1%)

Localize:

Found 5 expressions with local error:

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

Compiled 105 to 44 computations (58.1% saved)

series13.0ms (0.2%)

Counts
5 → 51
Calls

27 calls:

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

rewrite50.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
352×associate-*r*
212×associate-*l*
154×log1p-expm1-u
154×expm1-log1p-u
152×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024115
1341115
25834115
Stop Event
unsound
Counts
5 → 70
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))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -2)
(/.f64 re -2)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -2)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -2 (expm1.f64 re)))
(cbrt.f64 re)
re
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -2))
(log1p.f64 (expm1.f64 re))
(fma.f64 -2 re re)
(fma.f64 re -2 re)
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8

simplify73.0ms (1.3%)

Algorithm
egg-herbie
Rules
1668×fma-def
942×distribute-lft-out
852×associate-*r*
742×associate-+r+
722×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01382374
13662275
210952001
353271975
Stop Event
node limit
Counts
121 → 101
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/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))))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
(+.f64 (*.f64 1/360 (*.f64 (pow.f64 im 6) re)) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.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)))
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
(+.f64 re re)
(-.f64 (exp.f64 (log1p.f64 re)) -2)
(/.f64 re -2)
(/.f64 re (+.f64 re (-.f64 re re)))
(/.f64 (-.f64 re re) (-.f64 re re))
(pow.f64 re -2)
(pow.f64 re 1/3)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
(log.f64 (+.f64 -2 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
(exp.f64 (log.f64 re))
(exp.f64 (*.f64 (log.f64 re) -2))
(log1p.f64 (expm1.f64 re))
(fma.f64 -2 re re)
(fma.f64 re -2 re)
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
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) (*.f64 1/120 (pow.f64 re 5)) (*.f64 (pow.f64 im 2) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(*.f64 (pow.f64 im 2) (+.f64 re (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/6 (pow.f64 re 3)))))
(+.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 re (*.f64 -1/6 (pow.f64 re 3))) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.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 (fma.f64 im im 2) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/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 (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 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 3) -1/12) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/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)))))
(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)))))
(*.f64 (fma.f64 im im 2) (+.f64 (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 (pow.f64 re 7) -1/10080))))
(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/2 (*.f64 re (+.f64 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 -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 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 (fma.f64 im im 2) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 re 1/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))))))
(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 (fma.f64 im im 2) (+.f64 (*.f64 (pow.f64 re 3) -1/12) (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/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)))))))
(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)))))
(*.f64 (fma.f64 im im 2) (+.f64 (fma.f64 (pow.f64 re 5) 1/240 (*.f64 re 1/2)) (fma.f64 (pow.f64 re 3) -1/12 (*.f64 (pow.f64 re 7) -1/10080))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (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 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (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 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (*.f64 (fma.f64 im im 2) 1/2))
(*.f64 (fma.f64 (pow.f64 im 2) 1/2 1) (sin.f64 re))
(*.f64 2 re)
(+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re))
(*.f64 re (+.f64 2 (pow.f64 im 2)))
(*.f64 re (fma.f64 im im 2))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
(fma.f64 1/12 (*.f64 re (pow.f64 im 4)) (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 re (+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2))))
(*.f64 re (fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2)))
(+.f64 (*.f64 1/360 (*.f64 (pow.f64 im 6) re)) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 4) re)) (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re))))
(fma.f64 1/360 (*.f64 re (pow.f64 im 6)) (fma.f64 1/12 (*.f64 re (pow.f64 im 4)) (*.f64 re (+.f64 2 (pow.f64 im 2)))))
(fma.f64 1/360 (*.f64 re (pow.f64 im 6)) (*.f64 re (+.f64 2 (fma.f64 1/12 (pow.f64 im 4) (pow.f64 im 2)))))
(*.f64 re (fma.f64 1/360 (pow.f64 im 6) (fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))))
(*.f64 re (+.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))))
(fma.f64 1/360 (pow.f64 im 6) (fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8
(+.f64 re re)
(*.f64 2 re)
(-.f64 (exp.f64 (log1p.f64 re)) -2)
(+.f64 (exp.f64 (log1p.f64 re)) 2)
(+.f64 2 (exp.f64 (log1p.f64 re)))
(/.f64 re -2)
(/.f64 re (+.f64 re (-.f64 re re)))
1
(/.f64 (-.f64 re re) (-.f64 re re))
1
(pow.f64 re -2)
(pow.f64 re 1/3)
(cbrt.f64 re)
(sqrt.f64 re)
(fabs.f64 re)
(log.f64 (exp.f64 re))
re
(log.f64 (+.f64 -2 (expm1.f64 re)))
(cbrt.f64 re)
(expm1.f64 (log1p.f64 re))
re
(exp.f64 (log.f64 re))
re
(exp.f64 (*.f64 (log.f64 re) -2))
(pow.f64 re -2)
(log1p.f64 (expm1.f64 re))
re
(fma.f64 -2 re re)
(neg.f64 re)
(fma.f64 re -2 re)
(fma.f64 -2 re re)
(neg.f64 re)
-2
-1
-1/2
0
1/8
1/4
1/2
1
3/2
2
3
4
8

eval38.0ms (0.6%)

Compiler

Compiled 1464 to 1075 computations (26.6% saved)

prune38.0ms (0.7%)

Pruning

20 alts after pruning (14 fresh and 6 done)

PrunedKeptTotal
New8813101
Fresh011
Picked055
Done011
Total8820108
Accuracy
100.0%
Counts
108 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
4.7%
(+.f64 (sin.f64 re) (*.f64 1/2 8))
3.6%
(+.f64 (sin.f64 re) (*.f64 1/2 -2))
26.9%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
74.8%
(*.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)))
58.7%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) 0))
10.9%
(*.f64 2 (sin.f64 re))
14.0%
(*.f64 1/2 (pow.f64 re -2))
5.2%
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
2.9%
(*.f64 1/2 (/.f64 re -2))
47.0%
(*.f64 1/2 (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
29.4%
(*.f64 1/2 (+.f64 re re))
47.0%
(*.f64 1/2 (*.f64 re (fma.f64 im im 2)))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2.9%
(*.f64 1/2 (neg.f64 re))
16.4%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
14.0%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
7.1%
(*.f64 1/2 re)
51.6%
(sin.f64 re)
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
4.7%
(+.f64 (sin.f64 re) (*.f64 1/2 8))
3.6%
(+.f64 (sin.f64 re) (*.f64 1/2 -2))
26.9%
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
74.8%
(*.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)))
58.7%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) 0))
10.9%
(*.f64 2 (sin.f64 re))
14.0%
(*.f64 1/2 (pow.f64 re -2))
5.2%
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
2.9%
(*.f64 1/2 (/.f64 re -2))
47.0%
(*.f64 1/2 (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
29.4%
(*.f64 1/2 (+.f64 re re))
47.0%
(*.f64 1/2 (*.f64 re (fma.f64 im im 2)))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2.9%
(*.f64 1/2 (neg.f64 re))
16.4%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
14.0%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
7.1%
(*.f64 1/2 re)
51.6%
(sin.f64 re)
Compiler

Compiled 590 to 464 computations (21.4% saved)

localize116.0ms (2%)

Localize:

Found 3 expressions with local error:

NewAccuracyProgram
90.8%
(*.f64 (pow.f64 im 2) re)
99.5%
(+.f64 (sin.f64 re) (*.f64 1/2 -2))
100.0%
(*.f64 (sin.f64 re) (fma.f64 1/2 (exp.f64 im) 0))
Compiler

Compiled 89 to 57 computations (36% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite104.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
922×log-prod
848×log1p-expm1-u
848×expm1-log1p-u
470×pow-prod-up
414×pow-exp
Iterations

Useful iterations: 1 (0.0ms)

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

simplify74.0ms (1.3%)

Algorithm
egg-herbie
Rules
1772×fma-def
1032×unswap-sqr
896×distribute-lft-in
874×distribute-rgt-in
710×*-commutative
Iterations

Useful iterations: 2 (0.0ms)

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

eval54.0ms (0.9%)

Compiler

Compiled 2266 to 1420 computations (37.3% saved)

prune203.0ms (3.5%)

Pruning

19 alts after pruning (12 fresh and 7 done)

PrunedKeptTotal
New1587165
Fresh459
Picked325
Done156
Total16619185
Accuracy
100.0%
Counts
185 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
11.4%
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
3.6%
(-.f64 (sin.f64 re) 1)
2.0%
(-.f64 re 1)
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.8%
(*.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)))
11.8%
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 im) 1/2))
39.9%
(*.f64 (exp.f64 im) (*.f64 1/2 re))
14.0%
(*.f64 1/2 (pow.f64 re -2))
5.2%
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
47.0%
(*.f64 1/2 (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
29.4%
(*.f64 1/2 (+.f64 re re))
58.7%
(*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re)))
47.0%
(*.f64 1/2 (*.f64 re (fma.f64 im im 2)))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2.9%
(*.f64 1/2 (neg.f64 re))
7.1%
(*.f64 1/2 re)
51.6%
(sin.f64 re)
4.1%
-1
11.4%
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
3.6%
(-.f64 (sin.f64 re) 1)
2.0%
(-.f64 re 1)
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.8%
(*.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)))
11.8%
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 im) 1/2))
39.9%
(*.f64 (exp.f64 im) (*.f64 1/2 re))
14.0%
(*.f64 1/2 (pow.f64 re -2))
5.2%
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
47.0%
(*.f64 1/2 (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
29.4%
(*.f64 1/2 (+.f64 re re))
58.7%
(*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re)))
47.0%
(*.f64 1/2 (*.f64 re (fma.f64 im im 2)))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2.9%
(*.f64 1/2 (neg.f64 re))
7.1%
(*.f64 1/2 re)
51.6%
(sin.f64 re)
4.1%
-1
Compiler

Compiled 508 to 388 computations (23.6% saved)

localize79.0ms (1.4%)

Localize:

Found 3 expressions with local error:

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

Compiled 59 to 25 computations (57.6% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

15 calls:

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

rewrite116.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
896×log-prod
778×log1p-expm1-u
778×expm1-log1p-u
642×pow-prod-down
420×pow-prod-up
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01658
118358
2217158
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(*.f64 (exp.f64 im) (sin.f64 re))
(-.f64 (sin.f64 re) 1)
(*.f64 (exp.f64 im) (*.f64 1/2 re))
Outputs
(+.f64 0 (*.f64 (exp.f64 im) (sin.f64 re)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re)))) 1)
(pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(exp.f64 (+.f64 im (log.f64 (sin.f64 re))))
(exp.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1) 1))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (sin.f64 re)))) 3))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (sin.f64 re)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (sin.f64 re)))) 2))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(+.f64 (sin.f64 re) -1)
(+.f64 (sin.f64 re) (log.f64 (exp.f64 -1)))
(+.f64 0 (+.f64 (sin.f64 re) -1))
(+.f64 -1 (sin.f64 re))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))) (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(*.f64 1 (+.f64 (sin.f64 re) -1))
(*.f64 (+.f64 (sin.f64 re) -1) 1)
(*.f64 (+.f64 (sin.f64 re) -1) (log.f64 (exp.f64 1)))
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -1)))
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) (sqrt.f64 (+.f64 (sin.f64 re) -1)))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(*.f64 (+.f64 (sqrt.f64 (sin.f64 re)) 1) (-.f64 (sqrt.f64 (sin.f64 re)) 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 1 (*.f64 (sin.f64 re) -1))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (+.f64 (sin.f64 re) 1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1)) (neg.f64 (+.f64 (sin.f64 re) 1)))
(pow.f64 (+.f64 (sin.f64 re) -1) 1)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 3)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) 2)
(pow.f64 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)) -1)
(pow.f64 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)) -1)
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2))
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -1))))
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3))
(expm1.f64 (log.f64 (sin.f64 re)))
(exp.f64 (log.f64 (+.f64 (sin.f64 re) -1)))
(exp.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (sin.f64 re) -1))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1))) 2))
(log1p.f64 (expm1.f64 (+.f64 (sin.f64 re) -1)))
(fma.f64 (sin.f64 re) 1 -1)
(fma.f64 1 (sin.f64 re) -1)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (cbrt.f64 (sin.f64 re)) 1) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) 1) -1)
(+.f64 0 (*.f64 (exp.f64 im) (*.f64 re 1/2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))) 1)
(pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))
(exp.f64 (+.f64 im (log.f64 (*.f64 re 1/2))))
(exp.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1) 1))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (*.f64 re 1/2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))

simplify189.0ms (3.2%)

Algorithm
egg-herbie
Rules
1108×distribute-lft-in
1076×distribute-rgt-in
946×unswap-sqr
600×prod-exp
592×*-commutative
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02673444
16583224
220343039
373173015
Stop Event
node limit
Counts
126 → 153
Calls
Call 1
Inputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 im (sin.f64 re)))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 im (sin.f64 re))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 im (sin.f64 re)))))
(*.f64 re (exp.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (*.f64 re (exp.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (exp.f64 im))) (*.f64 re (exp.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (exp.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (exp.f64 im))) (*.f64 re (exp.f64 im)))))
-1
(-.f64 re 1)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
(-.f64 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))) 1)
(*.f64 1/2 re)
(+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re)))
(+.f64 (*.f64 1/4 (*.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re))))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 3) re)) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re)))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(+.f64 0 (*.f64 (exp.f64 im) (sin.f64 re)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re)))) 1)
(pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1)
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 3)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 2)
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re)))))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(exp.f64 (+.f64 im (log.f64 (sin.f64 re))))
(exp.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1) 1))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (sin.f64 re)))) 3))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (sin.f64 re)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (sin.f64 re)))) 2))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(+.f64 (sin.f64 re) -1)
(+.f64 (sin.f64 re) (log.f64 (exp.f64 -1)))
(+.f64 0 (+.f64 (sin.f64 re) -1))
(+.f64 -1 (sin.f64 re))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))) (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(*.f64 1 (+.f64 (sin.f64 re) -1))
(*.f64 (+.f64 (sin.f64 re) -1) 1)
(*.f64 (+.f64 (sin.f64 re) -1) (log.f64 (exp.f64 1)))
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -1)))
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) (sqrt.f64 (+.f64 (sin.f64 re) -1)))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(*.f64 (+.f64 (sqrt.f64 (sin.f64 re)) 1) (-.f64 (sqrt.f64 (sin.f64 re)) 1))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 1 (*.f64 (sin.f64 re) -1))))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (+.f64 (sin.f64 re) 1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1)) (neg.f64 (+.f64 (sin.f64 re) 1)))
(pow.f64 (+.f64 (sin.f64 re) -1) 1)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 3)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2) 1/2)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) 2)
(pow.f64 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)) -1)
(pow.f64 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)) -1)
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2))
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -1))))
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3))
(expm1.f64 (log.f64 (sin.f64 re)))
(exp.f64 (log.f64 (+.f64 (sin.f64 re) -1)))
(exp.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (sin.f64 re) -1))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1))) 2))
(log1p.f64 (expm1.f64 (+.f64 (sin.f64 re) -1)))
(fma.f64 (sin.f64 re) 1 -1)
(fma.f64 1 (sin.f64 re) -1)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (cbrt.f64 (sin.f64 re)) 1) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) 1) -1)
(+.f64 0 (*.f64 (exp.f64 im) (*.f64 re 1/2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))) 1)
(pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 1)
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 3)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 2)
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))
(exp.f64 (+.f64 im (log.f64 (*.f64 re 1/2))))
(exp.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1) 1))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 1/3))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (*.f64 re 1/2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))
Outputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 im (sin.f64 re)))
(*.f64 (+.f64 im 1) (sin.f64 re))
(*.f64 (sin.f64 re) (+.f64 im 1))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 im (sin.f64 re))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)) (*.f64 (sin.f64 re) im)))
(+.f64 (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) im)))
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 im 1)))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 im (sin.f64 re)))))
(+.f64 (sin.f64 re) (fma.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)) (fma.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)) (*.f64 (sin.f64 re) im))))
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) im)) (*.f64 (+.f64 (*.f64 1/6 (pow.f64 im 3)) 1) (sin.f64 re)))
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 im 1/6) 1/2)) (+.f64 im 1)))
(*.f64 re (exp.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (*.f64 re (exp.f64 im)))
(fma.f64 -1/6 (*.f64 (exp.f64 im) (pow.f64 re 3)) (*.f64 re (exp.f64 im)))
(*.f64 (exp.f64 im) (fma.f64 -1/6 (pow.f64 re 3) re))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (exp.f64 im))) (*.f64 re (exp.f64 im))))
(fma.f64 -1/6 (*.f64 (exp.f64 im) (pow.f64 re 3)) (fma.f64 1/120 (*.f64 (exp.f64 im) (pow.f64 re 5)) (*.f64 re (exp.f64 im))))
(+.f64 (*.f64 (exp.f64 im) (fma.f64 -1/6 (pow.f64 re 3) re)) (*.f64 (exp.f64 im) (*.f64 1/120 (pow.f64 re 5))))
(*.f64 (exp.f64 im) (+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (*.f64 1/120 (pow.f64 re 5))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (exp.f64 im))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (exp.f64 im))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (exp.f64 im))) (*.f64 re (exp.f64 im)))))
(fma.f64 -1/6 (*.f64 (exp.f64 im) (pow.f64 re 3)) (fma.f64 -1/5040 (*.f64 (exp.f64 im) (pow.f64 re 7)) (fma.f64 1/120 (*.f64 (exp.f64 im) (pow.f64 re 5)) (*.f64 re (exp.f64 im)))))
(+.f64 (*.f64 (exp.f64 im) (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (*.f64 1/120 (pow.f64 re 5)))) (*.f64 (exp.f64 im) (fma.f64 -1/6 (pow.f64 re 3) re)))
(*.f64 (exp.f64 im) (+.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)))
-1
(-.f64 re 1)
(+.f64 re -1)
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
(+.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) -1)
(+.f64 re (fma.f64 -1/6 (pow.f64 re 3) -1))
(-.f64 (+.f64 re (+.f64 (*.f64 -1/6 (pow.f64 re 3)) (*.f64 1/120 (pow.f64 re 5)))) 1)
(+.f64 re (-.f64 (fma.f64 -1/6 (pow.f64 re 3) (*.f64 1/120 (pow.f64 re 5))) 1))
(+.f64 re (+.f64 (*.f64 1/120 (pow.f64 re 5)) (fma.f64 -1/6 (pow.f64 re 3) -1)))
(+.f64 (fma.f64 -1/6 (pow.f64 re 3) re) (fma.f64 1/120 (pow.f64 re 5) -1))
(*.f64 1/2 re)
(*.f64 re 1/2)
(+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re)))
(*.f64 1/2 (+.f64 re (*.f64 re im)))
(*.f64 1/2 (*.f64 (+.f64 im 1) re))
(*.f64 (+.f64 im 1) (*.f64 re 1/2))
(+.f64 (*.f64 1/4 (*.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re))))
(fma.f64 1/4 (*.f64 re (pow.f64 im 2)) (*.f64 1/2 (+.f64 re (*.f64 re im))))
(fma.f64 1/4 (*.f64 re (pow.f64 im 2)) (*.f64 1/2 (*.f64 (+.f64 im 1) re)))
(*.f64 re (+.f64 (*.f64 im 1/2) (+.f64 1/2 (*.f64 (pow.f64 im 2) 1/4))))
(+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 3) re)) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 1/2 re) (*.f64 1/2 (*.f64 im re)))))
(fma.f64 1/12 (*.f64 re (pow.f64 im 3)) (fma.f64 1/4 (*.f64 re (pow.f64 im 2)) (*.f64 1/2 (+.f64 re (*.f64 re im)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 im 1) re)) (*.f64 re (+.f64 (*.f64 (pow.f64 im 3) 1/12) (*.f64 (pow.f64 im 2) 1/4))))
(*.f64 re (+.f64 (+.f64 1/2 (*.f64 im 1/2)) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 im 1/12) 1/4))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(+.f64 0 (*.f64 (exp.f64 im) (sin.f64 re)))
(*.f64 (sin.f64 re) (exp.f64 im))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))))
(*.f64 (sin.f64 re) (exp.f64 im))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re)))) 1)
(*.f64 (sin.f64 re) (exp.f64 im))
(pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1)
(*.f64 (sin.f64 re) (exp.f64 im))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 3)
(*.f64 (sin.f64 re) (exp.f64 im))
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2) 1/2)
(*.f64 (sin.f64 re) (exp.f64 im))
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3) 1/3)
(*.f64 (sin.f64 re) (exp.f64 im))
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (sin.f64 re))) 2)
(*.f64 (sin.f64 re) (exp.f64 im))
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 2))
(*.f64 (sin.f64 re) (exp.f64 im))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (sin.f64 re)))
(*.f64 (sin.f64 re) (exp.f64 im))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re)))))
(*.f64 (sin.f64 re) (exp.f64 im))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 3))
(*.f64 (sin.f64 re) (exp.f64 im))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (+.f64 im (log.f64 (sin.f64 re))))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (sin.f64 re))) 1) 1))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (sin.f64 re)))) 3))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (sin.f64 re)))) 1/3))
(*.f64 (sin.f64 re) (exp.f64 im))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (sin.f64 re)))) 2))
(*.f64 (sin.f64 re) (exp.f64 im))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (sin.f64 re))))
(*.f64 (sin.f64 re) (exp.f64 im))
(+.f64 (sin.f64 re) -1)
(+.f64 (sin.f64 re) (log.f64 (exp.f64 -1)))
(+.f64 (sin.f64 re) -1)
(+.f64 0 (+.f64 (sin.f64 re) -1))
(+.f64 (sin.f64 re) -1)
(+.f64 -1 (sin.f64 re))
(+.f64 (sin.f64 re) -1)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))) (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1))))) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))))
(+.f64 (sin.f64 re) -1)
(*.f64 1 (+.f64 (sin.f64 re) -1))
(+.f64 (sin.f64 re) -1)
(*.f64 (+.f64 (sin.f64 re) -1) 1)
(+.f64 (sin.f64 re) -1)
(*.f64 (+.f64 (sin.f64 re) -1) (log.f64 (exp.f64 1)))
(+.f64 (sin.f64 re) -1)
(*.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2))
(+.f64 (sin.f64 re) -1)
(*.f64 (pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 2) (cbrt.f64 (+.f64 (sin.f64 re) -1)))
(+.f64 (sin.f64 re) -1)
(*.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) (sqrt.f64 (+.f64 (sin.f64 re) -1)))
(+.f64 (sin.f64 re) -1)
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(*.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (+.f64 (sin.f64 re) 1))
(*.f64 (+.f64 (sqrt.f64 (sin.f64 re)) 1) (-.f64 (sqrt.f64 (sin.f64 re)) 1))
(+.f64 (sin.f64 re) -1)
(/.f64 1 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(/.f64 1 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (+.f64 (sin.f64 re) 1))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1) (+.f64 (pow.f64 (sin.f64 re) 2) (-.f64 1 (*.f64 (sin.f64 re) -1))))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1) (+.f64 (sin.f64 re) 1))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (+.f64 (sin.f64 re) 1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 3) -1)) (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sin.f64 re) 2) -1)) (neg.f64 (+.f64 (sin.f64 re) 1)))
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (+.f64 (sin.f64 re) 1))
(pow.f64 (+.f64 (sin.f64 re) -1) 1)
(+.f64 (sin.f64 re) -1)
(pow.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1)) 3)
(+.f64 (sin.f64 re) -1)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2) 1/2)
(+.f64 (sin.f64 re) -1)
(pow.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3) 1/3)
(+.f64 (sin.f64 re) -1)
(pow.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1)) 2)
(+.f64 (sin.f64 re) -1)
(pow.f64 (/.f64 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)) (+.f64 (pow.f64 (sin.f64 re) 3) -1)) -1)
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (/.f64 1 (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (sin.f64 re) (+.f64 1 (pow.f64 (sin.f64 re) 2))))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 3)) (+.f64 (pow.f64 (sin.f64 re) 2) (+.f64 (sin.f64 re) 1)))
(/.f64 (-.f64 1 (pow.f64 (sin.f64 re) 3)) (fma.f64 (sin.f64 re) (-.f64 -1 (sin.f64 re)) -1))
(pow.f64 (/.f64 (+.f64 (sin.f64 re) 1) (+.f64 (pow.f64 (sin.f64 re) 2) -1)) -1)
(*.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (/.f64 1 (+.f64 (sin.f64 re) 1)))
(/.f64 (+.f64 -1 (pow.f64 (sin.f64 re) 2)) (+.f64 (sin.f64 re) 1))
(sqrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 2))
(+.f64 (sin.f64 re) -1)
(log.f64 (exp.f64 (+.f64 (sin.f64 re) -1)))
(+.f64 (sin.f64 re) -1)
(log.f64 (+.f64 1 (expm1.f64 (+.f64 (sin.f64 re) -1))))
(+.f64 (sin.f64 re) -1)
(cbrt.f64 (pow.f64 (+.f64 (sin.f64 re) -1) 3))
(+.f64 (sin.f64 re) -1)
(expm1.f64 (log.f64 (sin.f64 re)))
(+.f64 (sin.f64 re) -1)
(exp.f64 (log.f64 (+.f64 (sin.f64 re) -1)))
(+.f64 (sin.f64 re) -1)
(exp.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1))
(+.f64 (sin.f64 re) -1)
(exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 (sin.f64 re) -1)) 1) 1))
(+.f64 (sin.f64 re) -1)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (+.f64 (sin.f64 re) -1))) 3))
(+.f64 (sin.f64 re) -1)
(exp.f64 (*.f64 (*.f64 3 (log.f64 (+.f64 (sin.f64 re) -1))) 1/3))
(+.f64 (sin.f64 re) -1)
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (sin.f64 re) -1))) 2))
(+.f64 (sin.f64 re) -1)
(log1p.f64 (expm1.f64 (+.f64 (sin.f64 re) -1)))
(+.f64 (sin.f64 re) -1)
(fma.f64 (sin.f64 re) 1 -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 1 (sin.f64 re) -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 (cbrt.f64 (sin.f64 re)) (pow.f64 (cbrt.f64 (sin.f64 re)) 2) -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (cbrt.f64 (sin.f64 re)) -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 re)) 2) (*.f64 (cbrt.f64 (sin.f64 re)) 1) -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (sqrt.f64 (sin.f64 re)) -1)
(+.f64 (sin.f64 re) -1)
(fma.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) 1) -1)
(+.f64 (sin.f64 re) -1)
(+.f64 0 (*.f64 (exp.f64 im) (*.f64 re 1/2)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))) 1)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 1)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(pow.f64 (cbrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 3)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2) 1/2)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(pow.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3) 1/3)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(pow.f64 (sqrt.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))) 2)
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(sqrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 2))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(log.f64 (pow.f64 (exp.f64 (exp.f64 im)) (*.f64 re 1/2)))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(cbrt.f64 (pow.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2)) 3))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(expm1.f64 (log1p.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (+.f64 im (log.f64 (*.f64 re 1/2))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (*.f64 (*.f64 (+.f64 im (log.f64 (*.f64 re 1/2))) 1) 1))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (*.f64 (*.f64 1/3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 3))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (*.f64 (*.f64 3 (+.f64 im (log.f64 (*.f64 re 1/2)))) 1/3))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(exp.f64 (*.f64 (*.f64 1/2 (+.f64 im (log.f64 (*.f64 re 1/2)))) 2))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))
(log1p.f64 (expm1.f64 (*.f64 (exp.f64 im) (*.f64 re 1/2))))
(*.f64 1/2 (*.f64 re (exp.f64 im)))
(*.f64 re (*.f64 1/2 (exp.f64 im)))

eval47.0ms (0.8%)

Compiler

Compiled 1839 to 1145 computations (37.7% saved)

prune34.0ms (0.6%)

Pruning

20 alts after pruning (8 fresh and 12 done)

PrunedKeptTotal
New1521153
Fresh077
Picked055
Done077
Total15220172
Accuracy
100.0%
Counts
172 → 20
Alt Table
Click to see full alt table
StatusAccuracyProgram
11.4%
(-.f64 (+.f64 re (*.f64 -1/6 (pow.f64 re 3))) 1)
3.6%
(-.f64 (sin.f64 re) 1)
2.0%
(-.f64 re 1)
74.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
74.8%
(*.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)))
11.8%
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 im) 1/2))
39.9%
(*.f64 (exp.f64 im) (*.f64 1/2 re))
14.0%
(*.f64 1/2 (pow.f64 re -2))
5.2%
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
47.0%
(*.f64 1/2 (+.f64 (*.f64 2 re) (*.f64 (pow.f64 im 2) re)))
11.2%
(*.f64 1/2 (+.f64 re (*.f64 re im)))
29.4%
(*.f64 1/2 (+.f64 re re))
58.7%
(*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re)))
47.0%
(*.f64 1/2 (*.f64 re (fma.f64 im im 2)))
62.6%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2.9%
(*.f64 1/2 (neg.f64 re))
7.1%
(*.f64 1/2 re)
51.6%
(sin.f64 re)
4.1%
-1
Compiler

Compiled 380 to 258 computations (32.1% saved)

regimes92.0ms (1.6%)

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

6 calls:

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

Compiled 246 to 157 computations (36.2% saved)

regimes215.0ms (3.7%)

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

4 calls:

92.0ms
(sin.f64 re)
48.0ms
(*.f64 1/2 (sin.f64 re))
41.0ms
re
27.0ms
im
Results
AccuracySegmentsBranch
89.3%3re
99.8%2im
88.0%3(*.f64 1/2 (sin.f64 re))
88.0%3(sin.f64 re)
Compiler

Compiled 178 to 117 computations (34.3% saved)

regimes30.0ms (0.5%)

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

1 calls:

25.0ms
im
Results
AccuracySegmentsBranch
99.4%2im
Compiler

Compiled 138 to 92 computations (33.3% saved)

regimes105.0ms (1.8%)

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

3 calls:

55.0ms
(sin.f64 re)
24.0ms
im
22.0ms
re
Results
AccuracySegmentsBranch
65.2%4(sin.f64 re)
62.2%2re
84.2%2im
Compiler

Compiled 130 to 89 computations (31.5% saved)

regimes18.0ms (0.3%)

Counts
12 → 2
Calls
Call 1
Inputs
-1
(*.f64 1/2 re)
(-.f64 re 1)
(*.f64 1/2 (neg.f64 re))
(*.f64 1/2 (+.f64 re re))
(*.f64 1/2 (/.f64 re -2))
(*.f64 1/2 (+.f64 re (*.f64 re im)))
(*.f64 1/2 (/.f64 re (+.f64 re (-.f64 re re))))
(sin.f64 re)
(*.f64 2 (sin.f64 re))
(-.f64 (sin.f64 re) 1)
(*.f64 1/2 (pow.f64 re -2))
Outputs
(sin.f64 re)
(*.f64 1/2 (pow.f64 re -2))
Calls

1 calls:

15.0ms
im
Results
AccuracySegmentsBranch
62.6%2im
Compiler

Compiled 57 to 37 computations (35.1% saved)

regimes44.0ms (0.8%)

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

3 calls:

21.0ms
im
8.0ms
(sin.f64 re)
7.0ms
re
Results
AccuracySegmentsBranch
51.6%1(sin.f64 re)
51.6%1re
55.5%2im
Compiler

Compiled 59 to 38 computations (35.6% saved)

regimes26.0ms (0.5%)

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

2 calls:

12.0ms
re
12.0ms
im
Results
AccuracySegmentsBranch
33.3%2re
33.5%2im
Compiler

Compiled 45 to 30 computations (33.3% saved)

regimes18.0ms (0.3%)

Counts
6 → 2
Calls
Call 1
Inputs
-1
(*.f64 1/2 re)
(-.f64 re 1)
(*.f64 1/2 (neg.f64 re))
(*.f64 1/2 (+.f64 re re))
(*.f64 1/2 (/.f64 re -2))
Outputs
(*.f64 1/2 (+.f64 re re))
-1
Calls

2 calls:

11.0ms
re
5.0ms
im
Results
AccuracySegmentsBranch
31.5%2re
29.4%1im
Compiler

Compiled 29 to 21 computations (27.6% saved)

regimes16.0ms (0.3%)

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

2 calls:

10.0ms
re
4.0ms
im
Results
AccuracySegmentsBranch
7.1%1im
9.2%2re
Compiler

Compiled 19 to 14 computations (26.3% saved)

regimes6.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

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

Compiled 9 to 7 computations (22.2% saved)

bsearch26.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
25.0ms
0.012071665710705523
24.52166290131871
Results
23.0ms128×body256valid
Compiler

Compiled 195 to 151 computations (22.6% saved)

bsearch35.0ms (0.6%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
35.0ms
0.012071665710705523
24.52166290131871
Results
33.0ms128×body256valid
Compiler

Compiled 139 to 111 computations (20.1% saved)

bsearch20.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
24.52166290131871
702.3591185021378
Results
19.0ms112×body256valid
Compiler

Compiled 117 to 92 computations (21.4% saved)

bsearch21.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
20.0ms
24.52166290131871
702.3591185021378
Results
19.0ms112×body256valid
Compiler

Compiled 110 to 92 computations (16.4% saved)

bsearch19.0ms (0.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
19.0ms
24.52166290131871
702.3591185021378
Results
17.0ms112×body256valid
Compiler

Compiled 124 to 92 computations (25.8% saved)

bsearch25.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
24.0ms
24.52166290131871
702.3591185021378
Results
23.0ms112×body256valid
Compiler

Compiled 145 to 106 computations (26.9% saved)

bsearch28.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
28.0ms
130908332.2165504
617583918551275.0
Results
14.0ms82×body256valid
11.0ms62×body256infinite
Compiler

Compiled 127 to 105 computations (17.3% saved)

bsearch27.0ms (0.5%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
26.0ms
130908332.2165504
617583918551275.0
Results
14.0ms77×body256infinite
11.0ms67×body256valid
Compiler

Compiled 109 to 96 computations (11.9% saved)

simplify10.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
056406
172406
274406
375406
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 5854679515581645/4503599627370496) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re))))
(if (<=.f64 im 3152519739159347/4503599627370496) (sin.f64 re) (*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re))))
(if (<=.f64 im 25) (sin.f64 re) (*.f64 (exp.f64 im) (*.f64 1/2 re)))
(if (<=.f64 im 650) (sin.f64 re) (*.f64 1/2 (pow.f64 re -2)))
(if (<=.f64 im 370) (sin.f64 re) (*.f64 1/2 (+.f64 re (*.f64 re im))))
(if (<=.f64 im 25) (*.f64 1/2 (+.f64 re re)) (*.f64 1/2 (+.f64 re (*.f64 re im))))
(if (<=.f64 re 920000000000) (*.f64 1/2 (+.f64 re re)) -1)
(if (<=.f64 re 920000000000) (*.f64 1/2 re) -1)
-1
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 5854679515581645/4503599627370496) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re))))
(if (<=.f64 im 5854679515581645/4503599627370496) (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 im im 2)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(if (<=.f64 im 3152519739159347/4503599627370496) (sin.f64 re) (*.f64 1/2 (*.f64 (exp.f64 im) (sin.f64 re))))
(if (<=.f64 im 3152519739159347/4503599627370496) (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(if (<=.f64 im 25) (sin.f64 re) (*.f64 (exp.f64 im) (*.f64 1/2 re)))
(if (<=.f64 im 650) (sin.f64 re) (*.f64 1/2 (pow.f64 re -2)))
(if (<=.f64 im 370) (sin.f64 re) (*.f64 1/2 (+.f64 re (*.f64 re im))))
(if (<=.f64 im 25) (*.f64 1/2 (+.f64 re re)) (*.f64 1/2 (+.f64 re (*.f64 re im))))
(if (<=.f64 re 920000000000) (*.f64 1/2 (+.f64 re re)) -1)
(if (<=.f64 re 920000000000) (*.f64 1/2 re) -1)
-1
Compiler

Compiled 135 to 97 computations (28.1% saved)

soundness1.3s (22.8%)

Rules
2266×fma-def
2266×fma-def
1772×fma-def
1668×fma-def
1666×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036316
1111308
2397308
31003298
42231294
55114294
67594294
036316
1111308
2397308
31003298
42231294
55114294
67594294
024115
1341115
25834115
024115
1341115
25834115
01382374
13662275
210952001
353271975
024115
1341115
25834115
020126
1270126
24369126
03104402
17324208
221113889
02673444
16583224
220343039
373173015
024115
1341115
25834115
01514180
14793815
215203601
363623601
Stop Event
node limit
unsound
node limit
node limit
unsound
unsound
node limit
unsound
unsound
node limit
node limit
Compiler

Compiled 397 to 241 computations (39.3% saved)

end0.0ms (0%)

preprocess91.0ms (1.6%)

Remove

(negabs re)

(abs im)

Compiler

Compiled 418 to 276 computations (34% saved)

Profiling

Loading profile data...