math.sin on complex, real part

Time bar (total: 6.5s)

analyze0.0ms (0%)

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

Compiled 15 to 12 computations (20% saved)

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

sample1.7s (26.2%)

Results
845.0ms4188×256valid
725.0ms4066×256infinite
0.0ms256infinite
0.0ms512valid
Precisions
Click to see histograms. Total time spent on operations: 759.0ms
Operation ival-sin, time spent: 255.0ms, 34.0% of total-time
Operation ival-mult, time spent: 218.0ms, 29.0% of total-time
Operation ival-exp, time spent: 132.0ms, 17.0% of total-time
Operation ival-sub, time spent: 77.0ms, 10.0% of total-time
Operation ival-add, time spent: 58.0ms, 8.0% of total-time
Operation const, time spent: 19.0ms, 3.0% of total-time
Bogosity

preprocess604.0ms (9.3%)

Algorithm
egg-herbie
Rules
1978×fma-neg
1450×fma-define
528×times-frac
430×distribute-lft-neg-in
340×unsub-neg
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-re
00-0-(*.f64 1/2 (sin.f64 re))
00-0-(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im)))
00-0-1/2
00-0-im
00-0-(-.f64 0 im)
00-0-(+.f64 (exp.f64 (-.f64 0 im)) (exp.f64 im))
02(2.7651482345644876e-169 115.89789498309474)0-(exp.f64 (-.f64 0 im))
00-0-(sin.f64 re)
00-0-(exp.f64 im)
00-0-0
Iterations

Useful iterations: 4 (0.0ms)

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

(abs im)

(negabs re)

Compiler

