Details

Time bar (total: 12.1s)

analyze138.0ms (1.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
50%50%50%0.1%0%0%0%5
50%50%50%0.1%0%0%0%6
57.1%50%37.5%0.1%12.5%0%0%7
57.1%50%37.5%0.1%12.5%0%0%8
61.5%50%31.2%0.1%18.7%0%0%9
61.5%50%31.2%0.1%18.7%0%0%10
64%50%28.1%0.1%21.9%0%0%11
64%50%28.1%0.1%21.9%0%0%12
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample4.7s (39.1%)

Results
1.3s2058×body1024infinite
1.1s1987×body1024valid
1.0s5260×body256valid
581.0ms1058×body512infinite
398.0ms1004×body512valid
321.0ms1581×body256infinite
4.0msbody2048valid
Bogosity

preprocess98.0ms (0.8%)

Algorithm
egg-herbie
Rules
1268×rational.json-simplify-46
896×rational.json-simplify-59
882×rational.json-simplify-35
868×rational.json-simplify-2
828×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02070
13970
26570
39570
415470
526670
661170
7150370
8253070
9382670
10588270
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 im)) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 im) (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
(*.f64 (cos.f64 im) (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify536.0ms (4.4%)

Algorithm
egg-herbie
Rules
2312×rational.json-simplify-35
1800×rational.json-simplify-2
1792×rational.json-simplify-1
1510×rational.json-simplify-52
780×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
12535
24335
36335
49535
515135
631035
770035
8173835
9273635
10322035
11412935
12453235
13474435
14488235
15499835
16545935
17664535
18682335
19694935
20706335
21717735
22717735
23769435
24773935
25789035
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 24 to 13 computations (45.8% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 35 to 13 computations (62.9% saved)

series5.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite83.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1352×rational.json-1
1352×rational.json-2
1352×rational.json-3
1350×exponential.json-3
1350×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01354
19054
220154
346054
496254
5242854
6553054
Stop Event
node limit
Counts
2 → 38
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))))

simplify105.0ms (0.9%)

Algorithm
egg-herbie
Rules
1048×rational.json-simplify-61
1048×rational.json-simplify-2
1012×rational.json-simplify-51
998×rational.json-simplify-46
874×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01472344
13402344
28832252
321762186
462522186
Stop Event
node limit
Counts
74 → 83
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 1/2 (*.f64 (cos.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/12 (pow.f64 im 4))))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(+.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 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)
(+.f64 0 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)))
(-.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)
(/.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)
(/.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2)) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)))) 32)
(pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)
(-.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(*.f64 1 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)
(*.f64 4 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(*.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))
(*.f64 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8))) 32)
(pow.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
Outputs
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 -1/4 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 (pow.f64 re 6) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/1440))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (+.f64 (*.f64 -1/4 (*.f64 (pow.f64 re 2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 1/48 (*.f64 (pow.f64 re 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/48 (pow.f64 re 4))) (+.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 -1/4 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 4) 1/24)) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2)))))
(*.f64 (cos.f64 re) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 4) 1/24)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 6) 1/720))) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (cos.f64 re) (*.f64 1/720 (pow.f64 im 6))))))
(+.f64 (+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/720 (pow.f64 im 6)) (*.f64 1/24 (pow.f64 im 4))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 1/12 (pow.f64 im 4))))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 4) 1/12)))
(+.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 im 4) 1/12))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(+.f64 2 (+.f64 (*.f64 (pow.f64 im 4) 1/12) (+.f64 (*.f64 (pow.f64 im 6) 1/360) (pow.f64 im 2))))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 im 4) 1/12) (*.f64 (pow.f64 im 6) 1/360))))
(+.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 (pow.f64 im 4) 1/12) (*.f64 (pow.f64 im 6) 1/360)))
(+.f64 2 (+.f64 (+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 4) 1/12)) (*.f64 (pow.f64 im 6) 1/360)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(+.f64 0 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(+.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 1/4)))
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(-.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 0)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2)) 4)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)) 8)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) 16)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4))) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (cos.f64 re) 4)))) 32)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(pow.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1)
(*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(-.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (/.f64 2 (exp.f64 im)) (*.f64 (exp.f64 im) 2)))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))
(*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 im) (*.f64 2 (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im))))))
(*.f64 (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 2))
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 4 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8) 8)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) 16)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 8))) 32)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(pow.f64 (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))

eval22.0ms (0.2%)

Compiler

Compiled 1507 to 787 computations (47.8% saved)

prune16.0ms (0.1%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New78583
Fresh000
Picked011
Done000
Total78684
Error
0.0b
Counts
84 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))))
29.1b
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
1.7b
(cos.f64 re)
Compiler

Compiled 127 to 98 computations (22.8% saved)

localize23.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))))
0.0b
(/.f64 1/2 (exp.f64 im))
Compiler

Compiled 58 to 34 computations (41.4% saved)

series7.0ms (0.1%)

Counts
3 → 40
Calls

12 calls:

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

rewrite95.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1528×rational.json-1
1528×rational.json-2
1528×rational.json-3
1516×rational.json-4
1504×exponential.json-3
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01587
110487
223375
359975
4111671
5283871
6634871
Stop Event
node limit
Counts
3 → 58
Calls
Call 1
Inputs
(/.f64 1/2 (exp.f64 im))
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/4 (exp.f64 im)) (/.f64 1/4 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1/2 (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/4 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 1/2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/4 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 im)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/8 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1/8 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 im)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (exp.f64 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/8 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/8 (exp.f64 im)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1/2 (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 -1/2 (exp.f64 im)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))))

simplify133.0ms (1.1%)

Algorithm
egg-herbie
Rules
1478×rational.json-simplify-35
1178×rational.json-simplify-2
1130×rational.json-simplify-46
816×rational.json-simplify-1
700×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01703406
13773004
29272912
318562842
432032842
545922842
662992842
Stop Event
node limit
Counts
98 → 118
Calls
Call 1
Inputs
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/2 im)))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 im) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) 0)
(+.f64 0 (/.f64 1/2 (exp.f64 im)))
(+.f64 (/.f64 1/4 (exp.f64 im)) (/.f64 1/4 (exp.f64 im)))
(-.f64 (/.f64 1/2 (exp.f64 im)) 0)
(*.f64 1/2 (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 1/2 (exp.f64 im)) 1)
(*.f64 2 (/.f64 1/4 (exp.f64 im)))
(*.f64 2 (*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 2 (*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 1 (/.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/4 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (neg.f64 im)) 1/2)
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/8 (exp.f64 (+.f64 im im))))
(*.f64 4 (/.f64 1/8 (exp.f64 im)))
(*.f64 (/.f64 2 (exp.f64 im)) 1/4)
(*.f64 1/4 (/.f64 2 (exp.f64 im)))
(*.f64 (/.f64 1/4 (exp.f64 im)) 2)
(*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (exp.f64 im))
(*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))
(*.f64 (/.f64 1/8 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 4))
(*.f64 (/.f64 1/8 (exp.f64 im)) 4)
(pow.f64 (/.f64 1/2 (exp.f64 im)) 1)
(neg.f64 (/.f64 -1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)
(+.f64 0 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))
(+.f64 (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4))
(-.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)
(/.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 2)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 4)
(/.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 8)
(/.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))) 32)
(pow.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)
(*.f64 1/2 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 2 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(*.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1/2)
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 1/4)
(*.f64 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(*.f64 4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4))
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 1/8)
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4) 4)
(*.f64 1/4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4))
(*.f64 1/8 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(/.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(/.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 4)
(/.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))) 32)
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
Outputs
1/2
(+.f64 1/2 (*.f64 -1/2 im))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/2 im)))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (*.f64 1/4 (pow.f64 im 2))))
(+.f64 (*.f64 -1/2 im) (+.f64 1/2 (*.f64 1/4 (pow.f64 im 2))))
(+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 im) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (+.f64 (*.f64 -1/12 (pow.f64 im 3)) (*.f64 1/4 (pow.f64 im 2)))))
(+.f64 1/2 (+.f64 (*.f64 -1/2 im) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 (+.f64 1/2 (*.f64 -1/2 im)) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/12 (pow.f64 im 3))))
(+.f64 (*.f64 -1/2 im) (+.f64 1/2 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 -1/12 (pow.f64 im 3)))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) -1/2)))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) -1/2)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 (pow.f64 re 4) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) 1/24)) (+.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) -1/2))))
(+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 4) 1/24)) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) -1/2))))
(+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/2 (pow.f64 re 2))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) -1/2)) (+.f64 (*.f64 (pow.f64 re 4) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) 1/24)) (+.f64 (*.f64 (pow.f64 re 6) (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) -1/720)) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))))
(+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 2) -1/2)) (+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 4) 1/24)) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 6) -1/720)))))
(+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/2 (pow.f64 re 2))) (+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/24 (pow.f64 re 4))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 -1/2 (pow.f64 re 2))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 1 (*.f64 1/24 (pow.f64 re 4))))))
(+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 1/24 (pow.f64 re 4))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (cos.f64 re) (*.f64 1/720 (pow.f64 im 6)))) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 (cos.f64 re) (*.f64 1/720 (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6))))))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 1 (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 1 (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (/.f64 1/2 (exp.f64 im)) 0)
(/.f64 1/2 (exp.f64 im))
(+.f64 0 (/.f64 1/2 (exp.f64 im)))
(/.f64 1/2 (exp.f64 im))
(+.f64 (/.f64 1/4 (exp.f64 im)) (/.f64 1/4 (exp.f64 im)))
(-.f64 (/.f64 1/2 (exp.f64 im)) 0)
(/.f64 1/2 (exp.f64 im))
(*.f64 1/2 (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 1/2 (exp.f64 im)) 1)
(/.f64 1/2 (exp.f64 im))
(*.f64 2 (/.f64 1/4 (exp.f64 im)))
(*.f64 2 (*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 (exp.f64 im) (*.f64 2 (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (exp.f64 im) (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 2 (exp.f64 im)))
(*.f64 2 (*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 2 (*.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 2 (*.f64 1/2 (exp.f64 im))))
(*.f64 1 (/.f64 1/2 (exp.f64 im)))
(/.f64 1/2 (exp.f64 im))
(*.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/4 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (*.f64 2 (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (exp.f64 im) (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 2 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) 1/2)
(*.f64 1/2 (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/8 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (*.f64 4 (/.f64 1/8 (exp.f64 (+.f64 im im)))))
(*.f64 4 (/.f64 1/8 (exp.f64 im)))
(*.f64 (/.f64 2 (exp.f64 im)) 1/4)
(*.f64 1/4 (/.f64 2 (exp.f64 im)))
(*.f64 1/4 (/.f64 2 (exp.f64 im)))
(*.f64 (/.f64 1/4 (exp.f64 im)) 2)
(*.f64 2 (/.f64 1/4 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (exp.f64 im))
(*.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 im) (*.f64 2 (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (exp.f64 im) (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 1/4 (exp.f64 (+.f64 im im))) (*.f64 2 (exp.f64 im)))
(*.f64 (/.f64 1/8 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 4))
(*.f64 (exp.f64 im) (*.f64 4 (/.f64 1/8 (exp.f64 (+.f64 im im)))))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/8 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 1/8 (exp.f64 im)) 4)
(*.f64 4 (/.f64 1/8 (exp.f64 im)))
(pow.f64 (/.f64 1/2 (exp.f64 im)) 1)
(/.f64 1/2 (exp.f64 im))
(neg.f64 (/.f64 -1/2 (exp.f64 im)))
(/.f64 1/2 (exp.f64 im))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(+.f64 0 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4) (*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 1/4))
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(-.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 0)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)) 2)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 4)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 8)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) 16)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re)))) (*.f64 2 (*.f64 4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))))) 32)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(pow.f64 (*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (cos.f64 re))) 1)
(*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/2 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 2 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1/2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 1/4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 1/2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 1/8)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4) 4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/4 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/8 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 1/2 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4) 4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8) 8)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8)) 16)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 8))) 32)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Compiler

