math.sin on complex, real part

Details

Time bar (total: 4.9s)

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.8s (36.5%)

Results
452.0ms1017×body1024valid
374.0ms2609×body256valid
348.0ms2588×body256infinite
329.0ms1003×body1024infinite
136.0ms554×body512valid
110.0ms482×body512infinite
3.0msbody2048valid
Bogosity

preprocess92.0ms (1.9%)

Algorithm
egg-herbie
Rules
1384×times-frac
1336×fma-def
864×unswap-sqr
632×associate-/r/
620×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02170
15270
214070
326666
436066
548866
684366
7216166
8478766
9540266
10686266
022
Stop Event
saturated
node limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.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 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 (neg.f64 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 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) (fma.f64 1/2 (exp.f64 re) (/.f64 1/2 (exp.f64 re))))
Compiler

Compiled 44 to 35 computations (20.5% saved)

localize90.0ms (1.8%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 41 to 25 computations (39% saved)

series5.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite72.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1270×prod-diff
1136×log-prod
500×pow-exp
464×fma-def
424×expm1-udef
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01435
130027
2413727
Stop Event
node limit
Counts
1 → 50
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
Outputs
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3) (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3)) (fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (-.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)))) (*.f64 2 (sinh.f64 im)))
(/.f64 (*.f64 (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3)) (*.f64 1/2 (sin.f64 re))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(/.f64 (*.f64 (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im))) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (sinh.f64 im)))
(pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 1)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 3)
(pow.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 2)
(sqrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (*.f64 2 (cosh.f64 im)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (cosh.f64 im)) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(exp.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 2))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(fma.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sin.f64 re) (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (exp.f64 im) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (exp.f64 im) (*.f64 1/2 (sin.f64 re)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 1 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (*.f64 (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2) (*.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (exp.f64 im)) (*.f64 (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1/2 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (cbrt.f64 (exp.f64 im)) 2)) (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (sqrt.f64 (exp.f64 im))) (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) 1/2) (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2)) (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))

simplify42.0ms (0.9%)

