math.sin on complex, real part

Time bar (total: 5.3s)

analyze0.0ms (0%)

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

Compiled 15 to 12 computations (20% saved)

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

sample2.0s (38.1%)

Results
1.1s4256×256valid
788.0ms3999×256infinite
0.0ms256infinite
Precisions
Click to see histograms. Total time spent on operations: 802.0ms
Operation ival-sin, time spent: 281.0ms, 35.0% of total-time
Operation ival-exp, time spent: 172.0ms, 21.0% of total-time
Operation ival-mult, time spent: 160.0ms, 20.0% of total-time
Operation ival-add, time spent: 119.0ms, 15.0% of total-time
Operation ival-sub, time spent: 52.0ms, 6.0% of total-time
Operation const, time spent: 19.0ms, 2.0% of total-time
Bogosity

preprocess560.0ms (10.5%)

Algorithm
egg-herbie
Rules
989×fma-neg
725×fma-define
264×times-frac
215×distribute-lft-neg-in
170×unsub-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(exp.f64 (-.f64 #s(literal 0 binary64) im))
00-0-#s(literal 1/2 binary64)
00-0-re
00-0-(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
00-0-(-.f64 #s(literal 0 binary64) im)
00-0-im
00-0-#s(literal 0 binary64)
00-0-(sin.f64 re)
00-0-(+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im))
00-0-(exp.f64 im)
00-0-(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
036316
1111308
2397308
3986298
41988294
53213294
63708294
74185294
84839294
94992294
105009294
115009294
125041294
135070294
145070294
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) (neg.f64 im))) (exp.f64 (neg.f64 im))))
(neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) (neg.f64 im))) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 im)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal -1/2 binary64)))
(*.f64 (sin.f64 re) (*.f64 #s(literal -1/2 binary64) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 (exp.f64 im) #s(literal -1/2 binary64) (/.f64 #s(literal -1/2 binary64) (exp.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) (neg.f64 im))) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 (neg.f64 re))) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))))
(neg.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) (neg.f64 im))) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) #s(literal -1/2 binary64)))
(*.f64 (sin.f64 re) (*.f64 #s(literal -1/2 binary64) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (fma.f64 (exp.f64 im) #s(literal -1/2 binary64) (/.f64 #s(literal -1/2 binary64) (exp.f64 im))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 im)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) re)) (exp.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 (sin.f64 im) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (sin.f64 im) (fma.f64 #s(literal 1/2 binary64) (exp.f64 re) (/.f64 #s(literal 1/2 binary64) (exp.f64 re))))
Symmetry

(abs im)

(negabs re)

Compiler

Compiled 96 to 61 computations (36.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 209.0ms
Operation ival-add, time spent: 149.0ms, 71.0% of total-time
Operation ival-exp, time spent: 18.0ms, 9.0% of total-time
Operation ival-sin, time spent: 14.0ms, 7.0% of total-time
Operation ival-sub, time spent: 13.0ms, 6.0% of total-time
Operation ival-mult, time spent: 12.0ms, 6.0% of total-time
Operation const, time spent: 3.0ms, 1.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 24 to 15 computations (37.5% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize115.0ms (2.2%)

Localize:

Found 1 expressions with local error:

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

Compiled 36 to 14 computations (61.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 20.0ms
Operation ival-sin, time spent: 7.0ms, 35.0% of total-time
Operation ival-mult, time spent: 6.0ms, 30.0% of total-time
Operation ival-exp, time spent: 3.0ms, 15.0% of total-time
Operation ival-add, time spent: 1.0ms, 5.0% of total-time
Operation const, time spent: 1.0ms, 5.0% of total-time
Operation ival-neg, time spent: 1.0ms, 5.0% of total-time

series8.0ms (0.2%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))>
Outputs
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 re (+.f64 (*.f64 #s(literal -1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))>
#<alt (*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/240 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))))>
#<alt (*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/10080 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/240 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (sin.f64 re)>
#<alt (+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))>
#<alt (+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))))>
#<alt (+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/24 binary64) (sin.f64 re)))))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
Calls

6 calls:

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

rewrite149.0ms (2.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01644
120244
2330644
Stop Event
unsound
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1/3 binary64))
(sqrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(fabs.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(log.f64 (pow.f64 #s(literal 1 binary64) (sin.f64 re)))
(log.f64 (+.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(cbrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal 1 binary64)))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal -2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(fma.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)))

simplify61.0ms (1.1%)

Algorithm
egg-herbie
Rules
510×fma-define
395×associate-*r*
328×associate-*r/
324×associate-*l/
307×associate-*l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01031556
13201402
211021402
341771402
Stop Event
node limit
Counts
46 → 48
Calls
Call 1
Inputs
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 re (+.f64 (*.f64 #s(literal -1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/240 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))))
(*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/10080 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/240 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/24 binary64) (sin.f64 re)))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))) #s(literal 1 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1/3 binary64))
(sqrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(fabs.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(log.f64 (pow.f64 #s(literal 1 binary64) (sin.f64 re)))
(log.f64 (+.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(cbrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal 1 binary64)))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal -2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(fma.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
Outputs
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))))
(*.f64 re (+.f64 (*.f64 #s(literal -1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (fma.f64 #s(literal -1/12 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 #s(literal -1/12 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1/2 binary64))))
(*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/240 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re #s(literal 2 binary64))) #s(literal 1/240 binary64))))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 #s(literal -1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/240 binary64)))) (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im)))))
(*.f64 re (+.f64 (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/10080 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 #s(literal 1/240 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/12 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/10080 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re #s(literal 2 binary64))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) #s(literal 1/240 binary64))))))))
(*.f64 re (+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 #s(literal -1/12 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1/2 binary64))) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/10080 binary64)) #s(literal 1/240 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (sin.f64 re)))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/24 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (sin.f64 re)))))
(fma.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 (sin.f64 re) (+.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/24 binary64)))) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) (*.f64 #s(literal 1/24 binary64) (sin.f64 re)))))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/720 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))) (*.f64 (sin.f64 re) #s(literal 1/24 binary64)))))))
(fma.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) (sin.f64 re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/720 binary64)) #s(literal 1/24 binary64))))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) (exp.f64 im) (/.f64 #s(literal 1/2 binary64) (exp.f64 im))) (sin.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(sin.f64 re)
(+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(sin.f64 re)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))) #s(literal 1 binary64))
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (+.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(sin.f64 re)
(/.f64 (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))) (-.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64))
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1/3 binary64))
(sin.f64 re)
(sqrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(fabs.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(sin.f64 re)
(log.f64 (pow.f64 #s(literal 1 binary64) (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 #s(literal 1 binary64) (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))))
(sin.f64 re)
(cbrt.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(sin.f64 re)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(sin.f64 re)
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(sin.f64 re)
(exp.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal 1 binary64)))
(sin.f64 re)
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64))) #s(literal -2 binary64)))
(sin.f64 re)
(fma.f64 #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(sin.f64 re)
(fma.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal 1 binary64) (*.f64 (sin.f64 re) #s(literal -2 binary64)))
(sin.f64 re)

eval14.0ms (0.3%)

Compiler

Compiled 711 to 374 computations (47.4% saved)

prune11.0ms (0.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New43548
Fresh000
Picked011
Done000
Total43649
Accuracy
100.0%
Counts
49 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
23.0%
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
10.0%
(+.f64 (sin.f64 re) (sin.f64 re))
72.4%
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.2%
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
46.9%
(sin.f64 re)
Compiler

Compiled 99 to 76 computations (23.2% saved)

localize141.0ms (2.7%)

Localize:

Found 4 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
99.6%
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
100.0%
(*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))
94.4%
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
Compiler

Compiled 89 to 44 computations (50.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 57.0ms
Operation ival-pow, time spent: 21.0ms, 37.0% of total-time
Operation ival-mult, time spent: 16.0ms, 28.0% of total-time
Operation ival-sin, time spent: 7.0ms, 12.0% of total-time
Operation ival-add, time spent: 6.0ms, 10.0% of total-time
Operation ival-exp, time spent: 3.0ms, 5.0% of total-time
Operation const, time spent: 3.0ms, 5.0% of total-time
Operation ival-neg, time spent: 1.0ms, 2.0% of total-time

series16.0ms (0.3%)

Counts
4 → 60
Calls
Call 1
Inputs
#<alt (*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))>
#<alt (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))>
#<alt (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))>
#<alt (*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))>
Outputs
#<alt (sin.f64 re)>
#<alt (+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))>
#<alt (+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))>
#<alt (+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 re (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))>
#<alt (*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))))))))>
#<alt (*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/120 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))))))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))>
#<alt (/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 #s(literal 1/12 binary64) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64)))>
#<alt (/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 #s(literal 1/60 binary64) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 re #s(literal 2 binary64)))>
#<alt (/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/60 binary64) (*.f64 #s(literal 1/378 binary64) (pow.f64 re #s(literal 2 binary64)))))))) (pow.f64 re #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt re>
#<alt (+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))>
#<alt (+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/2 binary64) re))))>
#<alt (+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/24 binary64) re))))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
#<alt (*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))>
Calls

18 calls:

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

rewrite43.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
163×associate-*r*
155×log1p-expm1-u
155×expm1-log1p-u
152×add-exp-log
152×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
025124
1353124
25692124
Stop Event
unsound
Counts
4 → 56
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
Outputs
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)

simplify136.0ms (2.6%)

Algorithm
egg-herbie
Rules
807×associate-+r+
722×associate-+l+
659×fma-define
527×associate-*r*
452×distribute-rgt-out
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01092555
13192252
210772203
340782179
466592179
575832179
Stop Event
node limit
Counts
116 → 68
Calls
Call 1
Inputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 re (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/120 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))))))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 #s(literal 1/12 binary64) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 #s(literal 1/60 binary64) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/60 binary64) (*.f64 #s(literal 1/378 binary64) (pow.f64 re #s(literal 2 binary64)))))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/2 binary64) re))))
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/24 binary64) re))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
Outputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 re (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal -1/6 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal -1/12 binary64)))))))
(*.f64 re (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64))))
(*.f64 re (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64)))) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64))))
(*.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))) (*.f64 (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64))) #s(literal 1/120 binary64)))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64))))))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64) #s(literal -1/6 binary64))) #s(literal 1 binary64))))
(*.f64 re (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64)))) (*.f64 (pow.f64 re #s(literal 4 binary64)) #s(literal 1/120 binary64)))))
(*.f64 re (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))) (*.f64 #s(literal 1/120 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))))))))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/6 binary64) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/5040 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64))) (+.f64 #s(literal 1/120 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1/120 binary64))))))))))
(*.f64 re (+.f64 #s(literal 1 binary64) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/5040 binary64)) #s(literal 1/120 binary64))) (+.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal -1/12 binary64))))))))
(*.f64 re (+.f64 (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64))) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/5040 binary64) #s(literal 1/120 binary64))) (pow.f64 re #s(literal 4 binary64)))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (+.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/5040 binary64) #s(literal 1/120 binary64))))) #s(literal 1 binary64))))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(*.f64 (sin.f64 re) (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(+.f64 (sin.f64 re) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (sin.f64 re) (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 #s(literal 1/12 binary64) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/12 binary64))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/12 binary64) #s(literal 1/4 binary64)) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 #s(literal 1/60 binary64) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/60 binary64))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/60 binary64) #s(literal 1/12 binary64)) #s(literal 1/4 binary64)) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/12 binary64) (fma.f64 #s(literal 1/60 binary64) (pow.f64 re #s(literal 4 binary64)) #s(literal 1/4 binary64))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/60 binary64) (*.f64 #s(literal 1/378 binary64) (pow.f64 re #s(literal 2 binary64)))))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (+.f64 #s(literal 1/4 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/12 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 #s(literal 1/60 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/378 binary64))))))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/378 binary64) #s(literal 1/60 binary64)) #s(literal 1/12 binary64)) #s(literal 1/4 binary64)) (pow.f64 re #s(literal 2 binary64)))
(/.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/12 binary64) (fma.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/378 binary64) #s(literal 1/60 binary64)) (pow.f64 re #s(literal 4 binary64)) #s(literal 1/4 binary64))) (pow.f64 re #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(/.f64 #s(literal 1/4 binary64) (pow.f64 (sin.f64 re) #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(*.f64 re (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 re (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)))
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/2 binary64) re))))
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/24 binary64) (*.f64 re (pow.f64 im #s(literal 2 binary64))) (*.f64 re #s(literal 1/2 binary64)))))
(fma.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 re (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/24 binary64)) #s(literal 1/2 binary64))) re)
(fma.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 re (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/24 binary64) #s(literal 1/2 binary64))) re)
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/2 binary64) re) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal 1/720 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (*.f64 #s(literal 1/24 binary64) re))))))
(+.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/2 binary64) re (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 #s(literal 1/720 binary64) (*.f64 re (pow.f64 im #s(literal 2 binary64))) (*.f64 re #s(literal 1/24 binary64)))))))
(fma.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 re #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 re (+.f64 #s(literal 1/24 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/720 binary64)))))) re)
(fma.f64 re (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 re (*.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/720 binary64) #s(literal 1/24 binary64)) (pow.f64 im #s(literal 4 binary64)))))
(*.f64 re (+.f64 (fma.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/720 binary64) #s(literal 1/24 binary64)) (pow.f64 im #s(literal 4 binary64)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 #s(literal -1 binary64) im)))))
(*.f64 (*.f64 re #s(literal 1/2 binary64)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)
#s(literal -4 binary64)
#s(literal -2 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 0 binary64)
#s(literal 1/16 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 3/2 binary64)
#s(literal 2 binary64)
#s(literal 3 binary64)
#s(literal 4 binary64)

eval23.0ms (0.4%)

Compiler

Compiled 980 to 756 computations (22.9% saved)

prune21.0ms (0.4%)

Pruning

18 alts after pruning (12 fresh and 6 done)

PrunedKeptTotal
New561268
Fresh000
Picked055
Done011
Total561874
Accuracy
100.0%
Counts
74 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
23.0%
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
21.3%
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
10.0%
(+.f64 (sin.f64 re) (sin.f64 re))
41.6%
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
72.4%
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.2%
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
28.8%
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
46.9%
(sin.f64 re)
23.5%
re
4.8%
#s(literal 4 binary64)
5.4%
#s(literal 1 binary64)
5.3%
#s(literal 1/2 binary64)
5.1%
#s(literal 1/4 binary64)
4.9%
#s(literal 1/8 binary64)
3.7%
#s(literal -1/2 binary64)
3.7%
#s(literal -1 binary64)
3.3%
#s(literal -4 binary64)
Compiler

Compiled 166 to 139 computations (16.3% saved)

localize64.0ms (1.2%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
88.7%
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
Compiler

Compiled 35 to 25 computations (28.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
Operation ival-pow, time spent: 12.0ms, 52.0% of total-time
Operation ival-mult, time spent: 8.0ms, 34.0% of total-time
Operation const, time spent: 2.0ms, 9.0% of total-time
Operation ival-add, time spent: 1.0ms, 4.0% of total-time

series3.0ms (0%)

Counts
1 → 0
Calls
Call 1
Inputs
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) re)>
Outputs
Calls

6 calls:

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

rewrite69.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
318×unpow-prod-down
309×log1p-expm1-u
309×expm1-log1p-u
294×add-exp-log
282×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
18819
293519
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
Outputs
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re) #s(literal 2 binary64)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64))
(/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64)))))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 2 binary64))
(pow.f64 (E.f64) (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))) #s(literal 2 binary64))) (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))) (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)))
(fabs.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(exp.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 re))) #s(literal 2 binary64)))

simplify92.0ms (1.7%)

Algorithm
egg-herbie
Rules
691×prod-exp
583×cancel-sign-sub-inv
442×associate--r+
386×distribute-lft-out
335×associate--r-
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
080749
1147731
2348711
31357711
43077711
57690711
Stop Event
node limit
Counts
23 → 33
Calls
Call 1
Inputs
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re) #s(literal 2 binary64)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64))
(/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64)))))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 2 binary64))
(pow.f64 (E.f64) (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))) #s(literal 2 binary64))) (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))) (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)))
(fabs.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(exp.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 re))) #s(literal 2 binary64)))
Outputs
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re) #s(literal 2 binary64)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) re)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 re) (pow.f64 im #s(literal 2 binary64))) #s(literal 2 binary64)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 2 binary64) re)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64)) #s(literal 1 binary64)) (+.f64 (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) (+.f64 #s(literal 1 binary64) (*.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 1 binary64)))))
(/.f64 (+.f64 (pow.f64 (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64)) #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64)) (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (+.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64)))))
(/.f64 (+.f64 (pow.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) (+.f64 #s(literal 2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))))
(/.f64 (+.f64 (pow.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 2 binary64)))))
(/.f64 (expm1.f64 (*.f64 #s(literal 3 binary64) (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))) (+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 1 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) re #s(literal 2 binary64)))))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re) #s(literal 1 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)) #s(literal 3 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)))
(pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 2 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(pow.f64 (E.f64) (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))) #s(literal 2 binary64))) (cbrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(pow.f64 (exp.f64 (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))) (sqrt.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 4 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(fabs.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(log.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) re))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(exp.f64 (fma.f64 #s(literal 2 binary64) (log.f64 im) (log.f64 re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) re))) #s(literal 3 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 re)) #s(literal 6 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 re))) #s(literal 2 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)

eval20.0ms (0.4%)

Compiler

Compiled 580 to 416 computations (28.3% saved)

prune13.0ms (0.2%)

Pruning

18 alts after pruning (7 fresh and 11 done)

PrunedKeptTotal
New33033
Fresh077
Picked055
Done066
Total331851
Accuracy
100.0%
Counts
51 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
23.0%
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
21.3%
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
10.0%
(+.f64 (sin.f64 re) (sin.f64 re))
41.6%
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
72.4%
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.2%
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
28.8%
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
46.9%
(sin.f64 re)
23.5%
re
4.8%
#s(literal 4 binary64)
5.4%
#s(literal 1 binary64)
5.3%
#s(literal 1/2 binary64)
5.1%
#s(literal 1/4 binary64)
4.9%
#s(literal 1/8 binary64)
3.7%
#s(literal -1/2 binary64)
3.7%
#s(literal -1 binary64)
3.3%
#s(literal -4 binary64)
Compiler

Compiled 143 to 119 computations (16.8% saved)

localize64.0ms (1.2%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
94.3%
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
Compiler

Compiled 30 to 20 computations (33.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 24.0ms
Operation ival-pow, time spent: 9.0ms, 37.0% of total-time
Operation ival-mult, time spent: 7.0ms, 29.0% of total-time
Operation ival-sin, time spent: 7.0ms, 29.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time

series3.0ms (0.1%)

Counts
1 → 4
Calls
Call 1
Inputs
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))>
Outputs
#<alt (*.f64 (pow.f64 im #s(literal 2 binary64)) re)>
#<alt (*.f64 re (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 im #s(literal 2 binary64))))>
#<alt (*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 im #s(literal 2 binary64))))>
#<alt (*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (*.f64 #s(literal 1/120 binary64) (pow.f64 im #s(literal 2 binary64))))))) (pow.f64 im #s(literal 2 binary64))))>
Calls

6 calls:

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

rewrite66.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
395×log1p-expm1-u
395×expm1-log1p-u
382×unpow-prod-down
375×add-exp-log
360×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01223
110723
2115123
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
Outputs
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64)))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 1 binary64))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))) (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (sin.f64 re)))) #s(literal 2 binary64)))