Compiled 96 to 61 computations (36.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 103.0ms
Operation ival-mult, time spent: 33.0ms, 32.0% of total-time
Operation ival-exp, time spent: 21.0ms, 20.0% of total-time
Operation ival-add, time spent: 19.0ms, 18.0% of total-time
Operation ival-sin, time spent: 17.0ms, 16.0% of total-time
Operation ival-sub, time spent: 10.0ms, 10.0% of total-time
Operation const, time spent: 3.0ms, 3.0% of total-time

eval1.0ms (0%)

Compiler

Compiled 24 to 15 computations (37.5% saved)

prune1.0ms (0%)

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

Compiled 13 to 10 computations (23.1% saved)

localize62.0ms (1%)

Localize:

Found 2 expressions with local error:

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

Compiled 36 to 14 computations (61.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 23.0ms
Operation ival-mult, time spent: 9.0ms, 39.0% of total-time
Operation ival-sin, time spent: 7.0ms, 30.0% of total-time
Operation ival-exp, time spent: 4.0ms, 17.0% of total-time
Operation ival-add, time spent: 2.0ms, 9.0% of total-time
Operation const, time spent: 1.0ms, 4.0% of total-time
Operation ival-neg, time spent: 1.0ms, 4.0% of total-time

series11.0ms (0.2%)

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

9 calls:

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

rewrite153.0ms (2.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01669
120269
2330669
Stop Event
unsound
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Outputs
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(fabs.f64 (*.f64 (sin.f64 re) -2))
(log.f64 (pow.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
-2
0
1/4
1/2
3/2
2

simplify70.0ms (1.1%)

Algorithm
egg-herbie
Rules
1226×fma-define
918×associate-*r*
724×associate-*l*
658×associate-*r/
652×associate-*l/
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01192103
13611906
212431906
345941906
Stop Event
node limit
Counts
64 → 63
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 re (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))))
(*.f64 re (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 1/2 (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 1/24 (sin.f64 re)))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 1/12 (pow.f64 im 2)))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 1/360 (pow.f64 im 2)))))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (sin.f64 re) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(fabs.f64 (*.f64 (sin.f64 re) -2))
(log.f64 (pow.f64 1 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
-2
0
1/4
1/2
3/2
2
Outputs
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))))
(*.f64 re (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (fma.f64 -1/12 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 re (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/12 (pow.f64 re 2)) 1/2)))
(*.f64 re (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/240 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))))
(*.f64 re (fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re 2) (fma.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) 1/240)))))
(*.f64 re (fma.f64 (pow.f64 re 2) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 -1/12 (*.f64 (pow.f64 re 2) 1/240))) (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im)))))
(*.f64 re (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/240 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))))
(*.f64 re (fma.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re 2) (fma.f64 -1/12 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (pow.f64 re 2) (fma.f64 -1/10080 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (pow.f64 re 2)) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/240)))))))
(*.f64 re (+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/12 (pow.f64 re 2)) 1/2)) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 2) -1/10080) 1/240)) (*.f64 (pow.f64 re 2) (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 1/2 (sin.f64 re)))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (fma.f64 1/24 (*.f64 (sin.f64 re) (pow.f64 im 2)) (*.f64 1/2 (sin.f64 re)))))
(fma.f64 (pow.f64 im 2) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 2) 1/24) 1/2)) (sin.f64 re))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 2) (sin.f64 re))) (*.f64 1/24 (sin.f64 re)))))))
(+.f64 (sin.f64 re) (*.f64 (pow.f64 im 2) (fma.f64 1/2 (sin.f64 re) (*.f64 (pow.f64 im 2) (fma.f64 1/720 (*.f64 (sin.f64 re) (pow.f64 im 2)) (*.f64 (sin.f64 re) 1/24))))))
(fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) (*.f64 (sin.f64 re) (+.f64 1/24 (*.f64 (pow.f64 im 2) 1/720))) (*.f64 1/2 (sin.f64 re))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
2
(sin.f64 re)
(+.f64 2 (pow.f64 im 2))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 1/12 (pow.f64 im 2)))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) 1/12))))
(fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) 1/12 1) 2)
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 1/360 (pow.f64 im 2)))))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 (pow.f64 im 2) 1/360))))))
(fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) 1/360 1/12) 1) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (sin.f64 re)))
(*.f64 (fma.f64 1/2 (exp.f64 im) (/.f64 1/2 (exp.f64 im))) (sin.f64 re))
(+.f64 (sin.f64 re) (sin.f64 re))
(sin.f64 re)
(+.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 re) -2))) 1)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) -2)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) 1)
(sin.f64 re)
(/.f64 (*.f64 (sin.f64 re) -2) (+.f64 (*.f64 (sin.f64 re) -2) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))))
(sin.f64 re)
(/.f64 (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)) (-.f64 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) 1)
(sin.f64 re)
(pow.f64 (*.f64 (sin.f64 re) -2) 1/3)
(sin.f64 re)
(sqrt.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(fabs.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(log.f64 (pow.f64 1 (sin.f64 re)))
(sin.f64 re)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 re) -2))))
(sin.f64 re)
(cbrt.f64 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(expm1.f64 (log1p.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(log1p.f64 (expm1.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(exp.f64 (log.f64 (*.f64 (sin.f64 re) -2)))
(sin.f64 re)
(exp.f64 (*.f64 (log.f64 (*.f64 (sin.f64 re) -2)) 1))
(sin.f64 re)
(exp.f64 (+.f64 (log.f64 (*.f64 (sin.f64 re) -2)) -2))
(sin.f64 re)
(fma.f64 1 (*.f64 (sin.f64 re) -2) (*.f64 (sin.f64 re) -2))
(sin.f64 re)
(fma.f64 (*.f64 (sin.f64 re) -2) 1 (*.f64 (sin.f64 re) -2))
(sin.f64 re)
-2
(sin.f64 re)
0
(sin.f64 re)
1/4
(sin.f64 re)
1/2
(sin.f64 re)
3/2
(sin.f64 re)
2
(sin.f64 re)

eval16.0ms (0.3%)

Compiler

Compiled 901 to 509 computations (43.5% saved)

prune14.0ms (0.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New58563
Fresh000
Picked011
Done000
Total58664
Accuracy
100.0%
Counts
64 → 6
Alt Table
Click to see full alt table
StatusAccuracyProgram
19.6%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
10.6%
(+.f64 (sin.f64 re) (sin.f64 re))
73.2%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
65.2%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
49.6%
(sin.f64 re)
Compiler

Compiled 99 to 76 computations (23.2% saved)

localize148.0ms (2.3%)

Localize:

Found 6 expressions with local error:

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

Compiled 89 to 44 computations (50.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 58.0ms
Operation ival-pow, time spent: 19.0ms, 33.0% of total-time
Operation ival-mult, time spent: 16.0ms, 28.0% of total-time
Operation ival-add, time spent: 7.0ms, 12.0% of total-time
Operation ival-sin, time spent: 7.0ms, 12.0% of total-time
Operation ival-exp, time spent: 4.0ms, 7.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

series18.0ms (0.3%)

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

24 calls:

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

rewrite43.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
025186
1353186
25692186
Stop Event
unsound
Counts
6 → 84
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

simplify330.0ms (5.1%)

Algorithm
egg-herbie
Rules
1652×associate-+r+
1556×fma-define
1508×associate-+l+
1302×associate-*r*
1098×associate-*l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01243038
13672678
212422623
348242595
Stop Event
node limit
Counts
164 → 84
Calls
Call 1
Inputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 1 (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 re (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))))))))
(*.f64 re (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 1/120 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))))))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(/.f64 1/4 (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 1/12 (pow.f64 re 2))) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 1/60 (pow.f64 re 2))))) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 (pow.f64 re 2) (+.f64 1/60 (*.f64 1/378 (pow.f64 re 2))))))) (pow.f64 re 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) re)) (*.f64 1/2 re))))
(+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 2) re)) (*.f64 1/24 re))))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 1/12 (pow.f64 im 2)))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 1/360 (pow.f64 im 2)))))))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
Outputs
(sin.f64 re)
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2)))
(*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (sin.f64 re) (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 re (+.f64 1 (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 re (+.f64 1 (fma.f64 -1/6 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 re (+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (+.f64 -1/6 (*.f64 (pow.f64 im 2) -1/12))))))
(*.f64 re (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 re 2)) 1) (fma.f64 1/2 (pow.f64 im 2) 1)))
(*.f64 re (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 1 (*.f64 -1/6 (pow.f64 re 2)))))
(*.f64 re (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 1/120 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))))))))
(*.f64 re (+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) (*.f64 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) (pow.f64 re 2)) 1/120))))))
(*.f64 re (+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 -1/6 (*.f64 (pow.f64 re 2) 1/120)))))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) (fma.f64 (pow.f64 re 2) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (fma.f64 (pow.f64 re 2) 1/120 -1/6)) 1)))
(*.f64 re (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 1 (*.f64 (fma.f64 (pow.f64 re 2) 1/120 -1/6) (pow.f64 re 2)))))
(*.f64 re (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 2) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))) (*.f64 1/120 (+.f64 1 (*.f64 1/2 (pow.f64 im 2)))))))))))
(*.f64 re (+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/6 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) (*.f64 (pow.f64 re 2) (fma.f64 -1/5040 (*.f64 (+.f64 1 (*.f64 1/2 (pow.f64 im 2))) (pow.f64 re 2)) (+.f64 1/120 (*.f64 1/120 (*.f64 1/2 (pow.f64 im 2)))))))))))
(*.f64 re (+.f64 1 (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 (*.f64 (pow.f64 re 2) -1/5040) 1/120)) (+.f64 -1/6 (*.f64 (pow.f64 im 2) -1/12)))))))
(*.f64 re (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 re 2)) 1) (fma.f64 1/2 (pow.f64 im 2) 1)) (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 (pow.f64 re 2) -1/5040 1/120) (pow.f64 re 4)))))
(fma.f64 re (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (*.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (+.f64 -1/6 (*.f64 (fma.f64 (pow.f64 re 2) -1/5040 1/120) (pow.f64 re 2)))) (pow.f64 re 3)))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (sin.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (sin.f64 re) (*.f64 1/2 (*.f64 (sin.f64 re) (pow.f64 im 2))))
(*.f64 (sin.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(*.f64 (pow.f64 im 2) (+.f64 1/2 (/.f64 1 (pow.f64 im 2))))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(fma.f64 1/2 (pow.f64 im 2) 1)
(/.f64 1/4 (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 1/12 (pow.f64 re 2))) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) 1/12)) (pow.f64 re 2))
(/.f64 (fma.f64 (pow.f64 re 2) 1/12 1/4) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 1/60 (pow.f64 re 2))))) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 (pow.f64 re 2) 1/60)))) (pow.f64 re 2))
(/.f64 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/60 1/12) 1/4) (pow.f64 re 2))
(/.f64 (fma.f64 (pow.f64 re 2) 1/12 (fma.f64 1/60 (pow.f64 re 4) 1/4)) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 (pow.f64 re 2) (+.f64 1/60 (*.f64 1/378 (pow.f64 re 2))))))) (pow.f64 re 2))
(/.f64 (+.f64 1/4 (*.f64 (pow.f64 re 2) (+.f64 1/12 (*.f64 (pow.f64 re 2) (+.f64 1/60 (*.f64 (pow.f64 re 2) 1/378)))))) (pow.f64 re 2))
(/.f64 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/378 1/60) 1/12) 1/4) (pow.f64 re 2))
(/.f64 (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) 1/60 (fma.f64 1/378 (pow.f64 re 4) 1/12)) 1/4) (pow.f64 re 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(/.f64 1/4 (pow.f64 (sin.f64 re) 2))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
re
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 im 2) re)) (*.f64 1/2 re))))
(+.f64 re (*.f64 (pow.f64 im 2) (fma.f64 1/24 (*.f64 re (pow.f64 im 2)) (*.f64 re 1/2))))
(fma.f64 (pow.f64 im 2) (*.f64 re (+.f64 (*.f64 (pow.f64 im 2) 1/24) 1/2)) re)
(fma.f64 (pow.f64 im 2) (*.f64 re (fma.f64 (pow.f64 im 2) 1/24 1/2)) re)
(+.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/720 (*.f64 (pow.f64 im 2) re)) (*.f64 1/24 re))))))
(+.f64 re (*.f64 (pow.f64 im 2) (fma.f64 1/2 re (*.f64 (pow.f64 im 2) (fma.f64 1/720 (*.f64 re (pow.f64 im 2)) (*.f64 re 1/24))))))
(fma.f64 (pow.f64 im 2) (fma.f64 re 1/2 (*.f64 (pow.f64 im 2) (*.f64 re (+.f64 (*.f64 (pow.f64 im 2) 1/720) 1/24)))) re)
(fma.f64 re (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 re (*.f64 (fma.f64 (pow.f64 im 2) 1/720 1/24) (pow.f64 im 4))))
(*.f64 re (+.f64 (fma.f64 1/2 (pow.f64 im 2) 1) (*.f64 (fma.f64 (pow.f64 im 2) 1/720 1/24) (pow.f64 im 4))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 re (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (*.f64 re 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 re (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
2
(+.f64 2 (pow.f64 im 2))
(fma.f64 im im 2)
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 1/12 (pow.f64 im 2)))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) 1/12))))
(fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) 1/12 1) 2)
(fma.f64 im im (fma.f64 1/12 (pow.f64 im 4) 2))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 1/360 (pow.f64 im 2)))))))
(+.f64 2 (*.f64 (pow.f64 im 2) (+.f64 1 (*.f64 (pow.f64 im 2) (+.f64 1/12 (*.f64 (pow.f64 im 2) 1/360))))))
(fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) (fma.f64 (pow.f64 im 2) 1/360 1/12) 1) 2)
(fma.f64 im im (fma.f64 (fma.f64 (pow.f64 im 2) 1/360 1/12) (pow.f64 im 4) 2))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4
-4
-2
-1
-1/2
0
1/16
1/8
1/4
1/2
1
3/2
2
3
4

