Details

Time bar (total: 9.5s)

analyze60.0ms (0.6%)

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
50%50%50%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
75%74.9%25%0.1%0%0%0%4
75%74.9%25%0.1%0%0%0%5
77.4%74.9%21.9%0.1%3.1%0%0%6
78.7%74.9%20.3%0.1%4.7%0%0%7
80.7%74.9%18%0.1%7%0%0%8
81.7%74.9%16.8%0.1%8.2%0%0%9
82.9%74.9%15.4%0.1%9.6%0%0%10
83.6%74.9%14.7%0.1%10.2%0%0%11
84.3%74.9%14%0.1%11%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample3.5s (36.6%)

Results
2.0s6157×body256valid
632.0ms1391×body1024valid
346.0ms681×body1024infinite
260.0ms705×body512valid
138.0ms339×body512infinite
124.0ms477×body256infinite
2.0msbody2048valid
Bogosity

preprocess49.0ms (0.5%)

Algorithm
egg-herbie
Rules
1408×rational.json-simplify-46
1126×rational.json-simplify-1
1004×rational.json-simplify-2
1004×rational.json-simplify-49
894×rational.json-simplify-61
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
11930
22330
33030
44130
55730
610330
727430
897230
9189430
10383430
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(*.f64 (exp.f64 im) (sin.f64 re))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify123.0ms (1.3%)

Algorithm
egg-herbie
Rules
2150×rational.json-simplify-1
1522×rational.json-simplify-35
1458×rational.json-simplify-26
1008×rational.json-simplify-51
918×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
11315
21515
31915
42515
53415
66115
715215
854815
9154715
10259615
11337415
12561715
13625215
14726315
15746715
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite146.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1392×bool.json-1
1392×bool.json-2
1354×rational.json-1
1354×rational.json-2
1354×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
18215
224515
353115
4109015
5240315
6526915
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (exp.f64 re) (sin.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (exp.f64 re) (sin.f64 im)) (*.f64 (exp.f64 re) (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (exp.f64 re) (sin.f64 im)) (*.f64 (exp.f64 re) (sin.f64 im)))))))

simplify218.0ms (2.3%)

Algorithm
egg-herbie
Rules
2116×rational.json-simplify-2
1766×rational.json-simplify-35
1306×rational.json-simplify-53
938×rational.json-simplify-43
898×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
072754
1169704
2327674
3712664
42468664
53489664
64328664
74538664
85002664
95882664
107021664
117288664
127942664
Stop Event
node limit
Counts
34 → 36
Calls
Call 1
Inputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))
(-.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(/.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 4)) 4)
(/.f64 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8))) 32)
Outputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))) (*.f64 1/6 (*.f64 (sin.f64 im) (pow.f64 re 3))))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (pow.f64 re 3) (*.f64 1/6 (sin.f64 im)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (exp.f64 re) im)
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (*.f64 (exp.f64 re) im)))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (exp.f64 re) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (exp.f64 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (exp.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 (exp.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))) (*.f64 (exp.f64 re) im))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 5) 1/120)) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (exp.f64 re) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))) (*.f64 (exp.f64 re) (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))) (*.f64 -1/5040 (*.f64 (exp.f64 re) (pow.f64 im 7))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 0 (*.f64 (exp.f64 re) (sin.f64 im)))
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (exp.f64 re))
(-.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 0)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 2)) 2)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 4)) 4)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8) 8)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8)) 16)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 8))) 32)
(*.f64 (sin.f64 im) (exp.f64 re))

eval8.0ms (0.1%)

Compiler

Compiled 547 to 309 computations (43.5% saved)

prune7.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New33336
Fresh000
Picked011
Done000
Total33437
Error
0.0b
Counts
37 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
21.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
22.9b
(*.f64 (exp.f64 re) im)
20.7b
(sin.f64 im)
Compiler

Compiled 32 to 22 computations (31.3% saved)

localize3.0ms (0%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 re) im)
Compiler

Compiled 10 to 4 computations (60% saved)

series58.0ms (0.6%)

Counts
1 → 4
Calls

6 calls:

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

rewrite95.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1626×bool.json-1
1626×bool.json-2
1592×rational.json-1
1592×rational.json-2
1142×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
16911
219611
342011
482611
5175611
6373211
7669311
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (exp.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (exp.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 im 8) (exp.f64 re)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (exp.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (exp.f64 re) im) (*.f64 (exp.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (exp.f64 re) im) (*.f64 (exp.f64 re) im))))))