Algorithm
egg-herbie
Rules
340×associate-*r*
288×associate-*l*
196×*-commutative
164×fma-def
90×associate-/l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01903102
15533102
226643102
Stop Event
unsound
Counts
74 → 67
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3) (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3)) (fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (-.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)))) (*.f64 2 (sinh.f64 im)))
(/.f64 (*.f64 (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3)) (*.f64 1/2 (sin.f64 re))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(/.f64 (*.f64 (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im))) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (sinh.f64 im)))
(pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 1)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 3)
(pow.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 2)
(sqrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (*.f64 2 (cosh.f64 im)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (cosh.f64 im)) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(exp.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 2))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(fma.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sin.f64 re) (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (exp.f64 im) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (exp.f64 im) (*.f64 1/2 (sin.f64 re)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 1 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (*.f64 (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2) (*.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (exp.f64 im)) (*.f64 (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1/2 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (cbrt.f64 (exp.f64 im)) 2)) (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (sqrt.f64 (exp.f64 im))) (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) 1/2) (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2)) (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(fma.f64 (*.f64 (exp.f64 im) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
Outputs
(*.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))))))
(fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)))))
(+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(fma.f64 -1/10080 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 7)) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6)) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(+.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 1)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (+.f64 (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3) (pow.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 3)) (fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (-.f64 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (-.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)))) (*.f64 2 (sinh.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (*.f64 (+.f64 (pow.f64 (exp.f64 im) 3) (pow.f64 (exp.f64 im) 3)) (*.f64 1/2 (sin.f64 re))) (fma.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im)) (pow.f64 (exp.f64 im) 2)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(/.f64 (*.f64 (*.f64 (exp.f64 im) (*.f64 2 (sinh.f64 im))) (*.f64 1/2 (sin.f64 re))) (*.f64 2 (sinh.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 1)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(pow.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 3)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(pow.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3) 1/3)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 2)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(sqrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 2))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 1/2) (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (*.f64 2 (cosh.f64 im)) 3)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (cosh.f64 im)) 3) (pow.f64 (*.f64 1/2 (sin.f64 re)) 3)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))) 1) 1))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 3))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))) 3)) 1/3))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))) 2))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (sin.f64 re) (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 1/2 (sin.f64 re)) (exp.f64 im) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (exp.f64 im) (*.f64 1/2 (sin.f64 re)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 1 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (pow.f64 (cbrt.f64 (exp.f64 im)) 2) (*.f64 (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2) (*.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (sqrt.f64 (exp.f64 im)) (*.f64 (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1 (*.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))) 1))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))) (cbrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (sqrt.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 (sqrt.f64 (exp.f64 im)) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (sqrt.f64 (exp.f64 im))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (exp.f64 im) (sin.f64 re)) 1/2 (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (cbrt.f64 (exp.f64 im)) 2)) (cbrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (sqrt.f64 (exp.f64 im))) (sqrt.f64 (exp.f64 im)) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (exp.f64 im) 1/2) (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (exp.f64 im) (pow.f64 (cbrt.f64 (*.f64 1/2 (sin.f64 re))) 2)) (cbrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(fma.f64 (*.f64 (exp.f64 im) (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) (sqrt.f64 (*.f64 1/2 (sin.f64 re))) (*.f64 1/2 (*.f64 (sin.f64 re) (exp.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))

eval19.0ms (0.4%)

Compiler

Compiled 1317 to 644 computations (51.1% saved)

prune14.0ms (0.3%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New63467
Fresh000
Picked101
Done000
Total64468
Accurracy
100.0%
Counts
68 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
50.3%
(sin.f64 re)
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
50.3%
(sin.f64 re)
Compiler

Compiled 84 to 62 computations (26.2% saved)

localize142.0ms (2.9%)

Local Accuracy

Found 4 expressions with local accuracy:

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

Compiled 110 to 40 computations (63.6% saved)

series12.0ms (0.2%)

Counts
4 → 92
Calls

24 calls:

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

rewrite40.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
406×associate-*r*
404×add-sqr-sqrt
390×pow1
390×*-un-lft-identity
376×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02098
142198
2614298
Stop Event
unsound
Counts
4 → 78
Calls
Call 1
Inputs
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))
(*.f64 (sin.f64 re) (*.f64 im im))
(*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im)))
Outputs
(+.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 re -2 re)
(fma.f64 -2 re re)
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
im
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
im
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
im

simplify123.0ms (2.5%)

Algorithm
egg-herbie
Rules
1564×fma-def
1490×distribute-lft-out
736×associate-*r*
698×associate-*l*
552×+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01444536
13484536
210164536
342194536
Stop Event
node limit
Counts
170 → 72
Calls
Call 1
Inputs
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 2 re)
(+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 2 re))
(+.f64 (*.f64 re (pow.f64 im 2)) (+.f64 (*.f64 1/12 (*.f64 re (pow.f64 im 4))) (*.f64 2 re)))
(+.f64 (*.f64 re (pow.f64 im 2)) (+.f64 (*.f64 1/360 (*.f64 re (pow.f64 im 6))) (+.f64 (*.f64 1/12 (*.f64 re (pow.f64 im 4))) (*.f64 2 re))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 -1/10080 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 7))) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 5))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 re (pow.f64 im 2))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2)))))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(+.f64 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 re -2 re)
(fma.f64 -2 re re)
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
-2
-1
0
1/512
1/64
1/16
1/8
1/4
1/2
1
3/2
2
3
4
8
9
16
27
64
512
Outputs
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 2 re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 2 re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 re (pow.f64 im 2)) (+.f64 (*.f64 1/12 (*.f64 re (pow.f64 im 4))) (*.f64 2 re)))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 re (pow.f64 im 2)) (+.f64 (*.f64 1/360 (*.f64 re (pow.f64 im 6))) (+.f64 (*.f64 1/12 (*.f64 re (pow.f64 im 4))) (*.f64 2 re))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 -1/10080 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 7))) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im)) (pow.f64 re 5))))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/240 (pow.f64 re 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(sin.f64 re)
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4)))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(+.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))) (+.f64 (*.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 6))) (*.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 4))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 (*.f64 im im) (sin.f64 re)) (fma.f64 1/720 (*.f64 (pow.f64 im 6) (sin.f64 re)) (*.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re))))))
(+.f64 (sin.f64 re) (fma.f64 1/2 (*.f64 im (*.f64 im (sin.f64 re))) (fma.f64 1/24 (*.f64 (pow.f64 im 4) (sin.f64 re)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 6) 1/720)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (/.f64 1 (exp.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 re (pow.f64 im 2))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2)))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 re (pow.f64 im 2)))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (pow.f64 im 2))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (pow.f64 im 2))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (pow.f64 im 2))) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (pow.f64 im 2))) (*.f64 1/2 (*.f64 re (pow.f64 im 2))))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 1/240 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 5)))))
(fma.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 3)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/240 (pow.f64 re 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (sin.f64 re)))
(+.f64 re re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(-.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 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 re (+.f64 re (-.f64 re re)))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (-.f64 re re) (-.f64 re re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(pow.f64 re -2)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(pow.f64 re 1/3)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(sqrt.f64 re)
(fabs.f64 re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(log.f64 (exp.f64 re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(log.f64 (+.f64 -2 (expm1.f64 re)))
(cbrt.f64 re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(expm1.f64 (log1p.f64 re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(exp.f64 (log.f64 re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(exp.f64 (*.f64 (log.f64 re) -2))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(log1p.f64 (expm1.f64 re))
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 re -2 re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(fma.f64 -2 re re)
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
-2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
-1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
0
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/512
1/64
1/16
1/8
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
8
9
16
27
64
512
-2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
-1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
0
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/512
1/64
1/16
1/8
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
8
9
16
27
64
512
-2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
-1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
0
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/512
1/64
1/16
1/8
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3/2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
2
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
3
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
4
(*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
8
9
16
27
64
512

eval19.0ms (0.4%)

Compiler

Compiled 870 to 571 computations (34.4% saved)

prune50.0ms (1%)

Pruning

22 alts after pruning (18 fresh and 4 done)

PrunedKeptTotal
New541872
Fresh000
Picked044
Done000
Total542276
Accurracy
100.0%
Counts
76 → 22
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
3.3%
(+.f64 0 512)
3.8%
(+.f64 0 3/2)
4.1%
(+.f64 0 1)
3.9%
(+.f64 0 1/2)
3.9%
(+.f64 0 1/4)
3.7%
(+.f64 0 1/8)
3.4%
(+.f64 0 1/512)
2.9%
(+.f64 0 0)
5.3%
(+.f64 0 -1)
4.8%
(+.f64 0 -2)
2.9%
(*.f64 1/2 (fma.f64 re -2 re))
7.5%
(*.f64 1/2 (pow.f64 re -2))
2.9%
(*.f64 1/2 (/.f64 re -2))
44.8%
(*.f64 1/2 (+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 2 re)))
27.5%
(*.f64 1/2 (+.f64 re re))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
18.0%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
4.3%
(*.f64 1/2 (fabs.f64 re))
6.6%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
50.3%
(sin.f64 re)
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
3.3%
(+.f64 0 512)
3.8%
(+.f64 0 3/2)
4.1%
(+.f64 0 1)
3.9%
(+.f64 0 1/2)
3.9%
(+.f64 0 1/4)
3.7%
(+.f64 0 1/8)
3.4%
(+.f64 0 1/512)
2.9%
(+.f64 0 0)
5.3%
(+.f64 0 -1)
4.8%
(+.f64 0 -2)
2.9%
(*.f64 1/2 (fma.f64 re -2 re))
7.5%
(*.f64 1/2 (pow.f64 re -2))
2.9%
(*.f64 1/2 (/.f64 re -2))
44.8%
(*.f64 1/2 (+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 2 re)))
27.5%
(*.f64 1/2 (+.f64 re re))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
18.0%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
4.3%
(*.f64 1/2 (fabs.f64 re))
6.6%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
50.3%
(sin.f64 re)
Compiler

Compiled 540 to 470 computations (13% saved)

localize128.0ms (2.6%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
90.3%
(*.f64 re (pow.f64 im 2))
Compiler

Compiled 61 to 45 computations (26.2% saved)

series2.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite51.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1198×pow1
1096×add-exp-log
1096×log1p-expm1-u
1096×expm1-log1p-u
1070×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
114213
2155913
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 re (pow.f64 im 2))
Outputs
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 re re)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) im) re))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))

simplify53.0ms (1.1%)

Algorithm
egg-herbie
Rules
2020×log-prod
770×associate-*r*
712×distribute-rgt-in
688×distribute-lft-in
680×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
037275
193209
2336143
32071143
45973143
Stop Event
node limit
Counts
11 → 14
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 re re)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) im) re))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))
Outputs
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(sqrt.f64 (*.f64 (pow.f64 im 4) (*.f64 re re)))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(log.f64 (pow.f64 (pow.f64 (exp.f64 im) im) re))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))
(+.f64 (+.f64 1 (*.f64 re (*.f64 im im))) -1)
(+.f64 (*.f64 re (*.f64 im im)) 0)
(*.f64 re (*.f64 im im))