eval32.0ms (0.5%)

Compiler

Compiled 1203 to 917 computations (23.8% saved)

prune22.0ms (0.3%)

Pruning

18 alts after pruning (13 fresh and 5 done)

PrunedKeptTotal
New711384
Fresh000
Picked145
Done011
Total721890
Accuracy
100.0%
Counts
90 → 18
Alt Table
Click to see full alt table
StatusAccuracyProgram
19.6%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
17.5%
(/.f64 1/4 (pow.f64 re 2))
73.2%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
27.2%
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
47.2%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
65.2%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
49.6%
(sin.f64 re)
26.6%
re
5.4%
4
5.7%
3/2
5.9%
1/2
5.7%
1/4
5.6%
1/8
5.4%
1/16
3.1%
-1/2
3.5%
-1
2.8%
-4
Compiler

Compiled 163 to 139 computations (14.7% saved)

localize57.0ms (0.9%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
94.8%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
Compiler

Compiled 26 to 17 computations (34.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 27.0ms
Operation ival-mult, time spent: 14.0ms, 52.0% of total-time
Operation composed, time spent: 9.0ms, 33.0% of total-time
Operation ival-add, time spent: 3.0ms, 11.0% of total-time
Operation const, time spent: 2.0ms, 7.0% of total-time

series4.0ms (0.1%)

Counts
1 → 24
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))>
Outputs
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))>
#<alt re>
#<alt (+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))>
#<alt (+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))>
#<alt (+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) re))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) re))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
#<alt (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))>
Calls

6 calls:

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

rewrite71.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
930×unpow-prod-down
560×log-prod
466×log1p-expm1-u
466×expm1-log1p-u
445×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01330
111030
2126830
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
Outputs
(+.f64 0 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (*.f64 (*.f64 1/2 re) 2))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 2 (*.f64 1/2 re)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))) (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(-.f64 (+.f64 1 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 1)
(pow.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4) 1/2)
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8) 1/3)
(pow.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2)) (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))) (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4))
(log.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2))
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) (*.f64 (*.f64 1/2 re) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (*.f64 2 (*.f64 1/2 re)))

simplify74.0ms (1.1%)

Algorithm
egg-herbie
Rules
1762×distribute-lft-in
1744×distribute-rgt-in
1176×times-frac
1048×fma-define
722×fma-neg
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0921647
11841647
24231515
316121506
468461494
Stop Event
node limit
Counts
49 → 43
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
re
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(+.f64 0 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))
(+.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (*.f64 (*.f64 1/2 re) 2))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 2 (*.f64 1/2 re)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))) (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(-.f64 (+.f64 1 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 1)
(pow.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))) 1)
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 3)
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4) 1/2)
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8) 1/3)
(pow.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2)) (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))) (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4))
(log.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2))
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) (*.f64 (*.f64 1/2 re) 2))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (*.f64 2 (*.f64 1/2 re)))
Outputs
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 re (+.f64 2 (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
re
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 re (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 1/2 (*.f64 re (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (/.f64 re (pow.f64 im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 0 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (*.f64 1/2 re) (pow.f64 im 2)) (*.f64 (*.f64 1/2 re) 2))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 1/2 re)) (*.f64 2 (*.f64 1/2 re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))) (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 re) (fma.f64 1/2 (pow.f64 im 2) 1)))))
(-.f64 (+.f64 1 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 1)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))) 1)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 3)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4) 1/2)
(sqrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4))
(sqrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 2))
(fabs.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(pow.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8) 1/3)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))) 2)
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (E.f64) (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2)) (cbrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (*.f64 1/2 re) (fma.f64 im im 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 (*.f64 1/2 re) (fma.f64 im im 2)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))) 2)) (cbrt.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))) (sqrt.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))) (sqrt.f64 (log.f64 (*.f64 (*.f64 1/2 re) (fma.f64 im im 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))))) (sqrt.f64 (log.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))))
(sqrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 2) 1/4))
(sqrt.f64 (pow.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)) 2))
(fabs.f64 (*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1)))
(log.f64 (pow.f64 (sqrt.f64 (exp.f64 re)) (fma.f64 im im 2)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 re (fma.f64 im im 2)) 3) 1/8))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(expm1.f64 (log1p.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(log1p.f64 (expm1.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2)))))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 3))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 1/3))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 re (*.f64 1/2 (fma.f64 im im 2))))) 2))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (*.f64 1/2 re) (pow.f64 im 2) (*.f64 (*.f64 1/2 re) 2))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))
(fma.f64 (pow.f64 im 2) (*.f64 1/2 re) (*.f64 2 (*.f64 1/2 re)))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) 1))

eval23.0ms (0.3%)

Compiler

Compiled 563 to 409 computations (27.4% saved)

prune16.0ms (0.3%)

Pruning

19 alts after pruning (9 fresh and 10 done)