simplify1.3s (14%)

Algorithm
egg-herbie
Rules
7730×rational.json-simplify-41
3778×rational.json-simplify-35
2882×rational.json-simplify-2
1822×rational.json-simplify-53
816×rational.json-simplify-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
051233
1116233
2231221
3472215
41369215
52621215
63577215
73700215
83787215
93872215
103954215
114036215
124542215
134767215
144907215
154989215
165071215
175071215
185071215
195153215
205378215
215661215
225796215
235903215
245989215
256071215
266153215
276235215
286317215
296399215
306481215
316862215
326944215
336944215
Stop Event
node limit
Counts
15 → 25
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
(+.f64 (*.f64 (exp.f64 re) im) 0)
(+.f64 0 (*.f64 (exp.f64 re) im))
(+.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))
(-.f64 (*.f64 (exp.f64 re) im) 0)
(/.f64 (*.f64 (exp.f64 re) im) 1)
(/.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)
(/.f64 (*.f64 (*.f64 im 8) (exp.f64 re)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))))) 64)
Outputs
im
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im))
(+.f64 (*.f64 im re) (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))))
(+.f64 im (+.f64 (*.f64 im re) (*.f64 1/2 (*.f64 im (pow.f64 re 2)))))
(+.f64 im (*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (+.f64 (*.f64 re im) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 re 2) im)) im)))
(+.f64 (*.f64 im re) (+.f64 (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))) (*.f64 1/6 (*.f64 im (pow.f64 re 3)))))
(+.f64 (*.f64 im re) (+.f64 (+.f64 im (*.f64 1/2 (*.f64 im (pow.f64 re 2)))) (*.f64 im (*.f64 (pow.f64 re 3) 1/6))))
(+.f64 (+.f64 im (*.f64 (pow.f64 re 2) (*.f64 im 1/2))) (*.f64 im (+.f64 re (*.f64 1/6 (pow.f64 re 3)))))
(+.f64 im (*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 im (*.f64 im (+.f64 re (+.f64 (*.f64 1/6 (pow.f64 re 3)) (*.f64 1/2 (pow.f64 re 2))))))
(+.f64 (*.f64 (exp.f64 re) im) 0)
(*.f64 im (exp.f64 re))
(+.f64 0 (*.f64 (exp.f64 re) im))
(*.f64 im (exp.f64 re))
(+.f64 (*.f64 (exp.f64 re) (*.f64 im 1/2)) (*.f64 (exp.f64 re) (*.f64 im 1/2)))
(*.f64 im (exp.f64 re))
(-.f64 (*.f64 (exp.f64 re) im) 0)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) im) 1)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (+.f64 im im)) 2)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 im 4)) 4)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 (*.f64 im 8) (exp.f64 re)) 8)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))) 16)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) 32)
(*.f64 im (exp.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 im 8) (exp.f64 re))))) 64)
(*.f64 im (exp.f64 re))

localize544.0ms (5.7%)

Local error

Found 4 expressions with local error:

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

Compiled 46 to 29 computations (37% saved)

series5.0ms (0.1%)

Counts
4 → 60
Calls

18 calls:

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

rewrite109.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1880×bool.json-1
1880×bool.json-2
1186×bool.json-3
1032×rational.json-1
1032×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013100
113096
233596
368896
4147996
5340596
6714096
Stop Event
node limit
Counts
4 → 64
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re (pow.f64 re 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 re 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (pow.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 (pow.f64 re 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (pow.f64 re 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 re 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (pow.f64 re 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 re 2) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 re 2) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 re 2) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/2 (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/2 (pow.f64 re 2)) (*.f64 1/2 (pow.f64 re 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 re (+.f64 re (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 re 2) (+.f64 re re)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2) (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))))))

simplify372.0ms (3.9%)