Compiled 25 to 9 computations (64% saved)

series0.0ms (0%)

Counts
1 → 8
Calls

3 calls:

TimeVariablePointExpression
0.0ms
im
@0
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
0.0ms
im
@inf
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
0.0ms
im
@-inf
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))

rewrite74.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1730×rational.json-simplify-35
1080×rational.json-simplify-2
1056×exponential.json-3
1056×rational.json-1
1056×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15619
213619
330819
463619
5161619
6404819
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (exp.f64 (*.f64 im -2))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (neg.f64 (exp.f64 (+.f64 im im)))) 1) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))))

simplify118.0ms (1%)

Algorithm
egg-herbie
Rules
1352×rational.json-simplify-2
1158×rational.json-simplify-51
1152×rational.json-simplify-41
960×rational.json-simplify-19
672×rational.json-simplify-40
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
097957
1196957
2433957
31084957
41973957
54726941
67670941
Stop Event
node limit
Counts
41 → 46
Calls
Call 1
Inputs
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 1/12 (pow.f64 im 4))))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(+.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 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(*.f64 1 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(*.f64 2 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 1/2)
(*.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2))
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) 2)
(*.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))
(*.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(*.f64 (+.f64 1 (exp.f64 (*.f64 im -2))) (exp.f64 im))
(*.f64 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))) 2)
(*.f64 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))) 1/2)
(*.f64 (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 2))
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2))
(*.f64 (+.f64 (neg.f64 (neg.f64 (exp.f64 (+.f64 im im)))) 1) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 8)
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)))) 64)
(pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
Outputs
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 1/12 (pow.f64 im 4))))
(+.f64 (*.f64 1/12 (pow.f64 im 4)) (+.f64 2 (pow.f64 im 2)))
(+.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 1/12 (pow.f64 im 4)))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(+.f64 2 (+.f64 (*.f64 1/12 (pow.f64 im 4)) (+.f64 (pow.f64 im 2) (*.f64 1/360 (pow.f64 im 6)))))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(-.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 2 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 1/2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 2) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (*.f64 2 (exp.f64 im)) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (exp.f64 im) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im))))))
(*.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 1/4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1/2 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (*.f64 2 (exp.f64 im)) (/.f64 2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (/.f64 2 (exp.f64 im)) (*.f64 2 (exp.f64 im))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (+.f64 1 (exp.f64 (*.f64 im -2))) (exp.f64 im))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (*.f64 im -2))))
(*.f64 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))) 2)
(*.f64 2 (+.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 (*.f64 (exp.f64 im) 2) (/.f64 2 (exp.f64 im))) 1/2)
(*.f64 1/2 (+.f64 (*.f64 2 (exp.f64 im)) (/.f64 2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (/.f64 2 (exp.f64 im)) (*.f64 2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 2))
(*.f64 (*.f64 2 (exp.f64 im)) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (exp.f64 im) (+.f64 1/2 (/.f64 1/2 (exp.f64 (+.f64 im im))))))
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (+.f64 (neg.f64 (neg.f64 (exp.f64 (+.f64 im im)))) 1) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 8)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)) 16)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) 32)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8)))) 64)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
Compiler

Compiled 30 to 20 computations (33.3% saved)

series6.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
3.0ms
im
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
1.0ms
re
@inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0ms
im
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0ms
re
@0
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0ms
re
@-inf
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))

rewrite162.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1308×rational.json-1
1272×rational.json-simplify-35
1212×rational.json-2
1212×rational.json-3
1208×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01229
17929
216429
335129
469729
5163229
6308229
7456929
8605229
9733429
10795629
Stop Event
node limit
Counts
1 → 16
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)) (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))) (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)))))

simplify315.0ms (2.6%)

Algorithm
egg-herbie
Rules
2152×rational.json-simplify-2
1974×rational.json-simplify-35
1246×rational.json-simplify-1
1148×rational.json-simplify-53
1052×exponential.json-simplify-26
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0801336
11911300
23931246
38361228
424021228
541601228
652091228
756791228
859491228
961761228
1072161228
1179501228
Stop Event
node limit
Counts
40 → 40
Calls
Call 1
Inputs
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4))) (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 -1/1440 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 6))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)
(+.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))))
(+.f64 (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)) (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)))
(+.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)))
(+.f64 (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))) (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))))
(+.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)))
(-.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)
(/.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)
(/.f64 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))) 2)
(/.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 2)) 4)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)))) 64)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))))) 128)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)
Outputs
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) -1/4)))
(*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4))) (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2)))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) -1/4)) (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 4) 1/48))))
(+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 1/48 (pow.f64 re 4))))
(*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 1/48 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 4))) (+.f64 (*.f64 -1/4 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 2))) (*.f64 -1/1440 (*.f64 (+.f64 2 (pow.f64 im 2)) (pow.f64 re 6))))))
(+.f64 (*.f64 1/2 (+.f64 2 (pow.f64 im 2))) (+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 4) 1/48)) (+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 2) -1/4)) (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (pow.f64 re 6) -1/1440)))))
(+.f64 (+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 -1/4 (pow.f64 re 2))) (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 -1/1440 (pow.f64 re 6)))) (+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 1/48 (pow.f64 re 4))) (*.f64 1/2 (+.f64 2 (pow.f64 im 2)))))
(+.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 -1/4 (pow.f64 re 2)))) (*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (pow.f64 re 4)) 1/2)))
(*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 (+.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(+.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(+.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(+.f64 (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)) (*.f64 (cos.f64 re) (/.f64 (+.f64 2 (pow.f64 im 2)) 4)))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(+.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/4) (cos.f64 re)))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(+.f64 (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))) (*.f64 (*.f64 (*.f64 1/2 (cos.f64 re)) 1/4) (*.f64 2 (+.f64 2 (pow.f64 im 2)))))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(+.f64 (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)) (*.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) 1/8) (*.f64 (cos.f64 re) 2)))
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(-.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 0)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2))) 2)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 (+.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 2)) 4)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 4)) 8)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))) 32)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)))) 64)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8)) 16)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (*.f64 (+.f64 2 (pow.f64 im 2)) 8))))) 128)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 2 (pow.f64 im 2)))) 1)
(*.f64 1/2 (*.f64 (+.f64 2 (pow.f64 im 2)) (cos.f64 re)))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
0.1b
(*.f64 (cos.f64 re) (pow.f64 im 2))
Compiler

Compiled 36 to 21 computations (41.7% saved)

series240.0ms (2%)

Counts
2 → 8
Calls

12 calls:

TimeVariablePointExpression
235.0ms
re
@inf
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
2.0ms
re
@0
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
0.0ms
re
@-inf
(*.f64 (cos.f64 re) (pow.f64 im 2))
0.0ms
re
@0
(*.f64 (cos.f64 re) (pow.f64 im 2))
0.0ms
im
@inf
(*.f64 (cos.f64 re) (pow.f64 im 2))

rewrite209.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1312×rational.json-1
1312×rational.json-2
1312×rational.json-3
1230×rational.json-simplify-35
1216×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01140
17440
216340
333840
465540
5148140
6298140
7483540
8598540
9725140
10785740
Stop Event
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (pow.f64 im 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (pow.f64 im 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)))))

simplify788.0ms (6.5%)