PrunedKeptTotal
New42143
Fresh088
Picked055
Done055
Total421961
Accuracy
100.0%
Counts
61 → 19
Alt Table
Click to see full alt table
StatusAccuracyProgram
19.6%
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
17.5%
(/.f64 1/4 (pow.f64 re 2))
24.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
73.2%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
27.2%
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
47.2%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
65.2%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
49.6%
(sin.f64 re)
26.6%
re
5.4%
4
5.7%
3/2
5.9%
1/2
5.7%
1/4
5.6%
1/8
5.4%
1/16
3.1%
-1/2
3.5%
-1
2.8%
-4
Compiler

Compiled 159 to 135 computations (15.1% saved)

localize81.0ms (1.2%)

Localize:

Found 3 expressions with local error:

NewAccuracyProgram
99.2%
(/.f64 1/4 (pow.f64 re 2))
100.0%
(*.f64 1/2 (pow.f64 im 2))
94.7%
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
Compiler

Compiled 39 to 28 computations (28.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 25.0ms
Operation ival-pow, time spent: 8.0ms, 32.0% of total-time
Operation ival-sin, time spent: 7.0ms, 28.0% of total-time
Operation ival-mult, time spent: 6.0ms, 24.0% of total-time
Operation ival-div, time spent: 2.0ms, 8.0% of total-time
Operation const, time spent: 2.0ms, 8.0% of total-time

series10.0ms (0.2%)

Counts
3 → 24
Calls
Call 1
Inputs
#<alt (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))>
#<alt (*.f64 1/2 (pow.f64 im 2))>
#<alt (/.f64 1/4 (pow.f64 re 2))>
Outputs
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) re))>
#<alt (*.f64 re (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2))))>
#<alt (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 1/240 (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))))>
#<alt (*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/240 (pow.f64 im 2))))))))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
#<alt (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))>
Calls

12 calls:

TimeVariablePointExpression
3.0ms
re
@0
(* (* 1/2 (pow im 2)) (sin re))
2.0ms
re
@-inf
(/ 1/4 (pow re 2))
1.0ms
im
@0
(* (* 1/2 (pow im 2)) (sin re))
1.0ms
im
@inf
(* (* 1/2 (pow im 2)) (sin re))
1.0ms
re
@inf
(* (* 1/2 (pow im 2)) (sin re))

rewrite96.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1418×unpow-prod-down
848×log-prod
707×log1p-expm1-u
707×expm1-log1p-u
348×pow-unpow
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01761
117961
2207161
Stop Event
node limit
Counts
3 → 92
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(/.f64 1/4 (pow.f64 re 2))
Outputs
(+.f64 0 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)) 1/3)
(pow.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (sin.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2))) 2))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(pow.f64 (*.f64 (pow.f64 im 6) 1/8) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(cbrt.f64 (*.f64 (pow.f64 im 6) 1/8))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2)))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 im 6) 1/8)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 1/2))) 2))
(+.f64 0 (*.f64 1/4 (pow.f64 re -2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2)))) 1)
(*.f64 1/4 (pow.f64 re -2))
(*.f64 1/4 (pow.f64 (sqrt.f64 (pow.f64 re -2)) 2))
(*.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(*.f64 (*.f64 1/4 (pow.f64 re -2)) (log.f64 (exp.f64 1)))
(*.f64 1 (*.f64 1/4 (pow.f64 re -2)))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 2))
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(*.f64 -1/4 (/.f64 1 (neg.f64 (pow.f64 re 2))))
(*.f64 -1/4 (pow.f64 (/.f64 1 (neg.f64 (pow.f64 re 2))) 1))
(*.f64 (pow.f64 re -2) 1/4)
(*.f64 (pow.f64 re -2) (log.f64 (exp.f64 1/4)))
(*.f64 (/.f64 1 re) (pow.f64 (/.f64 re 1/4) -1))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 re) 4)) (pow.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) 1/4) -1))
(*.f64 (pow.f64 1 1/3) (*.f64 1/4 (pow.f64 re -2)))
(*.f64 (pow.f64 (cbrt.f64 1/4) 3) (pow.f64 (cbrt.f64 (pow.f64 re -2)) 3))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3) (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) 1/4) 1/3) (pow.f64 (pow.f64 re -2) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 1/3) (pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (/.f64 1/2 re)) 1/3) (pow.f64 (/.f64 1/2 re) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 2))
(*.f64 (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2) (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4))) -1) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(pow.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 3)
(pow.f64 (pow.f64 (/.f64 1/2 re) 6) 1/3)
(pow.f64 (/.f64 1/2 re) 2)
(pow.f64 (*.f64 (pow.f64 re 2) 4) -1)
(pow.f64 (/.f64 (*.f64 (pow.f64 re 2) 4) 1) -1)
(neg.f64 (/.f64 -1/4 (pow.f64 re 2)))
(sqrt.f64 (/.f64 1/16 (pow.f64 re 4)))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/4 (pow.f64 re -2)))))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(expm1.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2))))
(log1p.f64 (expm1.f64 (*.f64 1/4 (pow.f64 re -2))))
(exp.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 re 2) 4)) -1))

simplify128.0ms (2%)