Algorithm
egg-herbie
Rules
2548×rational.json-simplify-2
1870×rational.json-simplify-35
1686×rational.json-simplify-53
948×rational.json-simplify-1
864×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01683944
13803872
28493824
318853640
432923640
541983640
644603640
748053640
853903640
957083640
1067903640
1175483640
1277403640
Stop Event
node limit
Counts
124 → 115
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im) (+.f64 (*.f64 -1/5040 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 7))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 5))))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) re)
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
re
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im))
(+.f64 (*.f64 (+.f64 1/120 (*.f64 1/120 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)))
(+.f64 (*.f64 (+.f64 1/120 (*.f64 1/120 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re (pow.f64 re 2)))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))))) 32)
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 0)
(+.f64 0 (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 (pow.f64 re 2) 1/4))
(-.f64 (*.f64 1/2 (pow.f64 re 2)) 0)
(/.f64 (pow.f64 re 2) 2)
(/.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(/.f64 (*.f64 2 (pow.f64 re 2)) 4)
(/.f64 (*.f64 (pow.f64 re 2) 4) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 re 2) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 re 2) 4))) 32)
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 0)
(*.f64 1/2 (+.f64 re (+.f64 re (pow.f64 re 2))))
(*.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re re)))
(*.f64 2 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)
(*.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 1/2)
(*.f64 4 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))
(*.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 1/4)
(*.f64 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 2)
(*.f64 1/4 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))
(*.f64 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 re re)) 1/2)
(/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)
(/.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 2)
(/.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 32)
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 0)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))
(*.f64 2 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(*.f64 (*.f64 (sin.f64 im) 2) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 1/2)
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (sin.f64 im))
(*.f64 4 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 1/4)
(*.f64 (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 1/2))
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)) 2)
(*.f64 1/4 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 2))
(*.f64 (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2) (*.f64 (sin.f64 im) 2))
(*.f64 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 2)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)))) 32)
Outputs
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im)
(*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im))
(+.f64 (*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 5)))))
(+.f64 (*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))
(+.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) im) (+.f64 (*.f64 -1/5040 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 7))) (*.f64 1/120 (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re) (pow.f64 im 5))))))
(+.f64 (*.f64 im (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (+.f64 (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))
(+.f64 (*.f64 (pow.f64 im 7) (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (+.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(+.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (sin.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (sin.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
re
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) re)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)
(*.f64 im (+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im))
(+.f64 (*.f64 im (+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)))
(+.f64 (*.f64 (+.f64 1/120 (*.f64 1/120 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im)))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (+.f64 (*.f64 im (+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))))
(+.f64 (*.f64 (+.f64 1/120 (*.f64 1/120 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re))) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 1 re)) im))))
(+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (+.f64 (*.f64 im (+.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/5040)))))
(+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/5040)))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (+.f64 (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/5040))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/5040)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1))) (+.f64 (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 1/120 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 -1/6 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/6)) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 -1/5040 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1/5040)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) re)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (sin.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))
(*.f64 (sin.f64 im) (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (*.f64 (pow.f64 re 2) (sin.f64 im)))
(*.f64 (pow.f64 re 2) (*.f64 1/2 (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 1/2 (*.f64 (sin.f64 im) (pow.f64 re 2)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 0)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 1)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re (pow.f64 re 2)))) 2)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 8)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 16)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))))) 32)
(*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 (*.f64 1/2 (pow.f64 re 2)) 0)
(*.f64 1/2 (pow.f64 re 2))
(+.f64 0 (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (pow.f64 re 2))
(+.f64 (*.f64 (pow.f64 re 2) 1/4) (*.f64 (pow.f64 re 2) 1/4))
(*.f64 1/2 (pow.f64 re 2))
(-.f64 (*.f64 1/2 (pow.f64 re 2)) 0)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (pow.f64 re 2) 2)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (*.f64 1/2 (pow.f64 re 2)) 1)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (*.f64 2 (pow.f64 re 2)) 4)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (*.f64 (pow.f64 re 2) 4) 8)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 re 2) 4)) 16)
(*.f64 1/2 (pow.f64 re 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 re 2) 4))) 32)
(*.f64 1/2 (pow.f64 re 2))
(-.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 0)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (+.f64 re (+.f64 re (pow.f64 re 2))))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/2 (+.f64 (pow.f64 re 2) (+.f64 re re)))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 2 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2))))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 1/2)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 4 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 1/4)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (*.f64 1/2 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) 2)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 1/4 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(*.f64 (+.f64 (pow.f64 re 2) (+.f64 re re)) 1/2)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 1)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (+.f64 re (+.f64 re (pow.f64 re 2))) 2)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4) 4)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)) 8)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) 16)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 re (*.f64 1/2 (pow.f64 re 2))) 4)))) 32)
(+.f64 re (*.f64 1/2 (pow.f64 re 2)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 0)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 2) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 1/2)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 4 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 1/4)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 1/2))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2)) 2)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 1/4 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (*.f64 1/2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) (*.f64 (sin.f64 im) 2))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (/.f64 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)) 2) (*.f64 (sin.f64 im) 2))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(*.f64 (/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 1)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1)))) 2)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4) 4)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)) 8)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) 16)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 (*.f64 1/2 (pow.f64 re 2)) 1))) 4)))) 32)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 (*.f64 1/2 (pow.f64 re 2)) (+.f64 re 1)))