simplify91.0ms (1.7%)

Algorithm
egg-herbie
Rules
976×fma-define
629×fma-neg
584×div-sub
404×distribute-lft-in
364×distribute-rgt-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
092981
1195981
2492953
31470929
43137924
54272924
66447924
Stop Event
node limit
Counts
25 → 41
Calls
Call 1
Inputs
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(*.f64 re (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (*.f64 #s(literal 1/120 binary64) (pow.f64 im #s(literal 2 binary64))))))) (pow.f64 im #s(literal 2 binary64))))
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64)))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 1 binary64))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)) #s(literal 1 binary64))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 3 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 2 binary64))
(pow.f64 (E.f64) (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))) (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(exp.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 3 binary64)))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (sin.f64 re)))) #s(literal 2 binary64)))
Outputs
(*.f64 (pow.f64 im #s(literal 2 binary64)) re)
(*.f64 re (+.f64 (*.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (pow.f64 im #s(literal 2 binary64))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 re (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64)))))
(*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64))) #s(literal 1/120 binary64))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal -1/6 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64)))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64)))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64) #s(literal -1/6 binary64))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (fma.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 #s(literal 1/120 binary64) (pow.f64 re #s(literal 4 binary64))))))
(*.f64 re (+.f64 (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64))) (*.f64 (pow.f64 re #s(literal 2 binary64)) (+.f64 (*.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64)))) (*.f64 #s(literal 1/120 binary64) (pow.f64 im #s(literal 2 binary64))))))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/6 binary64) (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 #s(literal -1/5040 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (pow.f64 re #s(literal 2 binary64))) (*.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/120 binary64))))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal -1/6 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) (fma.f64 (pow.f64 im #s(literal 2 binary64)) #s(literal 1/120 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/5040 binary64)))))) (pow.f64 im #s(literal 2 binary64))))
(*.f64 re (+.f64 (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (pow.f64 im #s(literal 2 binary64))) (*.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 #s(literal 1/120 binary64) (*.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal -1/5040 binary64)))) (pow.f64 re #s(literal 4 binary64)))))
(*.f64 re (fma.f64 (pow.f64 re #s(literal 2 binary64)) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 (fma.f64 (pow.f64 re #s(literal 2 binary64)) #s(literal 1/120 binary64) #s(literal -1/6 binary64)) (*.f64 #s(literal -1/5040 binary64) (pow.f64 re #s(literal 4 binary64))))) (pow.f64 im #s(literal 2 binary64))))
(+.f64 #s(literal 0 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64)))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) (sin.f64 re))) #s(literal 2 binary64))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))))
(*.f64 #s(literal 2 binary64) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im #s(literal 2 binary64))) (sin.f64 re)))))
(-.f64 (+.f64 #s(literal 1 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 1 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(pow.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)) #s(literal 1 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))) #s(literal 3 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)) #s(literal 1/2 binary64))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)))
(pow.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)) #s(literal 1/3 binary64))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)))
(pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 2 binary64))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(pow.f64 (E.f64) (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 2 binary64))) (cbrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))) (sqrt.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 4 binary64)))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im #s(literal 2 binary64))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(exp.f64 (log.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))) #s(literal 3 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64))) #s(literal 1/3 binary64)))
(cbrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (sin.f64 re))) #s(literal 6 binary64)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 (sin.f64 re)))) #s(literal 2 binary64)))
(*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re))

eval29.0ms (0.5%)

Compiler

Compiled 698 to 508 computations (27.2% saved)

prune20.0ms (0.4%)

Pruning

21 alts after pruning (5 fresh and 16 done)

PrunedKeptTotal
New38341
Fresh022
Picked055
Done01111
Total382159
Accuracy
100.0%
Counts
59 → 21
Alt Table
Click to see full alt table
StatusAccuracyProgram
23.0%
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
21.3%
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
10.0%
(+.f64 (sin.f64 re) (sin.f64 re))
41.6%
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
72.4%
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
100.0%
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
62.2%
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
30.1%
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 re (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64))))))
28.8%
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
21.3%
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
30.2%
(*.f64 #s(literal 1/2 binary64) (*.f64 re (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (pow.f64 im #s(literal 2 binary64)))))
46.9%
(sin.f64 re)
23.5%
re
4.8%
#s(literal 4 binary64)
5.4%
#s(literal 1 binary64)
5.3%
#s(literal 1/2 binary64)
5.1%
#s(literal 1/4 binary64)
4.9%
#s(literal 1/8 binary64)
3.7%
#s(literal -1/2 binary64)
3.7%
#s(literal -1 binary64)
3.3%
#s(literal -4 binary64)
Compiler

Compiled 276 to 207 computations (25% saved)

regimes40.0ms (0.7%)

Counts
22 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 re (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (pow.f64 im #s(literal 2 binary64)))))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

6 calls:

8.0ms
im
8.0ms
(sin.f64 re)
8.0ms
(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
7.0ms
re
6.0ms
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
Results
AccuracySegmentsBranch
100.0%1re
100.0%1im
100.0%1(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im)))
100.0%1(*.f64 #s(literal 1/2 binary64) (sin.f64 re))
100.0%1(sin.f64 re)
100.0%1(+.f64 (exp.f64 (-.f64 #s(literal 0 binary64) im)) (exp.f64 im))
Compiler

Compiled 39 to 30 computations (23.1% saved)

regimes49.0ms (0.9%)

Counts
20 → 3
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (+.f64 re (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 3 binary64))))))
(*.f64 #s(literal 1/2 binary64) (*.f64 re (*.f64 (+.f64 (*.f64 #s(literal -1/6 binary64) (pow.f64 re #s(literal 2 binary64))) #s(literal 1 binary64)) (pow.f64 im #s(literal 2 binary64)))))
Outputs
(*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
Calls

3 calls:

18.0ms
im
17.0ms
(sin.f64 re)
12.0ms
re
Results
AccuracySegmentsBranch
88.5%2re
93.1%3im
91.2%5(sin.f64 re)
Compiler

Compiled 10 to 7 computations (30% saved)

regimes16.0ms (0.3%)

Counts
17 → 3
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
Outputs
(sin.f64 re)
(*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
Calls

1 calls:

15.0ms
im
Results
AccuracySegmentsBranch
92.8%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes50.0ms (0.9%)

Counts
16 → 3
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
Outputs
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))
Calls

3 calls:

21.0ms
(sin.f64 re)
14.0ms
im
13.0ms
re
Results
AccuracySegmentsBranch
64.7%4(sin.f64 re)
64.3%3re
81.3%3im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes14.0ms (0.3%)

Counts
15 → 3
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
Outputs
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
Calls

1 calls:

13.0ms
im
Results
AccuracySegmentsBranch
73.9%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes14.0ms (0.3%)

Counts
14 → 3
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
(+.f64 re (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re)))
(+.f64 (sin.f64 re) (sin.f64 re))
Outputs
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
(*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))
Calls

1 calls:

13.0ms
im
Results
AccuracySegmentsBranch
73.9%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes8.0ms (0.2%)

Counts
11 → 2
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
Outputs
(sin.f64 re)
(/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64)))
Calls

1 calls:

8.0ms
im
Results
AccuracySegmentsBranch
65.3%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes12.0ms (0.2%)

Counts
10 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
(sin.f64 re)
Outputs
(sin.f64 re)
Calls

3 calls:

4.0ms
(sin.f64 re)
4.0ms
im
4.0ms
re
Results
AccuracySegmentsBranch
46.9%1(sin.f64 re)
46.9%1re
46.9%1im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes11.0ms (0.2%)

Counts
9 → 2
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
re
Outputs
re
#s(literal 1 binary64)
Calls

2 calls:

6.0ms
re
4.0ms
im
Results
AccuracySegmentsBranch
23.5%1im
25.4%2re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes7.0ms (0.1%)

Counts
8 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
#s(literal 1 binary64)
#s(literal 4 binary64)
Outputs
#s(literal 1 binary64)
Calls

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

regimes6.0ms (0.1%)

Counts
6 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
#s(literal 1/2 binary64)
Outputs
#s(literal 1/2 binary64)
Calls

2 calls:

3.0ms
im
2.0ms
re
Results
AccuracySegmentsBranch
5.3%1re
5.3%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.1%)

Counts
5 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
#s(literal 1/4 binary64)
Outputs
#s(literal 1/4 binary64)
Calls

2 calls:

2.0ms
im
2.0ms
re
Results
AccuracySegmentsBranch
5.1%1im
5.1%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.1%)