eval4.0ms (0.1%)

Compiler

Compiled 190 to 115 computations (39.5% saved)

prune27.0ms (0.6%)

Pruning

22 alts after pruning (14 fresh and 8 done)

PrunedKeptTotal
New13114
Fresh01313
Picked145
Done044
Total142236
Accurracy
100.0%
Counts
36 → 22
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
3.3%
(+.f64 0 512)
3.8%
(+.f64 0 3/2)
4.1%
(+.f64 0 1)
3.9%
(+.f64 0 1/2)
3.9%
(+.f64 0 1/4)
3.7%
(+.f64 0 1/8)
3.4%
(+.f64 0 1/512)
2.9%
(+.f64 0 0)
5.3%
(+.f64 0 -1)
4.8%
(+.f64 0 -2)
2.9%
(*.f64 1/2 (fma.f64 re -2 re))
7.5%
(*.f64 1/2 (pow.f64 re -2))
2.9%
(*.f64 1/2 (/.f64 re -2))
44.8%
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
27.5%
(*.f64 1/2 (+.f64 re re))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
18.0%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
4.3%
(*.f64 1/2 (fabs.f64 re))
6.6%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
50.3%
(sin.f64 re)
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
3.3%
(+.f64 0 512)
3.8%
(+.f64 0 3/2)
4.1%
(+.f64 0 1)
3.9%
(+.f64 0 1/2)
3.9%
(+.f64 0 1/4)
3.7%
(+.f64 0 1/8)
3.4%
(+.f64 0 1/512)
2.9%
(+.f64 0 0)
5.3%
(+.f64 0 -1)
4.8%
(+.f64 0 -2)
2.9%
(*.f64 1/2 (fma.f64 re -2 re))
7.5%
(*.f64 1/2 (pow.f64 re -2))
2.9%
(*.f64 1/2 (/.f64 re -2))
44.8%
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
27.5%
(*.f64 1/2 (+.f64 re re))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
18.0%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
4.3%
(*.f64 1/2 (fabs.f64 re))
6.6%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
50.3%
(sin.f64 re)
Compiler