eval528.0ms (5.5%)

Compiler

Compiled 2699 to 1848 computations (31.5% saved)

prune346.0ms (3.6%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1373140
Fresh000
Picked011
Done033
Total1377144
Error
0.0b
Counts
144 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
43.8b
(+.f64 (*.f64 re im) im)
21.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
22.9b
(*.f64 (exp.f64 re) im)
20.7b
(sin.f64 im)
43.5b
im
Compiler

Compiled 50 to 34 computations (32% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 im) (+.f64 re 1))
Compiler

Compiled 16 to 9 computations (43.8% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite81.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1608×bool.json-1
1608×bool.json-2
1564×rational.json-1
1564×rational.json-2
1068×bool.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
19717
228217
358317
4120417
5269917
6601517
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 im) (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1)))))))

simplify273.0ms (2.9%)

Algorithm
egg-herbie
Rules
2054×rational.json-simplify-2
1920×rational.json-simplify-1
1772×rational.json-simplify-35
1240×rational.json-simplify-48
744×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061754
1142718
2267694
3508682
41641682
52961682
63796682
74237682
84878682
95894682
106402682
116642682
127044682
137376682
Stop Event
node limit
Counts
34 → 32
Calls
Call 1
Inputs
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
Outputs
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (+.f64 1 re) im) (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5)))))
(+.f64 (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (pow.f64 im 5) (*.f64 (+.f64 1 re) 1/120)))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 1 re) (pow.f64 im 5))) (+.f64 (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 -1/5040 (*.f64 (+.f64 1 re) (pow.f64 im 7))))))
(+.f64 (*.f64 (pow.f64 im 5) (*.f64 (+.f64 1 re) 1/120)) (+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7))) (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 1 re) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 1 re) (sin.f64 im))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (sin.f64 im) (*.f64 re (sin.f64 im)))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 1 re) (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (+.f64 1 re) (sin.f64 im))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (+.f64 1 re) (sin.f64 im))

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 re im) im)
Compiler

Compiled 12 to 4 computations (66.7% saved)

series2.0ms (0%)

Counts
1 → 21
Calls

6 calls:

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