Algorithm
egg-herbie
Rules
2450×rational.json-simplify-2
2032×rational.json-simplify-35
1720×rational.json-simplify-1
900×rational.json-simplify-53
816×rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
091958
1231958
2476928
31248892
42673892
54251892
65084892
75373892
85614892
95796892
106005892
116786892
127306892
137673892
147852892
Stop Event
node limit
Counts
36 → 64
Calls
Call 1
Inputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2))))))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(+.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))
(+.f64 0 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4))
(+.f64 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))
(-.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 2)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 4)
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))))) 128)
(pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 4)
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 8)
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 16)
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 128)
(pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)
Outputs
(pow.f64 im 2)
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (pow.f64 (*.f64 re im) 2)))
(+.f64 (pow.f64 im 2) (*.f64 -1/2 (pow.f64 (*.f64 im re) 2)))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 (*.f64 re im) 2)) (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/24))))
(+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 (*.f64 im re) 2)) (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/24))))
(+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/2 (pow.f64 re 2)))))
(+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (+.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (pow.f64 im 2))) (*.f64 -1/720 (*.f64 (pow.f64 re 6) (pow.f64 im 2))))))
(+.f64 (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/24)) (+.f64 (*.f64 -1/2 (pow.f64 (*.f64 re im) 2)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 im 2) (pow.f64 re 6))) (pow.f64 im 2))))
(+.f64 (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/24)) (+.f64 (*.f64 -1/2 (pow.f64 (*.f64 im re) 2)) (+.f64 (pow.f64 im 2) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 6) -1/720)))))
(+.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/24)) (+.f64 (*.f64 -1/2 (pow.f64 (*.f64 im re) 2)) (*.f64 (pow.f64 im 2) (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (*.f64 -1/2 (pow.f64 (*.f64 im re) 2)) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/720 (pow.f64 re 6)))) (pow.f64 im 2)))
(+.f64 (+.f64 (pow.f64 im 2) (*.f64 -1/2 (pow.f64 (*.f64 im re) 2))) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 (pow.f64 im 2) 1/2)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (*.f64 (pow.f64 (*.f64 re im) 2) -1/4))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (*.f64 (pow.f64 (*.f64 im re) 2) -1/4))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 2) -1/4)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (+.f64 (*.f64 (pow.f64 (*.f64 re im) 2) -1/4) (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/48))))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (*.f64 1/48 (pow.f64 re 4)))))
(+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 4) 1/48))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 4) 1/48) (+.f64 1/2 (*.f64 (pow.f64 re 2) -1/4))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 2) -1/4))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 2) -1/4) (+.f64 1/2 (*.f64 (pow.f64 re 4) 1/48))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (+.f64 (+.f64 (*.f64 (pow.f64 (*.f64 re im) 2) -1/4) (*.f64 (pow.f64 re 4) (*.f64 (pow.f64 im 2) 1/48))) (*.f64 (pow.f64 re 6) (*.f64 (pow.f64 im 2) -1/1440))))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (+.f64 (+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 6) -1/1440))))
(+.f64 (+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48))) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 (pow.f64 re 6) -1/1440))))
(+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 (pow.f64 re 6) -1/1440) (+.f64 1/2 (*.f64 (pow.f64 re 4) 1/48)))))
(+.f64 (*.f64 (pow.f64 (*.f64 im re) 2) -1/4) (*.f64 (pow.f64 im 2) (+.f64 1/2 (+.f64 (*.f64 (pow.f64 re 4) 1/48) (*.f64 (pow.f64 re 6) -1/1440)))))
(+.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))
(*.f64 (pow.f64 im 2) (cos.f64 re))
(+.f64 0 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4))
(*.f64 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 3/4) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))
(*.f64 (pow.f64 im 2) (cos.f64 re))
(-.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 0)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 2)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 4)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 8)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 16)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 32)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 64)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))))) 128)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(pow.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 1)
(*.f64 (pow.f64 im 2) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)) (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/4)))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 0)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 4)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 4)) 8)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)) 16)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))) 32)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re)))) 64)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 8) (cos.f64 re))))) 128)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(pow.f64 (*.f64 (cos.f64 re) (*.f64 (pow.f64 im 2) 1/2)) 1)
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))

eval528.0ms (4.4%)

Compiler

Compiled 5129 to 3331 computations (35.1% saved)

prune46.0ms (0.4%)

Pruning

12 alts after pruning (7 fresh and 5 done)

PrunedKeptTotal
New2617268
Fresh000
Picked011
Done145
Total26212274
Error
0.0b
Counts
274 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
1.7b
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
1.3b
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
61.1b
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
2.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) 1/2)))
0.0b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
29.1b
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
29.6b
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
29.3b
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
29.7b
(*.f64 1/2 2)
1.7b
(cos.f64 re)
Compiler

Compiled 216 to 176 computations (18.5% saved)

localize19.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
0.0b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
0.0b
(/.f64 1 (exp.f64 im))
Compiler

Compiled 49 to 29 computations (40.8% saved)

series1.0ms (0%)

Counts
3 → 16
Calls

12 calls:

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

rewrite99.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1562×rational.json-1
1562×rational.json-2
1562×rational.json-3
1078×rational.json-simplify-35
926×rational.json-simplify-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01481
110669
223369
350169
4107069
5302469
6702069
Stop Event
node limit
Counts
3 → 66
Calls
Call 1
Inputs
(/.f64 1 (exp.f64 im))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (neg.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (neg.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 im) (exp.f64 (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 im) (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (exp.f64 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 2) (*.f64 1/2 (exp.f64 (*.f64 im -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 im)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 1/4 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 im) 4) (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (exp.f64 im)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 4 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 (exp.f64 im)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (*.f64 im -2)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 -1) (exp.f64 (-.f64 1 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (-.f64 1 im)) (exp.f64 -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (*.f64 im -2)) (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 -1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 im (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 im -2) im))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)) (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (exp.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 1/2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)))))

simplify101.0ms (0.8%)