Compiled 498 to 426 computations (14.5% saved)

localize127.0ms (2.6%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
90.3%
(*.f64 re (*.f64 im im))
Compiler

Compiled 64 to 40 computations (37.5% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
im
@inf
(*.f64 re (*.f64 im im))
0.0ms
re
@0
(*.f64 re (*.f64 im im))
0.0ms
re
@inf
(*.f64 re (*.f64 im im))
0.0ms
re
@-inf
(*.f64 re (*.f64 im im))
0.0ms
im
@-inf
(*.f64 re (*.f64 im im))

rewrite58.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1110×pow1
1054×add-sqr-sqrt
1016×add-exp-log
1016×log1p-expm1-u
1016×expm1-log1p-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
112013
2144913
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 re (*.f64 im im))
Outputs
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (*.f64 re re) (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 re) (*.f64 im im)))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))

simplify58.0ms (1.2%)

Algorithm
egg-herbie
Rules
2164×log-prod
1110×distribute-rgt-in
1088×distribute-lft-in
802×associate-*r*
682×associate-*l*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038455
192455
2327455
32124455
46994455
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(*.f64 re (pow.f64 im 2))
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(sqrt.f64 (*.f64 (*.f64 re re) (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 re) (*.f64 im im)))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))
Outputs
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(*.f64 re (pow.f64 im 2))
(*.f64 re (*.f64 im im))
(-.f64 (+.f64 1 (*.f64 re (*.f64 im im))) 1)
(*.f64 re (*.f64 im im))
(pow.f64 (*.f64 re (*.f64 im im)) 1)
(*.f64 re (*.f64 im im))
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 im im))) 3)
(*.f64 re (*.f64 im im))
(pow.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3) 1/3)
(*.f64 re (*.f64 im im))
(pow.f64 (*.f64 im (sqrt.f64 re)) 2)
(*.f64 re (*.f64 im im))
(sqrt.f64 (*.f64 (*.f64 re re) (pow.f64 im 4)))
(*.f64 re (*.f64 im im))
(log.f64 (pow.f64 (exp.f64 re) (*.f64 im im)))
(*.f64 re (*.f64 im im))
(cbrt.f64 (pow.f64 (*.f64 re (*.f64 im im)) 3))
(*.f64 re (*.f64 im im))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 im im))))
(*.f64 re (*.f64 im im))
(exp.f64 (log.f64 (*.f64 re (*.f64 im im))))
(*.f64 re (*.f64 im im))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 im im))))
(*.f64 re (*.f64 im im))