rewrite97.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1810×bool.json-1
1810×bool.json-2
1776×rational.json-1
1144×bool.json-3
1100×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
16113
217913
339913
483813
5185013
6396813
7688613
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(+.f64 (*.f64 re im) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 im (*.f64 re im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 im (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 im 1/2) (*.f64 (*.f64 re im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im im) (*.f64 (+.f64 re 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im im) (/.f64 (+.f64 re 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 im (*.f64 re im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 re 2)) (*.f64 im 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 im (*.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 re (+.f64 im im)) (+.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 1/2) (+.f64 re (+.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 1/2) (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 im (*.f64 re im)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 1/2) (+.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 im (*.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re 1) 2) (+.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 im (*.f64 re im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 im (*.f64 re im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 im (*.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 im (*.f64 re im)) (+.f64 im (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 im (*.f64 re im)) (+.f64 im (*.f64 re im)))))))

simplify616.0ms (6.5%)

Algorithm
egg-herbie
Rules
2032×rational.json-simplify-2
1934×rational.json-simplify-1
1474×rational.json-simplify-35
1286×rational.json-simplify-41
1134×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079652
1166652
2355652
3855652
41724652
53603652
63865652
74078652
84298652
94571652
105036652
116401652
126754652
137092652
147421652
157765652
Stop Event
node limit
Counts
52 → 39
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(*.f64 re im)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 re im))
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(-.f64 (+.f64 im (*.f64 re im)) 0)
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 im (*.f64 re im)) 1)
(*.f64 1 (+.f64 im (*.f64 re im)))
(*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 1/2))
(*.f64 2 (+.f64 (*.f64 im 1/2) (*.f64 (*.f64 re im) 1/2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) im))
(*.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 1/2)
(*.f64 (+.f64 im im) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (+.f64 im im) (/.f64 (+.f64 re 1) 2))
(*.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (+.f64 re 1) im)
(*.f64 4 (/.f64 (+.f64 im (*.f64 re im)) 4))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (+.f64 re (+.f64 re 2)) (*.f64 im 1/2))
(*.f64 1/2 (*.f64 (+.f64 im (*.f64 re im)) 2))
(*.f64 1/2 (+.f64 (*.f64 re (+.f64 im im)) (+.f64 im im)))
(*.f64 (*.f64 im 1/2) (+.f64 re (+.f64 re 2)))
(*.f64 (*.f64 im 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 (+.f64 im (*.f64 re im)) 1/2) 2)
(*.f64 (*.f64 (+.f64 re 1) 1/2) (+.f64 im im))
(*.f64 1/4 (*.f64 im (*.f64 (+.f64 re 1) 4)))
(*.f64 (/.f64 (+.f64 re 1) 2) (+.f64 im im))
(*.f64 (/.f64 (+.f64 im (*.f64 re im)) 4) 4)
(/.f64 (+.f64 im (*.f64 re im)) 1)
(/.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 2)
(/.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (+.f64 im (*.f64 re im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)))) 64)
Outputs
im
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(-.f64 (+.f64 im (*.f64 re im)) 0)
(+.f64 im (*.f64 im re))
(*.f64 im (+.f64 re 1))
(*.f64 im (-.f64 re -1))
(*.f64 (+.f64 im (*.f64 re im)) 1)
(+.f64 im (*.f64 im re))
(*.f64 1 (+.f64 im (*.f64 re im)))
(+.f64 im (*.f64 im re))
(*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 1/2))
(+.f64 im (*.f64 im re))
(*.f64 2 (+.f64 (*.f64 im 1/2) (*.f64 (*.f64 re im) 1/2)))
(+.f64 im (*.f64 im re))
(*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 1/2) im))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 1/2)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 im im) (*.f64 (+.f64 re 1) 1/2))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 im im) (/.f64 (+.f64 re 1) 2))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 re 1) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 4 (/.f64 (+.f64 im (*.f64 re im)) 4))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (+.f64 re (+.f64 re 2)) (*.f64 im 1/2))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 1/2 (*.f64 (+.f64 im (*.f64 re im)) 2))
(+.f64 im (*.f64 im re))
(*.f64 1/2 (+.f64 (*.f64 re (+.f64 im im)) (+.f64 im im)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 1/2) (+.f64 re (+.f64 re 2)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (*.f64 im 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (*.f64 (+.f64 im (*.f64 re im)) 1/2) 2)
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (+.f64 im im))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 1/4 (*.f64 im (*.f64 (+.f64 re 1) 4)))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (/.f64 (+.f64 re 1) 2) (+.f64 im im))
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(*.f64 (/.f64 (+.f64 im (*.f64 re im)) 4) 4)
(+.f64 im (*.f64 im re))
(/.f64 (+.f64 im (*.f64 re im)) 1)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 (+.f64 im (*.f64 re im)) 2) 2)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 im (*.f64 re im)) 8) 8)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)) 16)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) 32)
(+.f64 im (*.f64 im re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 im (*.f64 re im)) 8)))) 64)
(+.f64 im (*.f64 im re))

eval15.0ms (0.2%)

Compiler

Compiled 808 to 518 computations (35.9% saved)

prune13.0ms (0.1%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New69271
Fresh011
Picked011
Done055
Total69978
Error
0.0b
Counts
78 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
43.8b
(+.f64 (*.f64 re im) im)
21.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
22.9b
(*.f64 (exp.f64 re) im)
61.2b
(*.f64 re im)
20.7b
(sin.f64 im)
43.5b
im
Compiler

Compiled 67 to 46 computations (31.3% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 re (+.f64 re 2))
0.1b
(*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2)))
Compiler