Counts
4 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
#s(literal 1/8 binary64)
Outputs
#s(literal 1/8 binary64)
Calls

2 calls:

3.0ms
re
2.0ms
im
Results
AccuracySegmentsBranch
4.9%1re
4.9%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes4.0ms (0.1%)

Counts
3 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
#s(literal -1 binary64)
#s(literal -1/2 binary64)
Outputs
#s(literal -1 binary64)
Calls

2 calls:

2.0ms
re
2.0ms
im
Results
AccuracySegmentsBranch
3.7%1im
3.7%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes2.0ms (0%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
#s(literal -4 binary64)
Outputs
#s(literal -4 binary64)
Calls

2 calls:

1.0ms
re
1.0ms
im
Results
AccuracySegmentsBranch
3.3%1im
3.3%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

bsearch50.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
6.100671827319044e+153
1.7428062218000198e+157
24.0ms
1.0054287042758832
885.1973247066564
Results
21.0ms128×256valid
20.0ms127×256infinite
0.0ms256infinite
Compiler

Compiled 419 to 335 computations (20% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
Operation ival-sin, time spent: 7.0ms, 36.0% of total-time
Operation ival-exp, time spent: 5.0ms, 26.0% of total-time
Operation ival-mult, time spent: 4.0ms, 21.0% of total-time
Operation ival-sub, time spent: 2.0ms, 10.0% of total-time
Operation ival-add, time spent: 1.0ms, 5.0% of total-time
Operation const, time spent: 1.0ms, 5.0% of total-time

bsearch53.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
6.100671827319044e+153
1.7428062218000198e+157
27.0ms
1.0054287042758832
885.1973247066564
Results
24.0ms128×256valid
22.0ms127×256infinite
0.0ms256infinite
Compiler

Compiled 355 to 279 computations (21.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 22.0ms
Operation ival-sin, time spent: 10.0ms, 45.0% of total-time
Operation ival-exp, time spent: 4.0ms, 18.0% of total-time
Operation ival-mult, time spent: 4.0ms, 18.0% of total-time
Operation ival-sub, time spent: 1.0ms, 5.0% of total-time
Operation ival-add, time spent: 1.0ms, 5.0% of total-time
Operation const, time spent: 1.0ms, 5.0% of total-time

bsearch55.0ms (1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
24.0ms
6.100671827319044e+153
1.7428062218000198e+157
31.0ms
885.1973247066564
1036773315.6461968
Results
46.0ms251×256infinite
3.0ms20×256valid
0.0ms256infinite
Compiler

Compiled 305 to 259 computations (15.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
Operation ival-sin, time spent: 8.0ms, 32.0% of total-time
Operation ival-mult, time spent: 6.0ms, 24.0% of total-time
Operation ival-exp, time spent: 5.0ms, 20.0% of total-time
Operation ival-add, time spent: 4.0ms, 16.0% of total-time
Operation ival-sub, time spent: 1.0ms, 4.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time

bsearch50.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
20.0ms
4.1813420414394305e+167
3.433664090668693e+168
30.0ms
885.1973247066564
1036773315.6461968
Results
37.0ms217×256infinite
3.0ms22×256valid
0.0ms256infinite
Compiler

Compiled 259 to 219 computations (15.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
Operation ival-sin, time spent: 6.0ms, 34.0% of total-time
Operation ival-exp, time spent: 5.0ms, 28.0% of total-time
Operation ival-mult, time spent: 4.0ms, 23.0% of total-time
Operation ival-sub, time spent: 1.0ms, 6.0% of total-time
Operation ival-add, time spent: 1.0ms, 6.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

bsearch47.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
4.1813420414394305e+167
3.433664090668693e+168
29.0ms
885.1973247066564
1036773315.6461968
Results
38.0ms220×256infinite
3.0ms19×256valid
0.0ms256infinite
Compiler

Compiled 244 to 204 computations (16.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
Operation ival-exp, time spent: 6.0ms, 31.0% of total-time
Operation ival-sin, time spent: 6.0ms, 31.0% of total-time
Operation ival-mult, time spent: 4.0ms, 21.0% of total-time
Operation ival-sub, time spent: 1.0ms, 5.0% of total-time
Operation ival-add, time spent: 1.0ms, 5.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

bsearch174.0ms (3.3%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
174.0ms
885.1973247066564
1036773315.6461968
Results
21.0ms119×256infinite
3.0ms24×256valid
0.0ms256valid
Compiler

Compiled 136 to 114 computations (16.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
Operation ival-sin, time spent: 5.0ms, 39.0% of total-time
Operation ival-exp, time spent: 3.0ms, 24.0% of total-time
Operation ival-mult, time spent: 2.0ms, 16.0% of total-time
Operation ival-sub, time spent: 1.0ms, 8.0% of total-time
Operation ival-add, time spent: 1.0ms, 8.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

bsearch22.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
22.0ms
3213490981696.2607
18858834646994.445
Results
8.0ms50×256valid
8.0ms45×256infinite
0.0ms256valid
Compiler

Compiled 67 to 57 computations (14.9% saved)

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

simplify15.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
064571
184571
286571
387571
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re)) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))))
(if (<=.f64 im #s(literal 920 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64))))
(sin.f64 re)
(if (<=.f64 re #s(literal 3300000000000 binary64)) re #s(literal 1 binary64))
#s(literal 1 binary64)
#s(literal 1/2 binary64)
#s(literal 1/4 binary64)
#s(literal 1/8 binary64)
#s(literal -1 binary64)
#s(literal -4 binary64)
Outputs
(*.f64 (*.f64 #s(literal 1/2 binary64) (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (*.f64 (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64)) (sin.f64 re)) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (*.f64 (sin.f64 re) (+.f64 (*.f64 #s(literal 1/2 binary64) (pow.f64 im #s(literal 2 binary64))) #s(literal 1 binary64))) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 #s(literal 1/2 binary64) re)) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (*.f64 #s(literal 1/2 binary64) re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 2296835809958953/2251799813685248 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 #s(literal 1/2 binary64) re)) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) (sin.f64 re)))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 13500000000000000275507010685175621526490118987092636456657125042259125821644957267949903389666459196246900088209596760608108317076954234449082739494748160 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 (sin.f64 re) (pow.f64 im #s(literal 2 binary64))))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (pow.f64 (*.f64 (sin.f64 re) #s(literal -2 binary64)) #s(literal -2 binary64)) (*.f64 #s(literal 1/2 binary64) (*.f64 re (pow.f64 im #s(literal 2 binary64))))))
(if (<=.f64 im #s(literal 920 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (*.f64 (pow.f64 im #s(literal 2 binary64)) re))))
(if (<=.f64 im #s(literal 920 binary64)) (sin.f64 re) (if (<=.f64 im #s(literal 419999999999999984791227764913234097046867526718719982328816442174603063229672385491944599884205588563541267463345342479131406991477494048571637708469475344129187643392 binary64)) (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64))) (*.f64 #s(literal 1/2 binary64) (*.f64 re (pow.f64 im #s(literal 2 binary64))))))
(if (<=.f64 im #s(literal 900 binary64)) (sin.f64 re) (/.f64 #s(literal 1/4 binary64) (pow.f64 re #s(literal 2 binary64))))
(sin.f64 re)
(if (<=.f64 re #s(literal 3300000000000 binary64)) re #s(literal 1 binary64))
#s(literal 1 binary64)
#s(literal 1/2 binary64)
#s(literal 1/4 binary64)
#s(literal 1/8 binary64)
#s(literal -1 binary64)
#s(literal -4 binary64)
Compiler

Compiled 199 to 150 computations (24.6% saved)

soundness527.0ms (9.9%)

Rules
989×fma-neg
725×fma-define
510×fma-define
395×associate-*r*
328×associate-*r/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036316
1111308
2397308
3986298
41988294
53213294
63708294
74185294
84839294
94992294
105009294
115009294
125041294
135070294
145070294
01644
120244
2330644
025124
1353124
25692124
01031556
13201402
211021402
341771402
Stop Event
node limit
unsound
unsound
saturated
Compiler

Compiled 99 to 60 computations (39.4% saved)

end0.0ms (0%)

preprocess227.0ms (4.3%)

Remove

(negabs re)

(abs im)

Compiler

Compiled 838 to 596 computations (28.9% saved)

Profiling

Loading profile data...