eval3.0ms (0.1%)

Compiler

Compiled 173 to 106 computations (38.7% saved)

prune15.0ms (0.3%)

Pruning

22 alts after pruning (9 fresh and 13 done)

PrunedKeptTotal
New13013
Fresh099
Picked055
Done088
Total132235
Accurracy
100.0%
Counts
35 → 22
Alt Table
Click to see full alt table
StatusAccuracyProgram
71.8%
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (*.f64 im im))))
100.0%
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
3.3%
(+.f64 0 512)
3.8%
(+.f64 0 3/2)
4.1%
(+.f64 0 1)
3.9%
(+.f64 0 1/2)
3.9%
(+.f64 0 1/4)
3.7%
(+.f64 0 1/8)
3.4%
(+.f64 0 1/512)
2.9%
(+.f64 0 0)
5.3%
(+.f64 0 -1)
4.8%
(+.f64 0 -2)
2.9%
(*.f64 1/2 (fma.f64 re -2 re))
7.5%
(*.f64 1/2 (pow.f64 re -2))
2.9%
(*.f64 1/2 (/.f64 re -2))
44.8%
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
27.5%
(*.f64 1/2 (+.f64 re re))
61.3%
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
18.0%
(*.f64 1/2 (log1p.f64 (expm1.f64 re)))
4.3%
(*.f64 1/2 (fabs.f64 re))
6.6%
(*.f64 1/2 (exp.f64 (*.f64 (log.f64 re) -2)))
50.3%
(sin.f64 re)
Compiler

Compiled 293 to 234 computations (20.1% saved)

regimes121.0ms (2.5%)

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

6 calls:

59.0ms
(sin.f64 re)
17.0ms
(*.f64 1/2 (sin.f64 re))
12.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
12.0ms
re
12.0ms
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 176 to 132 computations (25% saved)

regimes253.0ms (5.2%)

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

3 calls:

113.0ms
re
48.0ms
(sin.f64 re)
38.0ms
im
Results
AccuracySegmentsBranch
74.9%5re
83.9%3im
74.1%5(sin.f64 re)
Compiler

Compiled 113 to 90 computations (20.4% saved)

regimes257.0ms (5.3%)

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

3 calls:

105.0ms
re
91.0ms
(sin.f64 re)
57.0ms
im
Results
AccuracySegmentsBranch
60.6%5(sin.f64 re)
61.1%5re
72.1%5im
Compiler

Compiled 103 to 83 computations (19.4% saved)

regimes43.0ms (0.9%)

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

1 calls:

39.0ms
im
Results
AccuracySegmentsBranch
69.6%4im
Compiler