Algorithm
egg-herbie
Rules
1374×rational.json-simplify-2
1032×rational.json-simplify-1
822×rational.json-simplify-35
674×rational.json-simplify-54
646×rational.json-simplify-41
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01862534
14072354
28422244
317752178
434512178
560112148
Stop Event
node limit
Counts
82 → 126
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 -1 im))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1 im)))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1 im))))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (exp.f64 (neg.f64 im)) 0)
(+.f64 (/.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
(+.f64 0 (exp.f64 (neg.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) 0)
(*.f64 1 (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 im) (exp.f64 (*.f64 im -2)))
(*.f64 (exp.f64 im) (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 (neg.f64 im)) 1)
(*.f64 1/2 (/.f64 2 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 im)) 2)
(*.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 2 (/.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 2) (*.f64 1/2 (exp.f64 (*.f64 im -2))))
(*.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 im)) 1/2)
(*.f64 4 (/.f64 1/4 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 4 (exp.f64 im)) 1/4)
(*.f64 1/4 (/.f64 4 (exp.f64 im)))
(*.f64 (/.f64 1/4 (exp.f64 im)) 4)
(*.f64 (exp.f64 (*.f64 im -2)) (exp.f64 im))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 1/2))
(*.f64 (exp.f64 -1) (exp.f64 (-.f64 1 im)))
(*.f64 (exp.f64 (-.f64 1 im)) (exp.f64 -1))
(*.f64 (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 im))
(*.f64 (*.f64 1/2 (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 2))
(*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))
(*.f64 (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 4))
(*.f64 (+.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/4))
(*.f64 (+.f64 (exp.f64 (*.f64 im -2)) (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 1/2))
(pow.f64 (exp.f64 (neg.f64 im)) 1)
(neg.f64 (/.f64 -1 (exp.f64 im)))
(exp.f64 (neg.f64 im))
(exp.f64 (+.f64 im (*.f64 im -2)))
(exp.f64 (+.f64 (*.f64 im -2) im))
(+.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)) (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)))
(-.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)
(/.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)
(/.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) 32)
(pow.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (/.f64 1/2 (exp.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4))
(*.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
(*.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4)
(*.f64 1/4 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4) 2)
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 1/2 (exp.f64 im)))
(*.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 4)
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2)
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 32)
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
Outputs
1
(+.f64 1 (*.f64 -1 im))
(+.f64 1 (neg.f64 im))
(-.f64 1 im)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1 im)))
(+.f64 1 (+.f64 (neg.f64 im) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 1 im))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1 im))))
(+.f64 1 (+.f64 (+.f64 (neg.f64 im) (*.f64 1/2 (pow.f64 im 2))) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (-.f64 1 im)) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 1 im)))
(+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 1/2 (/.f64 1 (exp.f64 im))))))
(+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 4) 1/24))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/4)) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 1/24 (pow.f64 re 4)))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 re 4) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 6) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))) (*.f64 1/2 (/.f64 1 (exp.f64 im)))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))) (pow.f64 re 6))) (+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im))))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 re 2) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (+.f64 (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 4) 1/24)) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (pow.f64 re 6) -1/720)))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/4)) (+.f64 (*.f64 (pow.f64 re 4) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/48)) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (*.f64 (pow.f64 re 2) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/4)) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 1 (*.f64 1/24 (pow.f64 re 4))))))
(+.f64 (*.f64 (pow.f64 re 4) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/48)) (*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))))))
(cos.f64 re)
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))))
(*.f64 (cos.f64 re) (+.f64 1 (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(*.f64 (cos.f64 re) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4)))))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (+.f64 (+.f64 (*.f64 (cos.f64 re) (*.f64 1/24 (pow.f64 im 4))) (*.f64 (cos.f64 re) (*.f64 1/720 (pow.f64 im 6)))) (*.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (+.f64 (*.f64 1/24 (*.f64 (cos.f64 re) (pow.f64 im 4))) (*.f64 1/720 (*.f64 (cos.f64 re) (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 im 2) (cos.f64 re))) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6))))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6))))))
1
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 im 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (-.f64 (*.f64 1/720 (pow.f64 im 6)) -1)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/24 (pow.f64 im 4)) (+.f64 1 (*.f64 1/720 (pow.f64 im 6)))))
(+.f64 (exp.f64 (neg.f64 im)) 0)
(exp.f64 (neg.f64 im))
(+.f64 (/.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
(*.f64 2 (/.f64 1/2 (exp.f64 im)))
(+.f64 0 (exp.f64 (neg.f64 im)))
(exp.f64 (neg.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) 0)
(exp.f64 (neg.f64 im))
(*.f64 1 (exp.f64 (neg.f64 im)))
(exp.f64 (neg.f64 im))
(*.f64 (exp.f64 im) (exp.f64 (*.f64 im -2)))
(exp.f64 (+.f64 im (*.f64 im -2)))
(*.f64 (exp.f64 im) (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 1/2 (*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 1/2 (*.f64 (exp.f64 im) (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 (neg.f64 im)) 1)
(exp.f64 (neg.f64 im))
(*.f64 1/2 (/.f64 2 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 im)) 2)
(+.f64 (/.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
(*.f64 2 (/.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 1/2 (*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 1/2 (*.f64 (exp.f64 im) (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 2 (/.f64 1/2 (exp.f64 im)))
(+.f64 (/.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 2) (*.f64 1/2 (exp.f64 (*.f64 im -2))))
(exp.f64 (+.f64 im (*.f64 im -2)))
(*.f64 (*.f64 (exp.f64 im) 2) (/.f64 1/2 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (*.f64 2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 2 (*.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 2 (exp.f64 im)) 1/2)
(*.f64 1/2 (/.f64 2 (exp.f64 im)))
(*.f64 4 (/.f64 1/4 (exp.f64 im)))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/4 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (*.f64 4 (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 4 (exp.f64 im)) 1/4)
(*.f64 1/4 (/.f64 4 (exp.f64 im)))
(*.f64 1/4 (/.f64 4 (exp.f64 im)))
(*.f64 (/.f64 1/4 (exp.f64 im)) 4)
(*.f64 4 (/.f64 1/4 (exp.f64 im)))
(*.f64 (exp.f64 (*.f64 im -2)) (exp.f64 im))
(exp.f64 (+.f64 im (*.f64 im -2)))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 1/2))
(*.f64 1/2 (*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 1/2 (*.f64 (exp.f64 im) (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 -1) (exp.f64 (-.f64 1 im)))
(exp.f64 (neg.f64 im))
(*.f64 (exp.f64 (-.f64 1 im)) (exp.f64 -1))
(exp.f64 (neg.f64 im))
(*.f64 (*.f64 1/2 (/.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 im))
(*.f64 1/2 (*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 1/2 (*.f64 (exp.f64 im) (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (*.f64 1/2 (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 2))
(exp.f64 (+.f64 im (*.f64 im -2)))
(*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (*.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 im) (*.f64 2 (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 2 (*.f64 (/.f64 1/2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 2 (*.f64 (exp.f64 im) (/.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (/.f64 1 (*.f64 4 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 4))
(*.f64 (*.f64 (exp.f64 im) 4) (/.f64 1/4 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 im) (*.f64 4 (/.f64 1/4 (exp.f64 (+.f64 im im)))))
(*.f64 (+.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/4))
(*.f64 1/2 (*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (exp.f64 im)))
(*.f64 1/2 (*.f64 (exp.f64 im) (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (+.f64 (exp.f64 (*.f64 im -2)) (exp.f64 (*.f64 im -2))) (*.f64 (exp.f64 im) 1/2))
(exp.f64 (+.f64 im (*.f64 im -2)))
(pow.f64 (exp.f64 (neg.f64 im)) 1)
(exp.f64 (neg.f64 im))
(neg.f64 (/.f64 -1 (exp.f64 im)))
(exp.f64 (neg.f64 im))
(exp.f64 (neg.f64 im))
(exp.f64 (+.f64 im (*.f64 im -2)))
(exp.f64 (+.f64 (*.f64 im -2) im))
(exp.f64 (+.f64 im (*.f64 im -2)))
(+.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(+.f64 0 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(+.f64 (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)) (*.f64 (cos.f64 re) (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4)))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(-.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 0)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 4)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 8)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 16)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) 32)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(pow.f64 (*.f64 (cos.f64 re) (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 1)
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (cos.f64 re) 1/2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (/.f64 (cos.f64 re) 2))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 1/2 (cos.f64 re)))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (cos.f64 re))
(-.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 0)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 4 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1/4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 1/4 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/4) 2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 1/2 (exp.f64 im)))
(*.f64 (/.f64 1/2 (exp.f64 im)) (+.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 8) 4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 4)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 8)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) 16)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) 32)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(pow.f64 (*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 1)
(+.f64 (*.f64 1/2 (exp.f64 (neg.f64 im))) (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))

localize3.0ms (0%)

Compiler

Compiled 7 to 7 computations (0% saved)

localize8.0ms (0.1%)

Compiler

Compiled 20 to 16 computations (20% saved)

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
Compiler

Compiled 23 to 14 computations (39.1% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite161.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1322×rational.json-1
1322×rational.json-2
1322×rational.json-3
1222×exponential.json-3
1222×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01123
17423
216323
333923
464223
5155123
6306423
7491023
8606823
9728523
10789323
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)) (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2 (cos.f64 re)) (pow.f64 im 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)))))

simplify670.0ms (5.6%)

Algorithm
egg-herbie
Rules
2664×rational.json-simplify-2
2030×rational.json-simplify-35
1224×rational.json-simplify-53
1222×rational.json-simplify-42
1020×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061973
1150973
2304943
3646925
41652925
52825925
63713925
74297925
84607925
94795925
104999925
115440925
125638925
136164925
146533925
156707925
166906925
Stop Event
node limit
Counts
37 → 29
Calls
Call 1
Inputs
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)
(+.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))
(+.f64 (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)) (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)))
(-.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)
(/.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)
(/.f64 (*.f64 (*.f64 2 (cos.f64 re)) (pow.f64 im 2)) 4)
(/.f64 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))))) 128)
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
Outputs
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48))))
(+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))))
(*.f64 (pow.f64 im 2) (+.f64 (*.f64 1/48 (pow.f64 re 4)) (+.f64 1/2 (*.f64 -1/4 (pow.f64 re 2)))))
(*.f64 (pow.f64 im 2) (+.f64 1/2 (+.f64 (*.f64 1/48 (pow.f64 re 4)) (*.f64 -1/4 (pow.f64 re 2)))))
(+.f64 (*.f64 -1/1440 (*.f64 (pow.f64 re 6) (pow.f64 im 2))) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 1/48 (*.f64 (pow.f64 re 4) (pow.f64 im 2))) (*.f64 -1/4 (*.f64 (pow.f64 re 2) (pow.f64 im 2))))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 1/48 (*.f64 (pow.f64 im 2) (pow.f64 re 4)))) (*.f64 -1/1440 (*.f64 (pow.f64 im 2) (pow.f64 re 6)))))
(+.f64 (+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 (pow.f64 im 2) (*.f64 (pow.f64 re 4) 1/48))) (+.f64 (*.f64 (pow.f64 im 2) (*.f64 -1/1440 (pow.f64 re 6))) (*.f64 1/2 (pow.f64 im 2))))
(+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (+.f64 (*.f64 (pow.f64 im 2) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4)))) (*.f64 (pow.f64 im 2) (*.f64 -1/1440 (pow.f64 re 6)))))
(+.f64 (*.f64 -1/4 (pow.f64 (*.f64 re im) 2)) (*.f64 (pow.f64 im 2) (+.f64 (*.f64 -1/1440 (pow.f64 re 6)) (+.f64 1/2 (*.f64 1/48 (pow.f64 re 4))))))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 0 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(+.f64 (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)) (*.f64 (cos.f64 re) (pow.f64 (*.f64 im 1/2) 2)))
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(-.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 0)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 (cos.f64 re) (pow.f64 im 2)) 2)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 (*.f64 2 (cos.f64 re)) (pow.f64 im 2)) 4)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)) 8)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))) 16)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))) 32)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2))))) 64)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (cos.f64 re) 4) (pow.f64 im 2)))))) 128)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))
(pow.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) 1)
(*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2)))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
0.0b
(*.f64 (pow.f64 im 2) 1/2)
Compiler

Compiled 24 to 16 computations (33.3% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
re
@0
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
0.0ms
im
@inf
(*.f64 (pow.f64 im 2) 1/2)
0.0ms
im
@0
(*.f64 (pow.f64 im 2) 1/2)
0.0ms
re
@inf
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
0.0ms
im
@inf
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))

rewrite139.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1322×rational.json-simplify-35
1294×exponential.json-3
1294×rational.json-1
1294×rational.json-2
1294×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
17236
214836
330236
459036
5135536
6298936
7496636
8605136
9745236
Stop Event
node limit
Counts
2 → 35
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 2) 1/2)
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 2) 1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 im 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (*.f64 im 1/2) 2) (pow.f64 (*.f64 im 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 im 2) 1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 im 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 im 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 8) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 8)) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8)))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 im 2) 1/2) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)))))

simplify292.0ms (2.4%)