Compiled 33 to 19 computations (42.4% saved)

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite84.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1762×bool.json-1
1762×bool.json-2
1724×rational.json-1
1166×bool.json-3
878×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
110236
228036
357436
4124736
5290436
6654636
Stop Event
node limit
Counts
2 → 29
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2)))
(+.f64 re (+.f64 re 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 (+.f64 re 4) (*.f64 re 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 re (+.f64 re 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re (+.f64 re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 re (+.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re (+.f64 re 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 re (+.f64 re 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 re (+.f64 re 2)) (+.f64 re (+.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 re (+.f64 re 2)) (+.f64 re (+.f64 re 2)))))))

simplify310.0ms (3.3%)

Algorithm
egg-herbie
Rules
2714×rational.json-simplify-2
1930×rational.json-simplify-35
1284×rational.json-simplify-53
932×rational.json-simplify-1
910×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0951385
12011331
24501295
313941277
428261277
535501277
637541277
739511277
844051277
952831277
1064731277
1174231277
1278161277
Stop Event
node limit
Counts
65 → 68
Calls
Call 1
Inputs
(*.f64 (+.f64 2 (*.f64 2 re)) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im)))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 2 (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
2
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 (+.f64 re 4) (*.f64 re 3))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)
(-.f64 (+.f64 re (+.f64 re 2)) 0)
(*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))
(*.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(*.f64 (+.f64 re (+.f64 re 2)) 1)
(*.f64 1 (+.f64 re (+.f64 re 2)))
(*.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)
(*.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))
(*.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(/.f64 (+.f64 re (+.f64 re 2)) 1)
(/.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)
Outputs
(*.f64 (+.f64 2 (*.f64 2 re)) im)
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (*.f64 (+.f64 2 (*.f64 2 re)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/120 (pow.f64 im 5))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 1/120 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7))))))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 3))) (+.f64 (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) im) (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7)))) (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 2 (*.f64 2 re)) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 -1/5040 (*.f64 (+.f64 2 (*.f64 2 re)) (pow.f64 im 7))) (*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 2 (*.f64 2 re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(*.f64 2 (*.f64 re (sin.f64 im)))
(*.f64 (*.f64 2 re) (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) re))
(*.f64 2 (*.f64 re (sin.f64 im)))
(*.f64 (*.f64 2 re) (sin.f64 im))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
(+.f64 (*.f64 2 (sin.f64 im)) (*.f64 2 (*.f64 (sin.f64 im) re)))
(*.f64 (+.f64 2 (*.f64 2 re)) (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1)))
2
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(*.f64 2 re)
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 2 (*.f64 2 re))
(+.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 1/2)))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 0)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 1)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (sin.f64 im) (+.f64 (+.f64 re 4) (*.f64 re 3))) 2)
(*.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) (/.f64 (sin.f64 im) 2))
(*.f64 (+.f64 4 (+.f64 re (*.f64 re 3))) (/.f64 (sin.f64 im) 2))
(*.f64 (sin.f64 im) (/.f64 (+.f64 4 (+.f64 re (*.f64 re 3))) 2))
(*.f64 (+.f64 re (+.f64 4 (*.f64 re 3))) (/.f64 (sin.f64 im) 2))
(*.f64 (sin.f64 im) (/.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re (+.f64 re 2)) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8) 8)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 re (+.f64 2 re)))
(*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re)))
(-.f64 (+.f64 re (+.f64 re 2)) 0)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 1/2))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (+.f64 (*.f64 (+.f64 re 2) 1/2) (*.f64 re 1/2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 2 (+.f64 (*.f64 re 1/2) (*.f64 (+.f64 re 2) 1/2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (+.f64 re (+.f64 re 2)) 1)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1 (+.f64 re (+.f64 re 2)))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 1/2)
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 1/2 (+.f64 4 (+.f64 re (*.f64 re 3))))
(*.f64 1/2 (+.f64 re (+.f64 4 (*.f64 re 3))))
(*.f64 4 (/.f64 (+.f64 re (+.f64 re 2)) 4))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 1/4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1/2 (+.f64 (+.f64 re 4) (*.f64 re 3)))
(*.f64 1/2 (+.f64 4 (+.f64 re (*.f64 re 3))))
(*.f64 1/2 (+.f64 re (+.f64 4 (*.f64 re 3))))
(*.f64 (*.f64 (+.f64 re (+.f64 re 2)) 1/2) 2)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 1/4 (*.f64 (+.f64 re (+.f64 re 2)) 4))
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(*.f64 (/.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 re (+.f64 re 2)) 1)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 (+.f64 re 4) (*.f64 re 3)) 2)
(/.f64 (+.f64 4 (+.f64 re (*.f64 re 3))) 2)
(/.f64 (+.f64 re (+.f64 4 (*.f64 re 3))) 2)
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 4) 4)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 (+.f64 re (+.f64 re 2)) 8) 8)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) 16)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8)) (*.f64 2 (*.f64 (+.f64 re (+.f64 re 2)) 8))) 32)
(+.f64 re (+.f64 2 re))
(+.f64 2 (+.f64 re re))