Compiled 84 to 68 computations (19% saved)

regimes43.0ms (0.9%)

Counts
15 → 3
Calls
Call 1
Inputs
(+.f64 0 -2)
(+.f64 0 -1)
(+.f64 0 0)
(+.f64 0 1/512)
(+.f64 0 1/8)
(+.f64 0 1/4)
(+.f64 0 1/2)
(+.f64 0 1)
(+.f64 0 3/2)
(+.f64 0 512)
(*.f64 1/2 (+.f64 re re))
(*.f64 1/2 (/.f64 re -2))
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
(sin.f64 re)
(*.f64 1/2 (fabs.f64 re))
Outputs
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
(sin.f64 re)
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
Calls

1 calls:

40.0ms
im
Results
AccuracySegmentsBranch
67.3%3im
Compiler

Compiled 62 to 52 computations (16.1% saved)

regimes65.0ms (1.3%)

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

2 calls:

55.0ms
re
8.0ms
im
Results
AccuracySegmentsBranch
44.8%1re
44.8%1im
Compiler

Compiled 59 to 50 computations (15.3% saved)

regimes20.0ms (0.4%)

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

2 calls:

10.0ms
re
7.0ms
im
Results
AccuracySegmentsBranch
27.5%1im
27.5%1re
Compiler

Compiled 48 to 43 computations (10.4% saved)

regimes17.0ms (0.4%)

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

2 calls:

9.0ms
re
6.0ms
im
Results
AccuracySegmentsBranch
5.3%1im
5.3%1re
Compiler

Compiled 38 to 36 computations (5.3% saved)

regimes17.0ms (0.3%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 0 -2)
Outputs
(+.f64 0 -2)
Calls

2 calls:

14.0ms
im
3.0ms
re
Results
AccuracySegmentsBranch
4.8%1re
4.8%1im
Compiler

Compiled 11 to 9 computations (18.2% saved)