Algorithm
egg-herbie
Rules
1192×associate-*r*
1124×associate-*l*
916×fma-define
690×times-frac
666×exp-prod
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02883440
15623416
213813356
342273332
467803330
Stop Event
node limit
Counts
116 → 141
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 re (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 1/240 (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))))
(*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/240 (pow.f64 im 2))))))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(+.f64 0 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1)
(pow.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 3)
(pow.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)) 1/3)
(pow.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2)) 2)
(sqrt.f64 (*.f64 (pow.f64 (sin.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2))) 2))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(pow.f64 (*.f64 (pow.f64 im 6) 1/8) 1/3)
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(cbrt.f64 (*.f64 (pow.f64 im 6) 1/8))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2)))) 3))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 im 6) 1/8)) 1/3))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 1/2))) 2))
(+.f64 0 (*.f64 1/4 (pow.f64 re -2)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2)))) 1)
(*.f64 1/4 (pow.f64 re -2))
(*.f64 1/4 (pow.f64 (sqrt.f64 (pow.f64 re -2)) 2))
(*.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(*.f64 (*.f64 1/4 (pow.f64 re -2)) (log.f64 (exp.f64 1)))
(*.f64 1 (*.f64 1/4 (pow.f64 re -2)))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 2))
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(*.f64 -1/4 (/.f64 1 (neg.f64 (pow.f64 re 2))))
(*.f64 -1/4 (pow.f64 (/.f64 1 (neg.f64 (pow.f64 re 2))) 1))
(*.f64 (pow.f64 re -2) 1/4)
(*.f64 (pow.f64 re -2) (log.f64 (exp.f64 1/4)))
(*.f64 (/.f64 1 re) (pow.f64 (/.f64 re 1/4) -1))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 re) 4)) (pow.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) 1/4) -1))
(*.f64 (pow.f64 1 1/3) (*.f64 1/4 (pow.f64 re -2)))
(*.f64 (pow.f64 (cbrt.f64 1/4) 3) (pow.f64 (cbrt.f64 (pow.f64 re -2)) 3))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3) (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) 1/4) 1/3) (pow.f64 (pow.f64 re -2) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 1/3) (pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 1/3))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (/.f64 1/2 re)) 1/3) (pow.f64 (/.f64 1/2 re) 1/3))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 2))
(*.f64 (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2) (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4))) -1) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(pow.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 3)
(pow.f64 (pow.f64 (/.f64 1/2 re) 6) 1/3)
(pow.f64 (/.f64 1/2 re) 2)
(pow.f64 (*.f64 (pow.f64 re 2) 4) -1)
(pow.f64 (/.f64 (*.f64 (pow.f64 re 2) 4) 1) -1)
(neg.f64 (/.f64 -1/4 (pow.f64 re 2)))
(sqrt.f64 (/.f64 1/16 (pow.f64 re 4)))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/4 (pow.f64 re -2)))))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(expm1.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2))))
(log1p.f64 (expm1.f64 (*.f64 1/4 (pow.f64 re -2))))
(exp.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 re 2) 4)) -1))
Outputs
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) re))
(*.f64 re (+.f64 (*.f64 -1/12 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 -1/12 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 im 2) (*.f64 -1/12 (pow.f64 re 2)))))
(*.f64 re (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/12 (pow.f64 re 2)) 1/2)))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
(*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 1/240 (*.f64 (pow.f64 im 2) (pow.f64 re 2)))))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/12 (pow.f64 im 2) (*.f64 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) 1/240)))))
(*.f64 re (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) -1/12 (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) 1/240))) (*.f64 1/2 (pow.f64 im 2))))
(fma.f64 (*.f64 (pow.f64 im 2) (+.f64 -1/12 (*.f64 (pow.f64 re 2) 1/240))) (pow.f64 re 3) (*.f64 1/2 (*.f64 (pow.f64 im 2) re)))
(*.f64 re (*.f64 (pow.f64 im 2) (+.f64 (+.f64 1/2 (*.f64 -1/12 (pow.f64 re 2))) (*.f64 1/240 (pow.f64 re 4)))))
(*.f64 re (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/12 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) (+.f64 (*.f64 -1/10080 (*.f64 (pow.f64 im 2) (pow.f64 re 2))) (*.f64 1/240 (pow.f64 im 2))))))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/12 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (fma.f64 -1/10080 (*.f64 (pow.f64 im 2) (pow.f64 re 2)) (*.f64 (pow.f64 im 2) 1/240)))))))
(*.f64 re (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 re 2) (fma.f64 (pow.f64 im 2) 1/240 (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 2) -1/10080))) (*.f64 (pow.f64 im 2) -1/12)) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 re (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/12 (pow.f64 re 2)) 1/2)) (*.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 2) -1/10080) 1/240)) (pow.f64 re 4))))
(*.f64 re (fma.f64 1/2 (pow.f64 im 2) (*.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) (+.f64 (+.f64 -1/12 (*.f64 (pow.f64 re 2) 1/240)) (*.f64 -1/10080 (pow.f64 re 4)))))))
(*.f64 re (fma.f64 (pow.f64 re 2) (*.f64 (pow.f64 im 2) (+.f64 (+.f64 -1/12 (*.f64 (pow.f64 re 2) 1/240)) (*.f64 -1/10080 (pow.f64 re 4)))) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(+.f64 0 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))) (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im 2)))) (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im 2))))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))) (sin.f64 re))) (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))) (sin.f64 re))))) (log.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))) (sin.f64 re)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))))
(*.f64 2 (log.f64 (sqrt.f64 (sqrt.f64 (pow.f64 (exp.f64 (sin.f64 re)) (pow.f64 im 2))))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))) (sin.f64 re)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(pow.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))) 1)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(pow.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 3)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(pow.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)) 1/3)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(pow.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2)) 2)
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(sqrt.f64 (*.f64 (pow.f64 (sin.f64 re) 2) (*.f64 1/4 (pow.f64 im 4))))
(sqrt.f64 (pow.f64 (*.f64 im (sqrt.f64 (*.f64 1/2 (sin.f64 re)))) 4))
(log.f64 (pow.f64 (exp.f64 (sin.f64 re)) (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(cbrt.f64 (*.f64 (pow.f64 (sin.f64 re) 3) (*.f64 (pow.f64 im 6) 1/8)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(expm1.f64 (log1p.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(log1p.f64 (expm1.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(exp.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))) 1))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 3))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re))))) 1/3))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(exp.f64 (*.f64 (log.f64 (*.f64 im (pow.f64 (*.f64 1/2 (sin.f64 re)) 1/2))) 2))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (sin.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (sin.f64 re)))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2)))) (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2)))))) (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))))
(*.f64 2 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (pow.f64 im 2))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2)))) 1)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2))) 3)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 (pow.f64 im 6) 1/8) 1/3)
(cbrt.f64 (*.f64 (pow.f64 im 6) 1/8))
(pow.f64 (*.f64 im (sqrt.f64 1/2)) 2)
(*.f64 1/2 (pow.f64 im 2))
(sqrt.f64 (*.f64 1/4 (pow.f64 im 4)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 im 2)) 1/2))
(*.f64 1/2 (pow.f64 im 2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 1/2 (pow.f64 im 2))
(cbrt.f64 (*.f64 (pow.f64 im 6) 1/8))
(expm1.f64 (log1p.f64 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(log1p.f64 (expm1.f64 (*.f64 1/2 (pow.f64 im 2))))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (*.f64 (fma.f64 2 (log.f64 im) (log.f64 1/2)) 1))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/2 (pow.f64 im 2)))) 3))
(*.f64 1/2 (pow.f64 im 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 im 6) 1/8)) 1/3))
(cbrt.f64 (*.f64 (pow.f64 im 6) 1/8))
(exp.f64 (*.f64 (log.f64 (*.f64 im (sqrt.f64 1/2))) 2))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 0 (*.f64 1/4 (pow.f64 re -2)))
(*.f64 1/4 (pow.f64 re -2))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))) (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(*.f64 2 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2)))) 1)
(*.f64 1/4 (pow.f64 re -2))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 1/4 (pow.f64 (sqrt.f64 (pow.f64 re -2)) 2))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (*.f64 1/4 (pow.f64 re -2)) (log.f64 (exp.f64 1)))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 1 (*.f64 1/4 (pow.f64 re -2)))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 2))
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 -1/4 (/.f64 1 (neg.f64 (pow.f64 re 2))))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 -1/4 (pow.f64 (/.f64 1 (neg.f64 (pow.f64 re 2))) 1))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 re -2) 1/4)
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (pow.f64 re -2) (log.f64 (exp.f64 1/4)))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (/.f64 1 re) (pow.f64 (/.f64 re 1/4) -1))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 re) 4)) (pow.f64 (/.f64 (pow.f64 (cbrt.f64 re) 2) 1/4) -1))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 re) 4)) (/.f64 1 (/.f64 (pow.f64 (cbrt.f64 re) 2) 1/4)))
(/.f64 (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 re) 2)) 1/4) (pow.f64 (cbrt.f64 re) 4))
(/.f64 (/.f64 1/4 (pow.f64 (cbrt.f64 re) 2)) (pow.f64 (cbrt.f64 re) 4))
(/.f64 1/4 (*.f64 (pow.f64 (cbrt.f64 re) 4) (pow.f64 (cbrt.f64 re) 2)))
(*.f64 (pow.f64 1 1/3) (*.f64 1/4 (pow.f64 re -2)))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (pow.f64 (cbrt.f64 1/4) 3) (pow.f64 (cbrt.f64 (pow.f64 re -2)) 3))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3) (pow.f64 (cbrt.f64 (/.f64 1/2 re)) 3))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))) 3) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 1/4 (pow.f64 re -2))
(*.f64 (pow.f64 (/.f64 1/16 (pow.f64 re 4)) 1/3) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3) (pow.f64 (*.f64 (*.f64 1/4 (pow.f64 re -2)) (/.f64 1/2 re)) 1/3))
(*.f64 (cbrt.f64 (*.f64 1/4 (*.f64 (pow.f64 re -2) (/.f64 1/2 re)))) (cbrt.f64 (*.f64 1/4 (*.f64 (pow.f64 re -2) (/.f64 1/2 re)))))
(*.f64 (cbrt.f64 (/.f64 (*.f64 (pow.f64 re -2) 1/8) re)) (cbrt.f64 (/.f64 (*.f64 (pow.f64 re -2) 1/8) re)))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 re -2) (/.f64 1/8 re))) (cbrt.f64 (*.f64 (pow.f64 re -2) (/.f64 1/8 re))))
(*.f64 (cbrt.f64 (*.f64 1/8 (/.f64 (pow.f64 re -2) re))) (cbrt.f64 (*.f64 1/8 (/.f64 (pow.f64 re -2) re))))
(*.f64 (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6))) (cbrt.f64 (sqrt.f64 (pow.f64 (/.f64 1/2 re) 6))))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) 1/4) 1/3) (pow.f64 (pow.f64 re -2) 1/3))
(*.f64 (cbrt.f64 (pow.f64 re -2)) (cbrt.f64 (/.f64 1/64 (pow.f64 re 4))))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 1/3) (pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 1/3))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (cbrt.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (cbrt.f64 (*.f64 1/16 (/.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))) (pow.f64 re 4)))))
(*.f64 (pow.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (/.f64 1/2 re)) 1/3) (pow.f64 (/.f64 1/2 re) 1/3))
(*.f64 (cbrt.f64 (/.f64 1/2 re)) (cbrt.f64 (*.f64 (/.f64 1/16 (pow.f64 re 4)) (/.f64 1/2 re))))
(*.f64 (cbrt.f64 (/.f64 1/2 re)) (cbrt.f64 (/.f64 (/.f64 1/32 re) (pow.f64 re 4))))
(*.f64 (cbrt.f64 (/.f64 1/2 re)) (cbrt.f64 (/.f64 (/.f64 1/32 (pow.f64 re 4)) re)))
(*.f64 (cbrt.f64 (/.f64 1/2 re)) (cbrt.f64 (/.f64 1/32 (pow.f64 re 5))))
(*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 1/16 (pow.f64 re 4)))) 2) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 2))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (cbrt.f64 (/.f64 1/16 (pow.f64 re 4))))
(*.f64 (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2) (pow.f64 (sqrt.f64 (/.f64 1/2 re)) 2))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4))) -1) (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (/.f64 1 (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4)))))
(/.f64 (*.f64 1 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4))))
(/.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) (*.f64 (cbrt.f64 (*.f64 (pow.f64 re 2) 4)) (cbrt.f64 (*.f64 (pow.f64 re 2) 4))))
(pow.f64 (*.f64 1/4 (pow.f64 re -2)) 1)
(*.f64 1/4 (pow.f64 re -2))
(pow.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2))) 3)
(*.f64 1/4 (pow.f64 re -2))
(pow.f64 (pow.f64 (/.f64 1/2 re) 6) 1/3)
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(pow.f64 (*.f64 (pow.f64 re 2) 4) -1)
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(pow.f64 (/.f64 (*.f64 (pow.f64 re 2) 4) 1) -1)
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(neg.f64 (/.f64 -1/4 (pow.f64 re 2)))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(sqrt.f64 (/.f64 1/16 (pow.f64 re 4)))
(log.f64 (pow.f64 (exp.f64 1/4) (pow.f64 re -2)))
(*.f64 1/4 (pow.f64 re -2))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 1/4 (pow.f64 re -2)))))
(*.f64 1/4 (pow.f64 re -2))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(expm1.f64 (log1p.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 1/4 (pow.f64 re -2))
(log1p.f64 (expm1.f64 (*.f64 1/4 (pow.f64 re -2))))
(*.f64 1/4 (pow.f64 re -2))
(exp.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 1/2 re))) 1))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 1/4 (pow.f64 re -2)))) 3))
(*.f64 1/4 (pow.f64 re -2))
(exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 1/2 re) 6)) 1/3))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))
(exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 re 2) 4)) -1))
(pow.f64 (/.f64 1/2 re) 2)
(/.f64 1/4 (pow.f64 re 2))