Algorithm
egg-herbie
Rules
2402×rational.json-simplify-51
2276×rational.json-simplify-35
2134×rational.json-simplify-2
1584×rational.json-simplify-1
596×rational.json-simplify-45
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0961461
12261461
24421461
311811461
427061461
534001461
636181461
738071461
839781461
941551461
1058131461
1162551461
1267761461
1370561461
1473051461
1575411461
Stop Event
node limit
Counts
71 → 59
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) 0)
(+.f64 0 (*.f64 (pow.f64 im 2) 1/2))
(+.f64 (pow.f64 (*.f64 im 1/2) 2) (pow.f64 (*.f64 im 1/2) 2))
(-.f64 (*.f64 (pow.f64 im 2) 1/2) 0)
(/.f64 (pow.f64 im 2) 2)
(/.f64 (*.f64 (pow.f64 im 2) 1/2) 1)
(/.f64 (*.f64 2 (pow.f64 im 2)) 4)
(/.f64 (*.f64 (pow.f64 im 2) 4) 8)
(/.f64 (*.f64 (pow.f64 im 2) 8) 16)
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 8)) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8)))) 128)
(pow.f64 (*.f64 (pow.f64 im 2) 1/2) 1)
(-.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 0)
(*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)))
(*.f64 1/2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))))
(*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
(*.f64 1 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)))
(*.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4))
(*.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 1/4)
(*.f64 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)))
(*.f64 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4) 4)
(*.f64 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)) 1/4)
(/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
(/.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 2)
(/.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))))) 128)
(pow.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
Outputs
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (pow.f64 im 2))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 1 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) 1))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2)))))
(+.f64 1 (+.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 1 (+.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 -1/720 (pow.f64 re 6)))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 -1/2 (pow.f64 re 2))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6)))))
(+.f64 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6)))) (+.f64 (*.f64 1/2 (pow.f64 im 2)) (*.f64 1/24 (pow.f64 re 4))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (+.f64 1 (*.f64 -1/720 (pow.f64 re 6))))))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (cos.f64 re) (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) 0)
(*.f64 1/2 (pow.f64 im 2))
(+.f64 0 (*.f64 (pow.f64 im 2) 1/2))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (pow.f64 (*.f64 im 1/2) 2) (pow.f64 (*.f64 im 1/2) 2))
(*.f64 1/2 (pow.f64 im 2))
(-.f64 (*.f64 (pow.f64 im 2) 1/2) 0)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (pow.f64 im 2) 2)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 1/2) 1)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (pow.f64 im 2)) 4)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 4) 8)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 8) 16)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 8)) 32)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8))) 64)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 2) 8)))) 128)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 (pow.f64 im 2) 1/2) 1)
(*.f64 1/2 (pow.f64 im 2))
(-.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 0)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 im 2) 1/4) (*.f64 1/2 (cos.f64 re))))
(*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 (pow.f64 im 2) 1/4)))
(*.f64 1/2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 1 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 1/2)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 4 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 1/4)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (+.f64 (*.f64 1/2 (cos.f64 re)) (pow.f64 (*.f64 im 1/2) 2)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 im 2) 1/4) (*.f64 1/2 (cos.f64 re))))
(*.f64 2 (+.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 (pow.f64 im 2) 1/4)))
(*.f64 1/4 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 1/4 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)))
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 4) 4)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(*.f64 (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 (cos.f64 re) 4)) 1/4)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re))) 2)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 2 (+.f64 (pow.f64 im 2) (*.f64 2 (cos.f64 re)))) 4)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8) 8)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)) 16)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))) 32)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8)))) 64)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 8))))) 128)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))
(pow.f64 (+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re)) 1)
(+.f64 (*.f64 1/2 (pow.f64 im 2)) (cos.f64 re))

eval68.0ms (0.6%)

Compiler

Compiled 3747 to 2377 computations (36.6% saved)

prune37.0ms (0.3%)

Pruning

13 alts after pruning (3 fresh and 10 done)

PrunedKeptTotal
New2122214
Fresh112
Picked011
Done099
Total21313226
Error
0.0b
Counts
226 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
1.7b
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
1.3b
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
61.1b
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
2.3b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
61.4b
(*.f64 1/2 (pow.f64 im 2))
29.1b
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
29.6b
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
29.3b
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
29.7b
(*.f64 1/2 2)
1.7b
(cos.f64 re)
Compiler

Compiled 139 to 112 computations (19.4% saved)

localize22.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
0.0b
(/.f64 2 (exp.f64 (+.f64 im im)))
0.3b
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2))
Compiler

Compiled 60 to 31 computations (48.3% saved)