bsearch127.0ms (2.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
89.0ms
7.690413530296189e-10
6.379065187806253e-6
38.0ms
-0.0001976143582023801
-1.5336591843934665e-6
Results
81.0ms152×body256valid
35.0ms61×body1024valid
7.0ms27×body512valid
Compiler

Compiled 289 to 225 computations (22.1% saved)

bsearch149.0ms (3.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
26.0ms
4.105802953963661e+94
5.466592437966283e+95
32.0ms
3809729199137899000.0
9.588249999796559e+21
67.0ms
-62188896255823.63
-1865738836852.6003
24.0ms
-5.998279032254243e+125
-5.105579217306994e+125
Results
93.0ms246×body256infinite
33.0ms86×body1024infinite
12.0ms52×body512infinite
Compiler

Compiled 412 to 333 computations (19.2% saved)

bsearch95.0ms (2%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
4.105802953963661e+94
5.466592437966283e+95
29.0ms
3809729199137899000.0
9.588249999796559e+21
42.0ms
-0.0001976143582023801
-1.5336591843934665e-6
Results
25.0ms152×body256infinite
20.0ms64×body256valid
13.0ms42×body1024infinite
13.0ms32×body1024valid
8.0ms16×body512valid
7.0ms30×body512infinite
Compiler

Compiled 388 to 303 computations (21.9% saved)

bsearch90.0ms (1.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
27.0ms
8.029218002836787e+79
1.968358928341408e+82
62.0ms
-0.0001976143582023801
-1.5336591843934665e-6
Results
43.0ms29×body1024valid
10.0ms73×body256infinite
9.0ms24×body512valid
9.0ms28×body1024infinite
9.0ms59×body256valid
6.0ms11×body512infinite
Compiler

Compiled 285 to 211 computations (26% saved)

simplify16.0ms (0.3%)

Algorithm
egg-herbie
Rules
24×*-commutative
+-commutative
if-if-or-not
sub-neg
+-lft-identity
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072433
196433
298433
399433
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(if (<=.f64 im -6640827866535439/73786976294838206464) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (if (<=.f64 im 3659834024223975/590295810358705651712) (sin.f64 re) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(if (<=.f64 im -579999999999999986484646798520936901661260743407720258043487689917164981039284391042110347849422315511234613204959607532814336) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im -1900000000000) (*.f64 1/2 (log1p.f64 (expm1.f64 re))) (if (<=.f64 im 200000000000000000000) (sin.f64 re) (if (<=.f64 im 44999999999999997204502705127899360931652814266633047046560449228862130962274705667921253761024) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))))))
(if (<=.f64 im -7194230188746725/36893488147419103232) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im 3900000000000000000) (sin.f64 re) (if (<=.f64 im 219999999999999989626765985597835323269655109995106497831752871163768684049025395046032928145408) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))))))
(if (<=.f64 im -2582544170319337/18446744073709551616) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im 82000000000000000285100818232254133505465038177760744257705960013234380447154176) (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))))
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
(*.f64 1/2 (+.f64 re re))
(+.f64 0 -1)
(+.f64 0 -2)
Outputs
(+.f64 0 (*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 2 (cosh.f64 im)))
(if (<=.f64 im -6640827866535439/73786976294838206464) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (if (<=.f64 im 3659834024223975/590295810358705651712) (sin.f64 re) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(if (or (<=.f64 im -6640827866535439/73786976294838206464) (not (<=.f64 im 3659834024223975/590295810358705651712))) (*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (sin.f64 re))
(if (<=.f64 im -579999999999999986484646798520936901661260743407720258043487689917164981039284391042110347849422315511234613204959607532814336) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im -1900000000000) (*.f64 1/2 (log1p.f64 (expm1.f64 re))) (if (<=.f64 im 200000000000000000000) (sin.f64 re) (if (<=.f64 im 44999999999999997204502705127899360931652814266633047046560449228862130962274705667921253761024) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))))))
(if (<=.f64 im -579999999999999986484646798520936901661260743407720258043487689917164981039284391042110347849422315511234613204959607532814336) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2))) (if (<=.f64 im -1900000000000) (*.f64 1/2 (log1p.f64 (expm1.f64 re))) (if (<=.f64 im 200000000000000000000) (sin.f64 re) (if (<=.f64 im 44999999999999997204502705127899360931652814266633047046560449228862130962274705667921253761024) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2)))))))
(if (<=.f64 im -7194230188746725/36893488147419103232) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im 3900000000000000000) (sin.f64 re) (if (<=.f64 im 219999999999999989626765985597835323269655109995106497831752871163768684049025395046032928145408) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))))))
(if (<=.f64 im -7194230188746725/36893488147419103232) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2))) (if (<=.f64 im 3900000000000000000) (sin.f64 re) (if (<=.f64 im 219999999999999989626765985597835323269655109995106497831752871163768684049025395046032928145408) (*.f64 1/2 (pow.f64 re -2)) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2))))))
(if (<=.f64 im -2582544170319337/18446744073709551616) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re))) (if (<=.f64 im 82000000000000000285100818232254133505465038177760744257705960013234380447154176) (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))))
(if (or (<=.f64 im -2582544170319337/18446744073709551616) (not (<=.f64 im 82000000000000000285100818232254133505465038177760744257705960013234380447154176))) (*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2))) (sin.f64 re))
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 2 re)))
(*.f64 1/2 (+.f64 (*.f64 re (*.f64 im im)) (*.f64 re 2)))
(*.f64 1/2 (+.f64 re re))
(+.f64 0 -1)
-1
(+.f64 0 -2)
-2
Compiler

Compiled 179 to 126 computations (29.6% saved)

soundness419.0ms (8.6%)

Rules
2020×log-prod
1270×prod-diff
1198×pow1
1136×log-prod
1096×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01435
130027
2413727
02098
142198
2614298
02098
142198
2614298
02098
142198
2614298
0713
114213
2155913
037275
193209
2336143
32071143
45973143
02098
142198
2614298
02098
142198
2614298
Stop Event
unsound
unsound
node limit
node limit
unsound
unsound
unsound
node limit
Compiler

Compiled 288 to 200 computations (30.6% saved)

end104.0ms (2.1%)

Compiler

Compiled 354 to 222 computations (37.3% saved)

Profiling

Loading profile data...