eval64.0ms (1%)

Compiler

Compiled 1969 to 1549 computations (21.3% saved)

prune35.0ms (0.5%)

Pruning

23 alts after pruning (9 fresh and 14 done)

PrunedKeptTotal
New1365141
Fresh044
Picked055
Done1910
Total13723160
Accuracy
100.0%
Counts
160 → 23
Alt Table
Click to see full alt table
StatusAccuracyProgram
17.5%
(/.f64 1/4 (pow.f64 re 2))
17.5%
(*.f64 (pow.f64 re -2) 1/4)
24.2%
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
24.3%
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
17.5%
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
73.2%
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
27.2%
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
100.0%
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
47.2%
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
65.2%
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
49.6%
(sin.f64 re)
17.5%
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
23.7%
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
26.6%
re
5.4%
4
5.7%
3/2
5.9%
1/2
5.7%
1/4
5.6%
1/8
5.4%
1/16
3.1%
-1/2
3.5%
-1
2.8%
-4
Compiler

Compiled 289 to 220 computations (23.9% saved)

regimes79.0ms (1.2%)

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

6 calls:

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

Compiled 39 to 30 computations (23.1% saved)

regimes134.0ms (2.1%)

Counts
24 → 3
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 (sin.f64 re) (sin.f64 re))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/2 re) (*.f64 -1/12 (pow.f64 re 3))))
Outputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
Calls

3 calls:

47.0ms
(sin.f64 re)
47.0ms
re
38.0ms
im
Results
AccuracySegmentsBranch
88.6%2re
95.4%3im
88.0%3(sin.f64 re)
Compiler

Compiled 10 to 7 computations (30% saved)