series4.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite89.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1662×rational.json-1
1662×rational.json-2
1662×rational.json-4
1662×rational.json-3
1658×exponential.json-3
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01379
19279
221779
355179
4141359
5513859
Stop Event
node limit
Counts
3 → 128
Calls
Call 1
Inputs
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2))
(/.f64 2 (exp.f64 (+.f64 im im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 (exp.f64 im) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 4 (exp.f64 (neg.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (/.f64 (*.f64 2 (*.f64 (exp.f64 im) 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (*.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (neg.f64 (+.f64 im im))) (exp.f64 (neg.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (exp.f64 (neg.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 4 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 im)) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 im)) (/.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 (+.f64 im im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (exp.f64 (+.f64 im im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 (*.f64 im 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (neg.f64 (*.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 (*.f64 im 4))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (exp.f64 (+.f64 im im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (neg.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (/.f64 4 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 (+.f64 im im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 4 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (+.f64 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (+.f64 im im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (+.f64 im im)) (/.f64 (exp.f64 (*.f64 im 4)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 1 (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 (exp.f64 im) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 im) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/2 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 (+.f64 im im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (/.f64 2 (exp.f64 (neg.f64 (+.f64 im im)))) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (+.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (/.f64 (*.f64 (*.f64 2 (exp.f64 (+.f64 im im))) 4) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (+.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 (exp.f64 im)) (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fabs.f64 (exp.f64 im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (fabs.f64 (exp.f64 im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 (exp.f64 im)) (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 2 (exp.f64 im))) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 4) (*.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (neg.f64 im)) (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 -2 (exp.f64 im)) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (neg.f64 (+.f64 im im))) (/.f64 1 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 4 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (/.f64 2 (exp.f64 im))) (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (*.f64 (exp.f64 im) 1/2) (*.f64 (exp.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 im) (/.f64 4 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 (+.f64 im im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (/.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (exp.f64 im) (exp.f64 im)) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (+.f64 (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (exp.f64 (+.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (/.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 (+.f64 im im)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (fabs.f64 (exp.f64 im))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) 1/2) (*.f64 2 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 im) 1/2)) (*.f64 2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 (+.f64 im im)) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (fabs.f64 (exp.f64 im))) (fabs.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (fabs.f64 (exp.f64 im)))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 2 (exp.f64 im))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))) (neg.f64 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (neg.f64 (*.f64 (exp.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)))))

simplify135.0ms (1.1%)

Algorithm
egg-herbie
Rules
1138×rational.json-simplify-35
896×rational.json-simplify-2
758×rational.json-simplify-1
616×rational.json-simplify-39
544×rational.json-simplify-44
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03094646
110644458
237264350
359544308
Stop Event
node limit
Counts
164 → 185
Calls
Call 1
Inputs
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 1/12 (pow.f64 im 4))))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
2
(+.f64 2 (*.f64 -4 im))
(+.f64 2 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2))))
(+.f64 (*.f64 -8/3 (pow.f64 im 3)) (+.f64 2 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2)))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
4
(+.f64 4 (*.f64 -4 im))
(+.f64 4 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2))))
(+.f64 (*.f64 -8/3 (pow.f64 im 3)) (+.f64 4 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 0 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(-.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(/.f64 2 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 2 (exp.f64 im)))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 2))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 4))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(/.f64 1 (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 (exp.f64 im) 1/2) 2))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 4 (exp.f64 (neg.f64 im))) 4))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 8 (/.f64 (*.f64 2 (*.f64 (exp.f64 im) 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (exp.f64 im)))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(/.f64 (*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) 8)
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (exp.f64 im) 1/2))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (exp.f64 im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))) 16)
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (*.f64 2 (exp.f64 im)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) 2)
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) 1/2)
(pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)
(+.f64 0 (/.f64 2 (exp.f64 (+.f64 im im))))
(+.f64 (exp.f64 (neg.f64 (+.f64 im im))) (exp.f64 (neg.f64 (+.f64 im im))))
(-.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)
(*.f64 2 (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)
(*.f64 1/2 (/.f64 4 (exp.f64 (+.f64 im im))))
(*.f64 1 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (/.f64 2 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 (+.f64 im im))) 2)
(*.f64 (/.f64 4 (exp.f64 (+.f64 im im))) 1/2)
(pow.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)
(fabs.f64 (/.f64 2 (exp.f64 (+.f64 im im))))
(fabs.f64 (/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 (*.f64 im 4)))))
(fabs.f64 (/.f64 (neg.f64 (*.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 (*.f64 im 4))))
(-.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 0)
(*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (exp.f64 (+.f64 im im)) 1))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
(*.f64 1/2 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4))
(*.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2) 2)
(*.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 1/2)
(*.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (/.f64 4 (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (neg.f64 (+.f64 im im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)))
(*.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2))
(*.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 4 (exp.f64 (+.f64 im im))))
(/.f64 2 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(/.f64 2 (+.f64 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 (exp.f64 (+.f64 im im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (exp.f64 (+.f64 im im)) (/.f64 (exp.f64 (*.f64 im 4)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 1 (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 (exp.f64 im) (exp.f64 im)))
(/.f64 (exp.f64 im) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 1/2 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (exp.f64 im) 1/2))
(/.f64 1 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(/.f64 4 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(/.f64 4 (+.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))
(/.f64 4 (/.f64 (/.f64 2 (exp.f64 (neg.f64 (+.f64 im im)))) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 4 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 8 (+.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))
(/.f64 8 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 8 (/.f64 (*.f64 (*.f64 2 (exp.f64 (+.f64 im im))) 4) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 8 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 2)
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (exp.f64 im))
(/.f64 (neg.f64 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4) 4)
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (+.f64 im im)))
(/.f64 (/.f64 4 (exp.f64 im)) (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (fabs.f64 (exp.f64 im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (fabs.f64 (exp.f64 im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (/.f64 2 (exp.f64 im)) (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (neg.f64 (/.f64 2 (exp.f64 im))) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 4) (*.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) 8)
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (/.f64 -2 (exp.f64 im)) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (exp.f64 (neg.f64 (+.f64 im im))) (/.f64 1 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 4 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/2)
(/.f64 (*.f64 4 (/.f64 2 (exp.f64 im))) (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (*.f64 (exp.f64 im) 1/2) (*.f64 (exp.f64 im) 1/2)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 im) (/.f64 4 (exp.f64 im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 (+.f64 im im)) 4))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (/.f64 (exp.f64 im) 4))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))
(/.f64 (/.f64 (exp.f64 im) (exp.f64 im)) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4))) 16)
(/.f64 (+.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (+.f64 (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (exp.f64 (+.f64 im im)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) (exp.f64 im))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (/.f64 (exp.f64 im) 4))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 (+.f64 im im)))) 1/4)
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (fabs.f64 (exp.f64 im))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) 1/2) (*.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 im) 1/2)) (*.f64 2 (exp.f64 im)))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 (+.f64 im im)) 4)) 1/4)
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (fabs.f64 (exp.f64 im))) (fabs.f64 (exp.f64 im)))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (fabs.f64 (exp.f64 im)))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (exp.f64 im))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 2 (exp.f64 im))) 1/4)
(/.f64 (neg.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))) (neg.f64 (exp.f64 (+.f64 im im))))
(/.f64 (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (neg.f64 (*.f64 (exp.f64 im) 1/2)))
(/.f64 (neg.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(pow.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
Outputs
2
(+.f64 2 (pow.f64 im 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (*.f64 1/12 (pow.f64 im 4))))
(+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) 2))
(+.f64 2 (+.f64 (pow.f64 im 2) (+.f64 (*.f64 1/12 (pow.f64 im 4)) (*.f64 1/360 (pow.f64 im 6)))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))))
(*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))))
2
(+.f64 2 (*.f64 -4 im))
(+.f64 2 (*.f64 im -4))
(+.f64 2 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2))))
(+.f64 (*.f64 im -4) (+.f64 (*.f64 (pow.f64 im 2) 4) 2))
(+.f64 (*.f64 im -4) (+.f64 2 (*.f64 (pow.f64 im 2) 4)))
(+.f64 (*.f64 -8/3 (pow.f64 im 3)) (+.f64 2 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2)))))
(+.f64 (+.f64 (*.f64 im -4) (+.f64 (*.f64 (pow.f64 im 2) 4) 2)) (*.f64 -8/3 (pow.f64 im 3)))
(+.f64 (*.f64 im -4) (+.f64 (+.f64 2 (*.f64 (pow.f64 im 2) 4)) (*.f64 -8/3 (pow.f64 im 3))))
(+.f64 (*.f64 im -4) (+.f64 (*.f64 -8/3 (pow.f64 im 3)) (+.f64 2 (*.f64 (pow.f64 im 2) 4))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
(/.f64 2 (exp.f64 (neg.f64 (*.f64 -2 im))))
(/.f64 2 (exp.f64 (*.f64 2 im)))
4
(+.f64 4 (*.f64 -4 im))
(+.f64 4 (*.f64 im -4))
(+.f64 4 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2))))
(+.f64 4 (+.f64 (*.f64 im -4) (*.f64 (pow.f64 im 2) 4)))
(+.f64 (*.f64 -8/3 (pow.f64 im 3)) (+.f64 4 (+.f64 (*.f64 -4 im) (*.f64 4 (pow.f64 im 2)))))
(+.f64 4 (+.f64 (+.f64 (*.f64 im -4) (*.f64 (pow.f64 im 2) 4)) (*.f64 -8/3 (pow.f64 im 3))))
(+.f64 (*.f64 im -4) (+.f64 (+.f64 4 (*.f64 (pow.f64 im 2) 4)) (*.f64 -8/3 (pow.f64 im 3))))
(+.f64 4 (+.f64 (*.f64 im -4) (+.f64 (*.f64 (pow.f64 im 2) 4) (*.f64 -8/3 (pow.f64 im 3)))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 2 (*.f64 2 (/.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))))
(+.f64 2 (*.f64 2 (exp.f64 (neg.f64 (*.f64 2 im)))))
(+.f64 2 (*.f64 2 (exp.f64 (*.f64 im -2))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 0 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(-.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 2 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 2 (exp.f64 im)))
(/.f64 (exp.f64 im) (/.f64 2 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (exp.f64 im) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (exp.f64 im) (/.f64 2 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (exp.f64 im) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 2))
(/.f64 (exp.f64 im) (/.f64 2 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (exp.f64 im) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) 4))
(/.f64 (exp.f64 im) (/.f64 2 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(/.f64 (exp.f64 im) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 1 (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (exp.f64 im))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 (exp.f64 im) 1/2) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 (/.f64 4 (exp.f64 (neg.f64 im))) 4))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 8 (/.f64 (*.f64 2 (*.f64 (exp.f64 im) 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) 2)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (exp.f64 im)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4) 4)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (*.f64 1/2 (*.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(*.f64 (*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (+.f64 im im)))) (/.f64 1/2 (*.f64 1/2 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 (neg.f64 (+.f64 im im))) (*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (+.f64 im im)))))
(/.f64 (*.f64 (exp.f64 im) (+.f64 1 (exp.f64 (+.f64 im im)))) (exp.f64 (+.f64 im im)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) 8)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (exp.f64 im) 1/2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (exp.f64 im)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4)) (*.f64 2 (*.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 4))) 16)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (*.f64 2 (exp.f64 im)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) 2)
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) 1/2)
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 im)) 2))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(pow.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)
(/.f64 2 (exp.f64 (+.f64 im im)))
(+.f64 0 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (exp.f64 (+.f64 im im)))
(+.f64 (exp.f64 (neg.f64 (+.f64 im im))) (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 2 (exp.f64 (neg.f64 (+.f64 im im))))
(-.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 0)
(/.f64 2 (exp.f64 (+.f64 im im)))
(*.f64 2 (exp.f64 (neg.f64 (+.f64 im im))))
(+.f64 (exp.f64 (neg.f64 (+.f64 im im))) (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)
(/.f64 2 (exp.f64 (+.f64 im im)))
(*.f64 1/2 (/.f64 4 (exp.f64 (+.f64 im im))))
(*.f64 1 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (exp.f64 (+.f64 im im)))
(*.f64 (/.f64 2 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (/.f64 2 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (/.f64 2 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 (+.f64 im im))) 2)
(+.f64 (exp.f64 (neg.f64 (+.f64 im im))) (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 2 (exp.f64 (neg.f64 (+.f64 im im))))
(*.f64 (/.f64 4 (exp.f64 (+.f64 im im))) 1/2)
(*.f64 1/2 (/.f64 4 (exp.f64 (+.f64 im im))))
(pow.f64 (/.f64 2 (exp.f64 (+.f64 im im))) 1)
(/.f64 2 (exp.f64 (+.f64 im im)))
(fabs.f64 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (exp.f64 (+.f64 im im)))
(fabs.f64 (/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 (*.f64 im 4)))))
(fabs.f64 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) -2) (exp.f64 (*.f64 im 4))))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (fabs.f64 (exp.f64 (*.f64 im 4))))
(fabs.f64 (/.f64 (neg.f64 (*.f64 2 (exp.f64 (+.f64 im im)))) (exp.f64 (*.f64 im 4))))
(fabs.f64 (/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 (*.f64 im 4)))))
(fabs.f64 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) -2) (exp.f64 (*.f64 im 4))))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (fabs.f64 (exp.f64 (*.f64 im 4))))
(-.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 0)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (exp.f64 (+.f64 im im)) 1))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (+.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 1/2 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (/.f64 2 (exp.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1/2) 2)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 1/2)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (neg.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (*.f64 1/2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (/.f64 4 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (*.f64 1/2 (+.f64 1 (exp.f64 (+.f64 im im)))))
(*.f64 1/2 (*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 4 (exp.f64 (+.f64 im im)))))
(*.f64 1/2 (+.f64 4 (/.f64 4 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 (neg.f64 (+.f64 im im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(*.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 4 (exp.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (+.f64 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (exp.f64 (+.f64 im im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 (exp.f64 (+.f64 im im)) (/.f64 (exp.f64 (*.f64 im 4)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 1 (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 2 (exp.f64 (+.f64 im im))) (/.f64 2 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (/.f64 (exp.f64 im) (exp.f64 im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (exp.f64 im) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 1/2 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 (exp.f64 im) 1/2) (/.f64 (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 im)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 (exp.f64 im) 1/2))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 1 (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 4 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 4 (+.f64 (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 1 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 4 (/.f64 (/.f64 2 (exp.f64 (neg.f64 (+.f64 im im)))) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 4 (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 (*.f64 2 (exp.f64 (+.f64 im im))) (/.f64 (*.f64 2 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 8 (+.f64 (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im))))) (/.f64 2 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 8 (/.f64 (*.f64 (exp.f64 (+.f64 im im)) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 8 (/.f64 (*.f64 (*.f64 2 (exp.f64 (+.f64 im im))) 4) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 8 (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/4) 2)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (exp.f64 im))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (neg.f64 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 (*.f64 im 4))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (*.f64 2 (+.f64 1 (exp.f64 (+.f64 im im)))) (/.f64 (neg.f64 (exp.f64 (*.f64 im 4))) (neg.f64 (exp.f64 (+.f64 im im)))))
(/.f64 (neg.f64 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) (*.f64 (+.f64 1 (exp.f64 (+.f64 im im))) -2)))
(/.f64 (neg.f64 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) (*.f64 2 (-.f64 -1 (exp.f64 (+.f64 im im))))))
(/.f64 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4) 4)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (exp.f64 (+.f64 im im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 4 (exp.f64 im)) (/.f64 (*.f64 2 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (fabs.f64 (exp.f64 im)) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) (fabs.f64 (exp.f64 im))) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (/.f64 (exp.f64 (*.f64 im 4)) 2) (exp.f64 (+.f64 im im))))
(*.f64 (exp.f64 (+.f64 im im)) (/.f64 (+.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (exp.f64 (*.f64 im 4)) 2)))
(/.f64 (/.f64 2 (exp.f64 im)) (/.f64 (exp.f64 im) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (neg.f64 (/.f64 2 (exp.f64 im))) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 4) (*.f64 2 (exp.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) 8)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 (*.f64 (exp.f64 im) 1/2) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 -2 (exp.f64 im)) (/.f64 (neg.f64 (exp.f64 im)) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (exp.f64 (neg.f64 (+.f64 im im))) (/.f64 1 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 4 (exp.f64 (+.f64 im im))) (/.f64 4 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 1 (exp.f64 (neg.f64 (+.f64 im im)))) 1/2)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (*.f64 4 (/.f64 2 (exp.f64 im))) (/.f64 (*.f64 (exp.f64 im) 4) (+.f64 (exp.f64 (+.f64 im im)) 1)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (*.f64 (*.f64 (exp.f64 im) 1/2) (*.f64 (exp.f64 im) 1/2)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 im) (/.f64 4 (exp.f64 im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 2) (/.f64 (exp.f64 (+.f64 im im)) 4))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (/.f64 (exp.f64 im) 4))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 2) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (/.f64 (exp.f64 im) (exp.f64 im)) (/.f64 1 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4)) (*.f64 2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 4))) 16)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (+.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1)) (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (+.f64 (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2)) (neg.f64 (*.f64 (exp.f64 (+.f64 im im)) 1/2))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) 1/2) (exp.f64 (+.f64 im im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 (exp.f64 im) 1/2)) (exp.f64 im))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (/.f64 (exp.f64 im) 4))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 im))) (*.f64 1/2 (*.f64 (exp.f64 im) 1/2)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (*.f64 2 (exp.f64 (+.f64 im im)))) 1/4)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) 1) (fabs.f64 (exp.f64 im))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) 1/2) (*.f64 2 (exp.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 im) 1/2)) (*.f64 2 (exp.f64 im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 (exp.f64 (+.f64 im im)) 4)) 1/4)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (fabs.f64 (exp.f64 im))) (fabs.f64 (exp.f64 im)))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1)) (*.f64 2 (fabs.f64 (exp.f64 im)))) (*.f64 1/2 (fabs.f64 (exp.f64 im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1/2) (exp.f64 im))
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 2 (exp.f64 im))) 1/4)
(/.f64 2 (/.f64 (exp.f64 im) (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))))
(*.f64 2 (/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) 1))) (neg.f64 (exp.f64 (+.f64 im im))))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(/.f64 (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (neg.f64 (*.f64 (exp.f64 im) 1/2)))
(/.f64 (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (neg.f64 (*.f64 1/2 (exp.f64 im))))
(/.f64 (neg.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (exp.f64 im) -1/2))
(/.f64 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (neg.f64 (*.f64 (exp.f64 im) -1/2)))
(/.f64 (neg.f64 (neg.f64 (+.f64 (exp.f64 (+.f64 im im)) 1))) (*.f64 (exp.f64 (+.f64 im im)) 1/2))
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))
(pow.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) 1)
(+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im))))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (pow.f64 im 2))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series0.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite350.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
3096×rational.json-simplify-35
2050×rational.json-simplify-51
1862×rational.json-simplify-2
994×exponential.json-3
994×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29513
317913
430313
564213
6147113
7240813
8288913
9345513
10418013
11486013
12524313
13524313
14556713
15602613
16676013
17725113
18730513
19730513
Stop Event
node limit
Counts
1 → 18
Calls
Call 1
Inputs
(*.f64 1/2 (pow.f64 im 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 im 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (pow.f64 im 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 2) 1/4) (*.f64 (pow.f64 im 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (pow.f64 im 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 im 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 im 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 im 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 8) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 16) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 32) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 64) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 2) 128) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 128)) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 128) 4)) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 4) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)))))