eval73.0ms (0.8%)

Compiler

Compiled 1116 to 827 computations (25.9% saved)

prune12.0ms (0.1%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New68068
Fresh011
Picked011
Done077
Total68977
Error
0.0b
Counts
77 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
43.8b
(+.f64 (*.f64 re im) im)
21.0b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
20.8b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
22.9b
(*.f64 (exp.f64 re) im)
61.2b
(*.f64 re im)
20.7b
(sin.f64 im)
43.5b
im
Compiler

Compiled 67 to 46 computations (31.3% saved)

regimes28.0ms (0.3%)

Counts
9 → 1
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 (*.f64 re im) im)
(sin.f64 im)
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (exp.f64 re) (sin.f64 im))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
Calls

5 calls:

6.0ms
re
6.0ms
(*.f64 (exp.f64 re) (sin.f64 im))
6.0ms
(sin.f64 im)
6.0ms
im
2.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.0b1re
0.0b1im
0.0b1(*.f64 (exp.f64 re) (sin.f64 im))
0.0b1(exp.f64 re)
0.0b1(sin.f64 im)
Compiler

Compiled 72 to 39 computations (45.8% saved)

regimes139.0ms (1.5%)

Counts
7 → 2
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 (*.f64 re im) im)
(sin.f64 im)
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
Outputs
(*.f64 (exp.f64 re) im)
(*.f64 (sin.f64 im) (+.f64 re 1))
Calls

4 calls:

64.0ms
im
60.0ms
(sin.f64 im)
10.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.4b2re
10.5b3im
0.4b2(exp.f64 re)
9.8b3(sin.f64 im)
Compiler

Compiled 47 to 26 computations (44.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
0.9999999999889818
Compiler

Compiled 12 to 9 computations (25% saved)

regimes93.0ms (1%)

Counts
5 → 2
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 (*.f64 re im) im)
(sin.f64 im)
(*.f64 (exp.f64 re) im)
Outputs
(*.f64 (exp.f64 re) im)
(sin.f64 im)
Calls

4 calls:

67.0ms
im
13.0ms
(sin.f64 im)
9.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
0.6b2re
10.5b3im
0.6b2(exp.f64 re)
9.9b3(sin.f64 im)
Compiler

Compiled 31 to 17 computations (45.2% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.0
0.9999999999889818
Compiler

Compiled 12 to 9 computations (25% saved)

regimes121.0ms (1.3%)

Counts
4 → 1
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 (*.f64 re im) im)
(sin.f64 im)
Outputs
(sin.f64 im)
Calls

3 calls:

113.0ms
im
4.0ms
(sin.f64 im)
4.0ms
re
Results
ErrorSegmentsBranch
20.7b1re
20.7b1im
20.7b1(sin.f64 im)
Compiler

Compiled 23 to 12 computations (47.8% saved)

regimes8.0ms (0.1%)

Accuracy

Total -18.3b remaining (-42%)

Threshold costs -18.3b (-42%)

Counts
3 → 1
Calls
Call 1
Inputs
im
(*.f64 re im)
(+.f64 (*.f64 re im) im)
Outputs
im
Calls

2 calls:

4.0ms
re
3.0ms
im
Results
ErrorSegmentsBranch
43.5b1re
43.5b1im
Compiler

Compiled 17 to 8 computations (52.9% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01991
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (sin.f64 im))
(sin.f64 im)
im
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 0) (*.f64 (exp.f64 re) im) (sin.f64 im))
(sin.f64 im)
im
Compiler

Compiled 44 to 29 computations (34.1% saved)

soundness0.0ms (0%)

end30.0ms (0.3%)

Compiler

Compiled 36 to 15 computations (58.3% saved)

Profiling

Loading profile data...