regimes37.0ms (0.6%)

Counts
22 → 3
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 (sin.f64 re) (sin.f64 re))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
Outputs
(sin.f64 re)
(*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))
Calls

1 calls:

35.0ms
im
Results
AccuracySegmentsBranch
95.1%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes144.0ms (2.2%)

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

3 calls:

64.0ms
(sin.f64 re)
44.0ms
re
34.0ms
im
Results
AccuracySegmentsBranch
62.9%5(sin.f64 re)
63.1%4re
85.0%3im
Compiler

Compiled 10 to 7 computations (30% saved)

regimes37.0ms (0.6%)

Counts
20 → 3
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
(+.f64 (sin.f64 re) (sin.f64 re))
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(pow.f64 (*.f64 (sin.f64 re) -2) -2)
(exp.f64 (*.f64 (log.f64 (/.f64 1/2 re)) 2))
Outputs
(sin.f64 re)
(cbrt.f64 (pow.f64 (/.f64 1/2 re) 6))
(*.f64 (*.f64 1/2 re) (fma.f64 im im 2))
Calls

1 calls:

36.0ms
im
Results
AccuracySegmentsBranch
79.4%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes29.0ms (0.4%)

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

1 calls:

28.0ms
im
Results
AccuracySegmentsBranch
75.8%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes27.0ms (0.4%)

Counts
15 → 3
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
Outputs
(sin.f64 re)
(/.f64 1/4 (pow.f64 re 2))
(*.f64 (pow.f64 im 2) (*.f64 1/2 re))
Calls

1 calls:

26.0ms
im
Results
AccuracySegmentsBranch
75.8%3im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes18.0ms (0.3%)

Counts
14 → 2
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
(/.f64 1/4 (pow.f64 re 2))
Outputs
(sin.f64 re)
(/.f64 1/4 (pow.f64 re 2))
Calls

1 calls:

18.0ms
im
Results
AccuracySegmentsBranch
64.1%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes17.0ms (0.3%)

Counts
13 → 2
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
(sin.f64 re)
(*.f64 (pow.f64 re -2) 1/4)
Outputs
(sin.f64 re)
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
Calls

1 calls:

16.0ms
im
Results
AccuracySegmentsBranch
64.1%2im
Compiler

Compiled 3 to 2 computations (33.3% saved)

regimes47.0ms (0.7%)

Counts
11 → 2
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
Outputs
re
(*.f64 (/.f64 1/2 re) (/.f64 1/2 re))
Calls

2 calls:

32.0ms
re
15.0ms
im
Results
AccuracySegmentsBranch
31.8%4re
41.2%2im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes22.0ms (0.3%)

Counts
10 → 2
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
re
Outputs
re
1/2
Calls

2 calls:

15.0ms
re
7.0ms
im
Results
AccuracySegmentsBranch
28.7%2re
26.6%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes16.0ms (0.2%)

Counts
9 → 1
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
1/2
3/2
4
Outputs
1/2
Calls

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

regimes13.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
1/4
Outputs
1/4
Calls

2 calls:

7.0ms
re
5.0ms
im
Results
AccuracySegmentsBranch
5.7%1im
5.7%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes13.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
1/8
Outputs
1/8
Calls

2 calls:

7.0ms
re
5.0ms
im
Results
AccuracySegmentsBranch
5.6%1re
5.6%1im
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes9.0ms (0.1%)

Counts
4 → 1
Calls
Call 1
Inputs
-4
-1
-1/2
1/16
Outputs
1/16
Calls

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

regimes10.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
-4
-1
-1/2
Outputs
-1
Calls

2 calls:

6.0ms
re
4.0ms
im
Results
AccuracySegmentsBranch
3.5%1im
3.5%1re
Compiler

Compiled 6 to 4 computations (33.3% saved)

regimes5.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

2 calls:

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

Compiled 6 to 4 computations (33.3% saved)

bsearch60.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
9.145324002269404e+153
1.1330357428851182e+158
36.0ms
7.000889689079437
115.89789498309474
Results
21.0ms127×256infinite
33.0ms112×256valid
0.0ms256infinite
Compiler