simplify342.0ms (2.8%)

Algorithm
egg-herbie
Rules
4530×rational.json-simplify-51
1996×rational.json-simplify-35
1036×rational.json-simplify-2
1012×rational.json-simplify-1
982×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051234
1135234
2255234
3635234
41674234
52849234
63400234
73527234
83613234
93678234
103742234
113806234
123870234
133934234
143998234
154062234
164126234
174190234
184254234
194318234
207896234
Stop Event
node limit
Counts
18 → 19
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 (pow.f64 im 2)) 0)
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) 1/4) (*.f64 (pow.f64 im 2) 1/4))
(-.f64 (*.f64 1/2 (pow.f64 im 2)) 0)
(/.f64 (pow.f64 im 2) 2)
(/.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(/.f64 (*.f64 2 (pow.f64 im 2)) 4)
(/.f64 (*.f64 (pow.f64 im 2) 4) 8)
(/.f64 (*.f64 (pow.f64 im 2) 8) 16)
(/.f64 (*.f64 (pow.f64 im 2) 16) 32)
(/.f64 (*.f64 (pow.f64 im 2) 32) 64)
(/.f64 (*.f64 (pow.f64 im 2) 64) 128)
(/.f64 (*.f64 (pow.f64 im 2) 128) 256)
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 128)) 512)
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 1024)
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 128) 4)) 2048)
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 4) 4096)
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
Outputs
(+.f64 (*.f64 1/2 (pow.f64 im 2)) 0)
(*.f64 1/2 (pow.f64 im 2))
(+.f64 0 (*.f64 1/2 (pow.f64 im 2)))
(*.f64 1/2 (pow.f64 im 2))
(+.f64 (*.f64 (pow.f64 im 2) 1/4) (*.f64 (pow.f64 im 2) 1/4))
(*.f64 1/2 (pow.f64 im 2))
(-.f64 (*.f64 1/2 (pow.f64 im 2)) 0)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (pow.f64 im 2) 2)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (pow.f64 im 2)) 4)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 4) 8)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 8) 16)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 16) 32)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 32) 64)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 64) 128)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (pow.f64 im 2) 128) 256)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 2) 128)) 512)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 1024)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (pow.f64 im 2) 128) 4)) 2048)
(*.f64 1/2 (pow.f64 im 2))
(/.f64 (*.f64 (*.f64 (*.f64 (pow.f64 im 2) 128) 4) 4) 4096)
(*.f64 1/2 (pow.f64 im 2))
(pow.f64 (*.f64 1/2 (pow.f64 im 2)) 1)
(*.f64 1/2 (pow.f64 im 2))

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
0.0b
(+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im)))
Compiler

Compiled 36 to 24 computations (33.3% saved)

series2.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite137.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1300×rational.json-simplify-35
1172×exponential.json-3
1172×rational.json-1
1172×rational.json-2
1172×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
18944
218544
337144
469744
5156044
6295944
7429944
8557844
9687744
Stop Event
node limit
Counts
2 → 35
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)) (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 re) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)))))

simplify459.0ms (3.8%)