Compiled 393 to 314 computations (20.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
Operation ival-sin, time spent: 21.0ms, 65.0% of total-time
Operation ival-exp, time spent: 4.0ms, 12.0% of total-time
Operation ival-mult, time spent: 4.0ms, 12.0% of total-time
Operation ival-sub, time spent: 1.0ms, 3.0% of total-time
Operation ival-add, time spent: 1.0ms, 3.0% of total-time
Operation const, time spent: 1.0ms, 3.0% of total-time

bsearch51.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
27.0ms
9.145324002269404e+153
1.1330357428851182e+158
24.0ms
7.000889689079437
115.89789498309474
Results
23.0ms127×256infinite
22.0ms112×256valid
0.0ms256infinite
Compiler

Compiled 337 to 265 computations (21.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
Operation ival-sin, time spent: 7.0ms, 38.0% of total-time
Operation ival-exp, time spent: 4.0ms, 22.0% of total-time
Operation ival-mult, time spent: 4.0ms, 22.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

bsearch185.0ms (2.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
26.0ms
2.1792421171292586e+148
4.430133590712047e+152
159.0ms
458.16950264340966
25835790.500216555
Results
169.0ms212×256infinite
7.0ms43×256valid
0.0ms256infinite
Compiler

Compiled 291 to 247 computations (15.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-exp, time spent: 5.0ms, 25.0% of total-time
Operation ival-mult, time spent: 4.0ms, 20.0% of total-time
Operation ival-sub, time spent: 2.0ms, 10.0% of total-time
Operation ival-add, time spent: 2.0ms, 10.0% of total-time
Operation const, time spent: 1.0ms, 5.0% of total-time

bsearch43.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
5.1345211802972185e+128
3.025916563889182e+129
26.0ms
458.16950264340966
25835790.500216555
Results
30.0ms180×256infinite
7.0ms43×256valid
0.0ms256infinite
Compiler

Compiled 251 to 207 computations (17.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
Operation ival-sin, time spent: 7.0ms, 38.0% of total-time
Operation ival-exp, time spent: 4.0ms, 22.0% of total-time
Operation ival-mult, time spent: 4.0ms, 22.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

bsearch45.0ms (0.7%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
20.0ms
5.1345211802972185e+128
3.025916563889182e+129
26.0ms
458.16950264340966
25835790.500216555
Results
26.0ms154×256infinite
11.0ms69×256valid
0.0ms256infinite
Compiler

Compiled 237 to 193 computations (18.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 19.0ms
Operation ival-sin, time spent: 8.0ms, 43.0% of total-time
Operation ival-exp, time spent: 4.0ms, 21.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: 1.0ms, 5.0% of total-time

bsearch96.0ms (1.5%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
5.1345211802972185e+128
3.025916563889182e+129
77.0ms
458.16950264340966
25835790.500216555
Results
87.0ms203×256infinite
3.0ms20×256valid
0.0ms256infinite
Compiler

Compiled 231 to 193 computations (16.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
Operation ival-sin, time spent: 6.0ms, 35.0% of total-time
Operation ival-exp, time spent: 4.0ms, 23.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

bsearch27.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
27.0ms
458.16950264340966
25835790.500216555
Results
21.0ms105×256infinite
3.0ms22×256valid
0.0ms256infinite
Compiler

Compiled 123 to 103 computations (16.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 13.0ms
Operation ival-exp, time spent: 4.0ms, 30.0% of total-time
Operation ival-sin, time spent: 4.0ms, 30.0% of total-time
Operation ival-mult, time spent: 3.0ms, 23.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

bsearch81.0ms (1.2%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
81.0ms
458.16950264340966
25835790.500216555
Results
14.0ms82×256infinite
63.0ms45×256valid
0.0ms256infinite
Compiler

Compiled 139 to 111 computations (20.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 67.0ms
Operation ival-exp, time spent: 60.0ms, 90.0% of total-time
Operation ival-sin, time spent: 3.0ms, 4.0% of total-time
Operation ival-mult, time spent: 2.0ms, 3.0% of total-time
Operation ival-sub, time spent: 1.0ms, 1.0% of total-time
Operation ival-add, time spent: 1.0ms, 1.0% of total-time
Operation const, time spent: 0.0ms, 0.0% of total-time

bsearch26.0ms (0.4%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
26.0ms
458.16950264340966
25835790.500216555
Results
19.0ms112×256infinite
3.0ms15×256valid
0.0ms256infinite
Compiler

Compiled 131 to 103 computations (21.4% saved)

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

bsearch16.0ms (0.2%)

Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
15.0ms
66572300311498.234
196996681976374.44
Results
7.0ms40×256valid
7.0ms39×256infinite
0.0ms256valid
Compiler

Compiled 59 to 50 computations (15.3% saved)

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

simplify62.0ms (1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
086732
1104732
2106732
3107732
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 3996944669291315/562949953421312) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re)) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 3996944669291315/562949953421312) (sin.f64 re) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 760) (sin.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (cbrt.f64 (pow.f64 (/.f64 1/2 re) 6)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 850) (sin.f64 re) (if (<=.f64 im 3000000000000000302480504101887593093896787388650220353495093069701123299063756169161048638248763581703286644188658439930477805568) (cbrt.f64 (pow.f64 (/.f64 1/2 re) 6)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 650) (sin.f64 re) (if (<=.f64 im 820000000000000023164557595378447468785321734972476878532802582619455297030525190241211035422416851341933693595808641112652906496) (/.f64 1/4 (pow.f64 re 2)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 920) (sin.f64 re) (if (<=.f64 im 1949999999999999858001336915961879780509910942013462092367801139743297841710795067218010141057542636265785690805384197772851281920) (/.f64 1/4 (pow.f64 re 2)) (*.f64 (pow.f64 im 2) (*.f64 1/2 re))))
(if (<=.f64 im 920) (sin.f64 re) (/.f64 1/4 (pow.f64 re 2)))
(if (<=.f64 im 800) (sin.f64 re) (*.f64 (/.f64 1/2 re) (/.f64 1/2 re)))
(if (<=.f64 im 1100) re (*.f64 (/.f64 1/2 re) (/.f64 1/2 re)))
(if (<=.f64 re 68000000000000) re 1/2)
1/2
1/4
1/8
1/16
-1
-4
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(if (<=.f64 im 3996944669291315/562949953421312) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1) (sin.f64 re)) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 3996944669291315/562949953421312) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) 1)) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))))
(if (<=.f64 im 3996944669291315/562949953421312) (sin.f64 re) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (*.f64 1/2 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 3996944669291315/562949953421312) (sin.f64 re) (if (<=.f64 im 13199999999999999773196063550815192655340841269168371305534464478777571651222204465790151517816444445650545021209011632002935604597533337723926189038370816) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 re)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))))
(if (<=.f64 im 760) (sin.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (cbrt.f64 (pow.f64 (/.f64 1/2 re) 6)) (*.f64 (*.f64 1/2 (pow.f64 im 2)) (sin.f64 re))))
(if (<=.f64 im 760) (sin.f64 re) (if (<=.f64 im 420000000000000033380757677273290089352167455508992351255846779441851483170486358146484695282494513417224755996317159248501885136279671869730309707661312) (cbrt.f64 (pow.f64 (/.f64 1/2 re) 6)) (*.f64 (sin.f64 re) (*.f64 1/2 (pow.f64 im 2)))))
(if (<=.f64 im 850) (sin.f64 re) (if (<=.f64 im 3000000000000000302480504101887593093896787388650220353495093069701123299063756169161048638248763581703286644188658439930477805568) (cbrt.f64 (pow.f64 (/.f64 1/2 re) 6)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 650) (sin.f64 re) (if (<=.f64 im 820000000000000023164557595378447468785321734972476878532802582619455297030525190241211035422416851341933693595808641112652906496) (/.f64 1/4 (pow.f64 re 2)) (*.f64 (*.f64 1/2 re) (fma.f64 im im 2))))
(if (<=.f64 im 920) (sin.f64 re) (if (<=.f64 im 1949999999999999858001336915961879780509910942013462092367801139743297841710795067218010141057542636265785690805384197772851281920) (/.f64 1/4 (pow.f64 re 2)) (*.f64 (pow.f64 im 2) (*.f64 1/2 re))))
(if (<=.f64 im 920) (sin.f64 re) (/.f64 1/4 (pow.f64 re 2)))
(if (<=.f64 im 800) (sin.f64 re) (*.f64 (/.f64 1/2 re) (/.f64 1/2 re)))
(if (<=.f64 im 1100) re (*.f64 (/.f64 1/2 re) (/.f64 1/2 re)))
(if (<=.f64 re 68000000000000) re 1/2)
1/2
1/4
1/8
1/16
-1
-4
Compiler

Compiled 250 to 188 computations (24.8% saved)

soundness1.1s (16.4%)

Rules
1978×fma-neg
1762×distribute-lft-in
1744×distribute-rgt-in
1652×associate-+r+
1556×fma-define
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921647
11841647
24231515
316121506
468461494
02883440
15623416
213813356
342273332
467803330
01761
117961
2207161
01192103
13611906
212431906
345941906
01243038
13672678
212422623
348242595
01669
120269
2330669
025186
1353186
25692186
036316
1111308
2397308
3986298
41988294
53213294
63708294
74185294
84839294
94992294
105009294
115009294
125041294
135070294
145070294
Stop Event
saturated
unsound
unsound
node limit
node limit
node limit
node limit
node limit
Compiler

Compiled 471 to 371 computations (21.2% saved)

end1.0ms (0%)

preprocess196.0ms (3%)

Remove

(negabs re)

(abs im)

Compiler

Compiled 880 to 622 computations (29.3% saved)

Profiling

Loading profile data...