Algorithm
egg-herbie
Rules
3130×rational.json-simplify-2
2048×rational.json-simplify-35
1298×rational.json-simplify-53
1284×rational.json-simplify-1
1204×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01272167
13051981
26921805
324101749
448311749
553531749
655521749
756591749
857951749
959631749
1065021749
1171291749
1273451749
1375431749
1477081749
1577101749
1677101749
1777101749
Stop Event
node limit
Counts
71 → 87
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 1/2 im))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/2 im)))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 1/2 im) (*.f64 1/12 (pow.f64 im 3)))))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2)))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2))))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2)))))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) im)))
(+.f64 (*.f64 1/4 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) im))))
(+.f64 (*.f64 1/4 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/12 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (cos.f64 re) im)))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(-.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 0)
(*.f64 1/2 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))))
(*.f64 1 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(*.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))))
(*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 1/2)
(*.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))
(*.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))
(*.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))) 2)
(*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)
(/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(/.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 2)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))))) 128)
(pow.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)
(+.f64 0 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)))
(+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)) (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))))
(-.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)
(/.f64 (*.f64 (cos.f64 re) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) 2)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 4)) 4)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 8)
(/.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))))) 128)
(pow.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)
Outputs
1
(+.f64 1 (*.f64 1/2 im))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/2 im)))
(+.f64 1 (+.f64 (*.f64 1/2 im) (*.f64 1/4 (pow.f64 im 2))))
(+.f64 (*.f64 1/2 im) (+.f64 1 (*.f64 1/4 (pow.f64 im 2))))
(+.f64 1 (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 (*.f64 1/2 im) (*.f64 1/12 (pow.f64 im 3)))))
(+.f64 1 (+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/12 (pow.f64 im 3)) (*.f64 1/4 (pow.f64 im 2)))))
(+.f64 1 (+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/12 (pow.f64 im 3)))))
(+.f64 (+.f64 1 (*.f64 1/2 im)) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/12 (pow.f64 im 3))))
(+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (+.f64 1 (*.f64 1/12 (pow.f64 im 3)))))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2)))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 2) -1/2))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 -1/2 (pow.f64 re 2)))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (+.f64 1 (*.f64 -1/2 (pow.f64 re 2))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 1/24 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2))))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 2) -1/2)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 4) 1/24)))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 -1/2 (pow.f64 re 2))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/24 (pow.f64 re 4))))))
(+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 1/24 (pow.f64 re 4)) (*.f64 -1/2 (pow.f64 re 2))))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (+.f64 1 (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 -1/720 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 6))) (+.f64 (*.f64 1/24 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 4))) (*.f64 -1/2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (pow.f64 re 2)))))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 4) 1/24)) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 2) -1/2)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (pow.f64 re 6) -1/720))))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/24 (pow.f64 re 4))) (+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 -1/2 (pow.f64 re 2))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 -1/720 (pow.f64 re 6)))))))
(+.f64 1/2 (+.f64 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 -1/2 (pow.f64 re 2)))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (*.f64 1/24 (pow.f64 re 4))))))
(+.f64 1/2 (+.f64 (*.f64 1/2 (exp.f64 im)) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (+.f64 (*.f64 -1/720 (pow.f64 re 6)) (+.f64 (*.f64 -1/2 (pow.f64 re 2)) (*.f64 1/24 (pow.f64 re 4)))))))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(cos.f64 re)
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) im)))
(+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im (cos.f64 re))))
(*.f64 (cos.f64 re) (+.f64 1 (*.f64 1/2 im)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 (cos.f64 re) im))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 im (cos.f64 re))) (*.f64 (cos.f64 re) (*.f64 1/4 (pow.f64 im 2)))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (*.f64 im (cos.f64 re))) (*.f64 1/4 (*.f64 (pow.f64 im 2) (cos.f64 re)))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 im) (*.f64 1/4 (pow.f64 im 2)))))
(*.f64 (cos.f64 re) (+.f64 1 (+.f64 (*.f64 1/2 im) (*.f64 1/4 (pow.f64 im 2)))))
(*.f64 (+.f64 1 (+.f64 (*.f64 1/2 im) (*.f64 1/4 (pow.f64 im 2)))) (cos.f64 re))
(+.f64 (*.f64 1/4 (*.f64 (cos.f64 re) (pow.f64 im 2))) (+.f64 (cos.f64 re) (+.f64 (*.f64 1/12 (*.f64 (cos.f64 re) (pow.f64 im 3))) (*.f64 1/2 (*.f64 (cos.f64 re) im)))))
(+.f64 (*.f64 (cos.f64 re) (*.f64 1/4 (pow.f64 im 2))) (+.f64 (*.f64 1/12 (*.f64 (pow.f64 im 3) (cos.f64 re))) (+.f64 (cos.f64 re) (*.f64 1/2 (*.f64 im (cos.f64 re))))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 im 2) (cos.f64 re))) (+.f64 (*.f64 1/2 (*.f64 im (cos.f64 re))) (*.f64 1/12 (*.f64 (pow.f64 im 3) (cos.f64 re))))))
(+.f64 (cos.f64 re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 1/12 (cos.f64 re))) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 im) (*.f64 1/4 (pow.f64 im 2))))))
(+.f64 (cos.f64 re) (*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/12 (pow.f64 im 3))))))
(+.f64 (cos.f64 re) (*.f64 (+.f64 (*.f64 1/2 im) (+.f64 (*.f64 1/4 (pow.f64 im 2)) (*.f64 1/12 (pow.f64 im 3)))) (cos.f64 re)))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(-.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 0)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 1/2 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (exp.f64 im) 1))
(*.f64 1/2 (+.f64 1 (exp.f64 im)))
(*.f64 1 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 1/2)
(*.f64 1/2 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))))
(*.f64 1/2 (+.f64 (exp.f64 im) 1))
(*.f64 1/2 (+.f64 1 (exp.f64 im)))
(*.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 1/4)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 1/4 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4))
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (exp.f64 im)))) 2)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) 2)
(/.f64 (+.f64 (exp.f64 im) 1) 2)
(/.f64 (+.f64 1 (exp.f64 im)) 2)
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) 4)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8) 8)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)) 16)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))) 32)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8)))) 64)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 8))))) 128)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(pow.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 1)
(+.f64 1/2 (*.f64 1/2 (exp.f64 im)))
(+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(+.f64 0 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(+.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))) (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 1/2 (cos.f64 re))))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(+.f64 (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)) (*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) 4) (*.f64 (cos.f64 re) 2)))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(+.f64 (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) (*.f64 (/.f64 (cos.f64 re) 4) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))))
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(-.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 0)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(/.f64 (*.f64 (cos.f64 re) (+.f64 1/2 (+.f64 1/2 (exp.f64 im)))) 2)
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 4)) 4)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(/.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 8)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(/.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)) 16)
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(/.f64 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))) 32)
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8)))) 64)
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (*.f64 (cos.f64 re) 8))))) 128)
(+.f64 (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)) (*.f64 (+.f64 1/2 (+.f64 1/2 (exp.f64 im))) (/.f64 (cos.f64 re) 4)))
(*.f64 (+.f64 (exp.f64 im) 1) (+.f64 (/.f64 (cos.f64 re) 4) (/.f64 (cos.f64 re) 4)))
(*.f64 (cos.f64 re) (/.f64 (+.f64 1 (exp.f64 im)) 2))
(*.f64 1/2 (*.f64 (cos.f64 re) (+.f64 1 (exp.f64 im))))
(pow.f64 (*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re)) 1)
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))

eval85.0ms (0.7%)

Compiler

Compiled 5198 to 3286 computations (36.8% saved)

prune47.0ms (0.4%)

Pruning

15 alts after pruning (3 fresh and 12 done)

PrunedKeptTotal
New2883291
Fresh000
Picked101
Done01212
Total28915304
Error
0.0b
Counts
304 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
1.7b
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
1.3b
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
61.1b
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
2.4b
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
2.3b
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
0.0b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.3b
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
0.0b
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
61.4b
(*.f64 1/2 (pow.f64 im 2))
29.1b
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
29.6b
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
29.3b
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
30.0b
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
29.7b
(*.f64 1/2 2)
1.7b
(cos.f64 re)
Compiler

Compiled 157 to 127 computations (19.1% saved)

regimes52.0ms (0.4%)

Counts
18 → 1
Calls
Call 1
Inputs
(*.f64 1/2 2)
(cos.f64 re)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) 1/2)))
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) (/.f64 1/2 (exp.f64 im)))))
Outputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
Calls

6 calls:

11.0ms
im
9.0ms
re
9.0ms
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
8.0ms
(*.f64 1/2 (cos.f64 re))
7.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.0b1(*.f64 1/2 (cos.f64 re))
0.0b1(cos.f64 re)
0.0b1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 206 to 138 computations (33% saved)

regimes46.0ms (0.4%)

Counts
16 → 1
Calls
Call 1
Inputs
(*.f64 1/2 2)
(cos.f64 re)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) 1/2)))
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 1/2 (*.f64 (cos.f64 re) (pow.f64 im 2))) (cos.f64 re))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Calls

6 calls:

10.0ms
re
8.0ms
im
8.0ms
(*.f64 1/2 (cos.f64 re))
7.0ms
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
7.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.0b1(*.f64 1/2 (cos.f64 re))
0.0b1(cos.f64 re)
0.0b1(+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 176 to 120 computations (31.8% saved)

regimes36.0ms (0.3%)

Counts
14 → 1
Calls
Call 1
Inputs
(*.f64 1/2 2)
(cos.f64 re)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 1) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (*.f64 2 (+.f64 (*.f64 1/2 (exp.f64 im)) 1/2)))
(*.f64 1/2 (*.f64 (+.f64 2 (/.f64 2 (exp.f64 (+.f64 im im)))) (*.f64 (exp.f64 im) 1/2)))
Outputs
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
Calls

4 calls:

10.0ms
re
9.0ms
(*.f64 1/2 (cos.f64 re))
7.0ms
im
6.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
1.3b1re
1.3b1im
1.3b1(*.f64 1/2 (cos.f64 re))
1.3b1(cos.f64 re)
Compiler

Compiled 133 to 94 computations (29.3% saved)

regimes26.0ms (0.2%)

Counts
10 → 1
Calls
Call 1
Inputs
(*.f64 1/2 2)
(cos.f64 re)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(*.f64 (+.f64 1/2 (*.f64 1/2 (exp.f64 im))) (cos.f64 re))
Outputs
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
Calls

4 calls:

7.0ms
(*.f64 1/2 (cos.f64 re))
6.0ms
re
6.0ms
im
5.0ms
(cos.f64 re)
Results
ErrorSegmentsBranch
1.7b1re
1.7b1im
1.7b1(*.f64 1/2 (cos.f64 re))
1.7b1(cos.f64 re)
Compiler

Compiled 84 to 60 computations (28.6% saved)

regimes25.0ms (0.2%)

Accuracy

Total -59.9b remaining (-3566.7%)

Threshold costs -59.9b (-3566.7%)

Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 1/2 2)
(cos.f64 re)
(*.f64 1/2 (pow.f64 im 2))
(*.f64 1/2 (+.f64 2 (pow.f64 im 2)))
(*.f64 1/2 (*.f64 4 (*.f64 (exp.f64 im) 1/2)))
(*.f64 (+.f64 1 (*.f64 1/2 im)) (cos.f64 re))
(*.f64 1/2 (+.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (pow.f64 im 2) (*.f64 1/2 (cos.f64 re)))
Outputs
(cos.f64 re)
Calls

4 calls:

8.0ms
re
6.0ms
(cos.f64 re)
5.0ms
im
4.0ms
(*.f64 1/2 (cos.f64 re))
Results
ErrorSegmentsBranch
1.7b1re
1.7b1im
1.7b1(*.f64 1/2 (cos.f64 re))
1.7b1(cos.f64 re)
Compiler

Compiled 67 to 50 computations (25.4% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026136
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(cos.f64 re)
(*.f64 1/2 2)
Outputs
(*.f64 (cos.f64 re) (+.f64 (*.f64 1/2 (/.f64 1 (exp.f64 im))) (*.f64 1/2 (exp.f64 im))))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (cos.f64 re)) (+.f64 2 (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) 1/2) (cos.f64 re))
(cos.f64 re)
(*.f64 1/2 2)
1
Compiler

Compiled 58 to 46 computations (20.7% saved)

soundness0.0ms (0%)

end40.0ms (0.3%)

Compiler

Compiled 48 to 31 computations (35.4% saved)

Profiling

Loading profile data...