Details

Time bar (total: 9.0s)

analyze99.0ms (1.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
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)

sample4.0s (44.8%)

Results
1.6s6256×body256valid
1.4s1338×body1024valid
281.0ms638×body1024infinite
204.0ms659×body512valid
183.0ms492×body256infinite
73.0ms347×body512infinite
2.0msbody2048valid
1.0msbody2048infinite
Bogosity

preprocess46.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)

simplify129.0ms (1.4%)

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 2 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
2 → 28
Calls

9 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))

rewrite90.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1574×rational.json-1
1574×rational.json-2
1574×rational.json-3
1570×rational.json-4
1048×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
15520
213320
328520
454020
5122020
6343520
7685520
Stop Event
node limit
Counts
2 → 45
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(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 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (sin.f64 im) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (sin.f64 im) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (sin.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (sin.f64 im) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sin.f64 im) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (sin.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 (neg.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 (neg.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (sin.f64 (neg.f64 im))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (sin.f64 (neg.f64 im))) (*.f64 2 (sin.f64 (neg.f64 im)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sin.f64 (neg.f64 im)))))))

simplify136.0ms (1.5%)

Algorithm
egg-herbie
Rules
1796×rational.json-simplify-35
1068×rational.json-simplify-48
1036×rational.json-simplify-51
770×rational.json-simplify-2
748×rational.json-simplify-41
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01331061
12921007
2831973
31929959
44429959
55486959
67367959
Stop Event
node limit
Counts
73 → 86
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))
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.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 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)
(pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(+.f64 (sin.f64 im) 0)
(+.f64 0 (sin.f64 im))
(+.f64 -1 (-.f64 (sin.f64 im) -1))
(+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))
(+.f64 (-.f64 (sin.f64 im) -1) -1)
(-.f64 (sin.f64 im) 0)
(-.f64 0 (sin.f64 (neg.f64 im)))
(-.f64 (-.f64 (sin.f64 im) -1) 1)
(*.f64 (sin.f64 im) 1)
(*.f64 1 (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(*.f64 4 (*.f64 (sin.f64 im) 1/4))
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(*.f64 -1 (sin.f64 (neg.f64 im)))
(*.f64 (*.f64 (sin.f64 im) 8) 1/8)
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(*.f64 (sin.f64 (neg.f64 im)) -1)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(*.f64 (*.f64 (sin.f64 im) 1/4) 4)
(/.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(/.f64 (sin.f64 (neg.f64 im)) -1)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(/.f64 (*.f64 2 (sin.f64 (neg.f64 im))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (sin.f64 (neg.f64 im))) (*.f64 2 (sin.f64 (neg.f64 im)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(pow.f64 (sin.f64 im) 1)
(neg.f64 (sin.f64 (neg.f64 im)))
Outputs
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.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 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (*.f64 (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 1 (+.f64 re (*.f64 1/2 (pow.f64 re 2)))))
(*.f64 (sin.f64 im) (+.f64 re (+.f64 1 (*.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) (*.f64 (pow.f64 re 3) 1/6)) (+.f64 (*.f64 (sin.f64 im) re) (*.f64 (sin.f64 im) (*.f64 (pow.f64 re 2) 1/2)))))
(+.f64 (sin.f64 im) (+.f64 (*.f64 (sin.f64 im) (+.f64 re (*.f64 1/2 (pow.f64 re 2)))) (*.f64 (sin.f64 im) (*.f64 1/6 (pow.f64 re 3)))))
(+.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 (*.f64 1/6 (pow.f64 re 3)) (+.f64 re (+.f64 1 (*.f64 1/2 (pow.f64 re 2))))))
(*.f64 (sin.f64 im) (+.f64 (+.f64 re 1) (+.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 -1/6 (pow.f64 im 3))))
(*.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 1/120 (pow.f64 im 5))) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3)))))
(+.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 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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 im (exp.f64 re)) (*.f64 (exp.f64 re) (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (exp.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (exp.f64 re) (*.f64 1/120 (pow.f64 im 5))) (*.f64 (exp.f64 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (pow.f64 im 5) (*.f64 (exp.f64 re) 1/120)) (*.f64 (exp.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.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))
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 im (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.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 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 im (+.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))) (*.f64 -1/5040 (pow.f64 im 7))))
(+.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 (sin.f64 im) (*.f64 (exp.f64 re) 4)) 4)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)) 8)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))) 16)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) 32)
(*.f64 (sin.f64 im) (exp.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 (sin.f64 im) 8))))) 64)
(*.f64 (sin.f64 im) (exp.f64 re))
(pow.f64 (*.f64 (exp.f64 re) (sin.f64 im)) 1)
(*.f64 (sin.f64 im) (exp.f64 re))
(+.f64 (sin.f64 im) 0)
(sin.f64 im)
(+.f64 0 (sin.f64 im))
(sin.f64 im)
(+.f64 -1 (-.f64 (sin.f64 im) -1))
(sin.f64 im)
(+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))
(sin.f64 im)
(+.f64 (-.f64 (sin.f64 im) -1) -1)
(sin.f64 im)
(-.f64 (sin.f64 im) 0)
(sin.f64 im)
(-.f64 0 (sin.f64 (neg.f64 im)))
(sin.f64 im)
(-.f64 (-.f64 (sin.f64 im) -1) 1)
(sin.f64 im)
(*.f64 (sin.f64 im) 1)
(sin.f64 im)
(*.f64 1 (sin.f64 im))
(sin.f64 im)
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(sin.f64 im)
(*.f64 4 (*.f64 (sin.f64 im) 1/4))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(sin.f64 im)
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(sin.f64 im)
(*.f64 -1 (sin.f64 (neg.f64 im)))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 8) 1/8)
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(sin.f64 im)
(*.f64 (sin.f64 (neg.f64 im)) -1)
(sin.f64 im)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 1/4) 4)
(sin.f64 im)
(/.f64 (sin.f64 im) 1)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(sin.f64 im)
(/.f64 (sin.f64 (neg.f64 im)) -1)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(sin.f64 im)
(/.f64 (*.f64 2 (sin.f64 (neg.f64 im))) -2)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (sin.f64 (neg.f64 im))) (*.f64 2 (sin.f64 (neg.f64 im)))) -4)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(sin.f64 im)
(pow.f64 (sin.f64 im) 1)
(sin.f64 im)
(neg.f64 (sin.f64 (neg.f64 im)))
(sin.f64 im)

eval18.0ms (0.2%)

Compiler

Compiled 1093 to 630 computations (42.4% saved)

prune13.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New82486
Fresh000
Picked011
Done000
Total82587
Error
0.0b
Counts
87 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
22.4b
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
22.4b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
23.6b
(*.f64 (exp.f64 re) im)
22.3b
(sin.f64 im)
Compiler

Compiled 34 to 23 computations (32.4% saved)

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 im)
Compiler

Compiled 5 to 3 computations (40% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 10 to 4 computations (60% saved)

series2.0ms (0%)

Counts
1 → 4
Calls

6 calls:

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

rewrite175.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1940×rational.json-1
1218×rational.json-simplify-35
1176×exponential.json-3
1176×rational.json-2
1176×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
14511
210211
321711
437411
580511
6190811
7328211
8428911
9561411
10642511
11779711
Stop Event
node limit
Counts
1 → 15
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 im (exp.f64 (neg.f64 re)))))) (#(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 (exp.f64 re) (*.f64 im 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (exp.f64 re) im) 1)))))

simplify128.0ms (1.4%)

Algorithm
egg-herbie
Rules
1710×rational.json-simplify-38
1464×rational.json-simplify-35
1410×rational.json-simplify-2
884×rational.json-simplify-1
764×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061277
1158277
2305265
3646259
42181259
54714259
66008259
76942259
Stop Event
node limit
Counts
19 → 29
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 im (exp.f64 (neg.f64 re)))
(/.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 (exp.f64 re) (*.f64 im 8)) 8)
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)
(pow.f64 (*.f64 (exp.f64 re) im) 1)
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 (+.f64 im (*.f64 im re)) (*.f64 (pow.f64 re 2) (*.f64 im 1/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 (*.f64 (pow.f64 re 2) (*.f64 im 1/2))) (+.f64 (*.f64 im re) (*.f64 im (*.f64 1/6 (pow.f64 re 3)))))
(+.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/2 (pow.f64 re 2)) (*.f64 1/6 (pow.f64 re 3))))))
(+.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 im (exp.f64 (neg.f64 re)))
(*.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 (exp.f64 re) (*.f64 im 8)) 8)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))) 16)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))) 32)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))) 64)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8)))))) 128)
(*.f64 im (exp.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (exp.f64 re) (*.f64 im 8))))))) 256)
(*.f64 im (exp.f64 re))
(pow.f64 (*.f64 (exp.f64 re) im) 1)
(*.f64 im (exp.f64 re))

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 16 to 9 computations (43.8% saved)

series2.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
re
@inf
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0ms
re
@-inf
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0ms
im
@-inf
(*.f64 (sin.f64 im) (+.f64 re 1))

rewrite85.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
16917
215517
330917
460217
5137917
6335417
7612017
Stop Event
node limit
Counts
1 → 12
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 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 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 2 (+.f64 re re))) 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 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))))

simplify202.0ms (2.2%)

Algorithm
egg-herbie
Rules
2052×rational.json-simplify-2
1886×rational.json-simplify-35
1160×rational.json-simplify-48
944×rational.json-simplify-1
796×exponential.json-simplify-26
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
065788
1157752
2300728
3566716
41969716
54014716
64937716
75396716
86029716
96995716
107518716
Stop Event
node limit
Counts
36 → 34
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 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 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 2 (+.f64 re re))) 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 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
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 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))))
(*.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 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.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 re) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.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 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (+.f64 (*.f64 (+.f64 1 re) im) (*.f64 (+.f64 1 re) (*.f64 (pow.f64 im 7) -1/5040)))))
(+.f64 (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 (+.f64 1 re) 1/120)) (*.f64 (+.f64 1 re) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))))
(*.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 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 (+.f64 re 1) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) 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 2 (+.f64 re re))) 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 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (+.f64 1 re) (sin.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(*.f64 (+.f64 1 re) (sin.f64 im))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (+.f64 1 re) (sin.f64 im))

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series2.0ms (0%)

Counts
2 → 11
Calls

12 calls:

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

rewrite88.0ms (1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0832
15628
213428
329128
458828
5138128
6345628
7638328
Stop Event
node limit
Counts
2 → 56
Calls
Call 1
Inputs
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) re) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) re) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (+.f64 re 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 re 1) (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 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 (sin.f64 im) (+.f64 re 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 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 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))))

simplify184.0ms (2%)

Algorithm
egg-herbie
Rules
2246×rational.json-simplify-2
2132×rational.json-simplify-35
1348×rational.json-simplify-48
940×rational.json-simplify-53
886×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01651387
13881341
28091329
318791329
433901329
543391329
650761329
759301329
871351329
976501329
Stop Event
node limit
Counts
67 → 95
Calls
Call 1
Inputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 (sin.f64 im) re)
(+.f64 (*.f64 (sin.f64 im) re) 0)
(+.f64 0 (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))
(-.f64 (*.f64 (sin.f64 im) re) 0)
(/.f64 (*.f64 (sin.f64 im) re) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)
(/.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)
(pow.f64 (*.f64 (sin.f64 im) re) 1)
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))
(*.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))
(*.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))
(*.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))
(*.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))
(*.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)
(*.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))
(*.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))
(*.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 2))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 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 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
Outputs
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 re im))
(+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im)))
(+.f64 (*.f64 re (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 5) 1/120))))
(+.f64 (*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 re (*.f64 1/120 (pow.f64 im 5))))
(*.f64 re (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))))
(*.f64 re (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/6 (pow.f64 im 3)))))
(+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/120 (*.f64 re (pow.f64 im 5))) (*.f64 re im))))
(+.f64 (+.f64 (*.f64 re (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 re im) (*.f64 re (*.f64 (pow.f64 im 5) 1/120)))) (*.f64 re (*.f64 (pow.f64 im 7) -1/5040)))
(+.f64 (*.f64 re (*.f64 1/120 (pow.f64 im 5))) (+.f64 (*.f64 re (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 re (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 re (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 re 1))
(*.f64 im (-.f64 re -1))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)))
(+.f64 (*.f64 im (-.f64 re -1)) (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (*.f64 (+.f64 1 re) im)))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 im (-.f64 re -1)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 re) 1/6) (pow.f64 im 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/120 re) 1/120) (pow.f64 im 5)) (+.f64 (*.f64 (-.f64 (*.f64 -1/5040 re) 1/5040) (pow.f64 im 7)) (*.f64 (+.f64 1 re) im))))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (+.f64 (*.f64 im (+.f64 re 1)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (+.f64 (*.f64 im (-.f64 re -1)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120)))) (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040))))
(+.f64 (*.f64 im (+.f64 re 1)) (+.f64 (*.f64 (pow.f64 im 7) (-.f64 (*.f64 re -1/5040) 1/5040)) (+.f64 (*.f64 (pow.f64 im 3) (-.f64 (*.f64 re -1/6) 1/6)) (*.f64 (pow.f64 im 5) (+.f64 1/120 (*.f64 re 1/120))))))
(sin.f64 im)
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(*.f64 (sin.f64 im) re)
(*.f64 re (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) re) 0)
(*.f64 re (sin.f64 im))
(+.f64 0 (*.f64 (sin.f64 im) re))
(*.f64 re (sin.f64 im))
(+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) (*.f64 re 1/2)))
(*.f64 re (sin.f64 im))
(-.f64 (*.f64 (sin.f64 im) re) 0)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) re) 1)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re re)) 2)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (sin.f64 im) (*.f64 re 4)) 4)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 (*.f64 re 8) (sin.f64 im)) 8)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))) 16)
(*.f64 re (sin.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) 32)
(*.f64 re (sin.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 re 8) (sin.f64 im))))) 64)
(*.f64 re (sin.f64 im))
(pow.f64 (*.f64 (sin.f64 im) re) 1)
(*.f64 re (sin.f64 im))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (sin.f64 im) (*.f64 1/2 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) (*.f64 re 1/2))))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) 1/2)))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 2 (*.f64 (*.f64 (sin.f64 im) 1/4) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 1/2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 2) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 2 (+.f64 (*.f64 (sin.f64 im) (*.f64 re 1/2)) (*.f64 (sin.f64 im) 1/2)))
(*.f64 2 (*.f64 (sin.f64 im) (+.f64 1/2 (*.f64 re 1/2))))
(*.f64 (*.f64 (sin.f64 im) 2) (*.f64 1/4 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (+.f64 re 1) (sin.f64 im))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (*.f64 (sin.f64 im) 1/4) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 4 (*.f64 (/.f64 (sin.f64 im) 8) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (/.f64 (+.f64 re 1) 4))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/4 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 4) (*.f64 1/8 (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/2 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) (*.f64 (sin.f64 im) (+.f64 re re))))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 8 (*.f64 (/.f64 (sin.f64 im) 8) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 2 (+.f64 re 1)) (*.f64 (sin.f64 im) 1/2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 1/8)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 8) (*.f64 1/8 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) 2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 2 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) (*.f64 1/16 (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 2) (+.f64 re 1)))
(*.f64 -2 (*.f64 (+.f64 re 1) (/.f64 (neg.f64 (sin.f64 im)) 2)))
(*.f64 (-.f64 re -1) (*.f64 -2 (/.f64 (sin.f64 im) -2)))
(*.f64 (+.f64 re 1) (*.f64 -2 (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (/.f64 (neg.f64 (sin.f64 im)) 4) (*.f64 2 (+.f64 re 1))))
(*.f64 -2 (*.f64 (+.f64 re 1) (/.f64 (neg.f64 (sin.f64 im)) 2)))
(*.f64 (-.f64 re -1) (*.f64 -2 (/.f64 (sin.f64 im) -2)))
(*.f64 (+.f64 re 1) (*.f64 -2 (*.f64 (sin.f64 im) -1/2)))
(*.f64 -2 (*.f64 (+.f64 re 1) (*.f64 (sin.f64 im) -1/2)))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 (sin.f64 im) 1/4))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 1/4 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (*.f64 (sin.f64 im) 2))
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(*.f64 (*.f64 (sin.f64 im) (/.f64 (+.f64 re 1) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (*.f64 2 (+.f64 re 1))) 2)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8) 8)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 8)))) 64)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 re 1))
(*.f64 (sin.f64 im) (-.f64 re -1))

eval78.0ms (0.9%)

Compiler

Compiled 4160 to 2643 computations (36.5% saved)

prune53.0ms (0.6%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New3304334
Fresh000
Picked101
Done044
Total3318339
Error
0.0b
Counts
339 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
45.1b
(+.f64 (*.f64 re im) im)
29.5b
(*.f64 (-.f64 (-.f64 (sin.f64 im) -1) 1) (+.f64 re 1))
45.1b
(*.f64 (+.f64 1 re) im)
22.4b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
23.6b
(*.f64 (exp.f64 re) im)
22.3b
(sin.f64 im)
45.0b
im
Compiler

Compiled 54 to 39 computations (27.8% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite182.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1672×rational.json-simplify-1
1502×rational.json-simplify-35
1372×exponential.json-3
1372×rational.json-1
1372×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
213613
324113
444113
593813
6237913
7416013
8523313
9676013
10759513
11759513
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 1 re) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 1 re) im) 1)))))

simplify568.0ms (6.3%)

Algorithm
egg-herbie
Rules
2802×rational.json-simplify-2
2538×rational.json-simplify-35
1518×rational.json-simplify-53
1196×rational.json-simplify-1
1042×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047314
1126314
2236314
3530314
41886314
53651314
64158314
74341314
84528314
94718314
104890314
115888314
126496314
136770314
146770314
156824314
166849314
176932314
186977314
197153314
207297314
217429314
Stop Event
node limit
Counts
26 → 21
Calls
Call 1
Inputs
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) 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 (+.f64 1 re) im) 0)
(+.f64 0 (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(-.f64 (*.f64 (+.f64 1 re) im) 0)
(/.f64 (*.f64 (+.f64 1 re) im) 1)
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)
(pow.f64 (*.f64 (+.f64 1 re) im) 1)
Outputs
im
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) im)
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) 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 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 (+.f64 1 re) im) 0)
(*.f64 im (+.f64 re 1))
(+.f64 0 (*.f64 (+.f64 1 re) im))
(*.f64 im (+.f64 re 1))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(*.f64 im (+.f64 re 1))
(-.f64 (*.f64 (+.f64 1 re) im) 0)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) im) 1)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 4)) 4)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 (+.f64 1 re) (*.f64 im 8)) 8)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))) 16)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))) 32)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))) 64)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8)))))) 128)
(*.f64 im (+.f64 re 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 re) (*.f64 im 8))))))) 256)
(*.f64 im (+.f64 re 1))
(pow.f64 (*.f64 (+.f64 1 re) im) 1)
(*.f64 im (+.f64 re 1))

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 im)
0.1b
(*.f64 (-.f64 (-.f64 (sin.f64 im) -1) 1) (+.f64 re 1))
0.4b
(-.f64 (sin.f64 im) -1)
1.9b
(-.f64 (-.f64 (sin.f64 im) -1) 1)
Compiler

Compiled 31 to 20 computations (35.5% saved)

series1.0ms (0%)

Counts
3 → 48
Calls

12 calls:

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

rewrite97.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
1866×rational.json-simplify-35
1384×rational.json-1
1384×rational.json-2
1384×rational.json-3
1380×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01257
19233
220233
339133
483033
5196733
6406333
7634433
Stop Event
node limit
Counts
3 → 94
Calls
Call 1
Inputs
(-.f64 (-.f64 (sin.f64 im) -1) 1)
(-.f64 (sin.f64 im) -1)
(*.f64 (-.f64 (-.f64 (sin.f64 im) -1) 1) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sin.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (sin.f64 im) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) 2) (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (/.f64 (neg.f64 (sin.f64 im)) 2)) (-.f64 1 (/.f64 (neg.f64 (sin.f64 im)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im))))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 im)))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (neg.f64 (PI.f64)) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (-.f64 (*.f64 (PI.f64) 2) im) (neg.f64 (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (sin.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (sin.f64 im) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) -2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (sin.f64 im) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 (sin.f64 im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sin.f64 im) 3) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (*.f64 (+.f64 (sin.f64 im) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (sin.f64 im) 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (sin.f64 im) 1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 im) 1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 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 1 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)))))

simplify152.0ms (1.7%)

Algorithm
egg-herbie
Rules
1304×rational.json-simplify-35
1226×rational.json-simplify-1
1024×rational.json-simplify-2
882×rational.json-simplify-41
866×rational.json-simplify-49
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02031800
14361764
211921728
335061728
456561728
572771728
679761728
Stop Event
node limit
Counts
142 → 141
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
1
(+.f64 1 im)
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
(*.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 (sin.f64 im) 0)
(+.f64 -1 (+.f64 (sin.f64 im) 1))
(+.f64 (+.f64 (sin.f64 im) 1) -1)
(+.f64 1 (+.f64 (sin.f64 im) -1))
(+.f64 0 (sin.f64 im))
(+.f64 (+.f64 (sin.f64 im) -1) 1)
(+.f64 2 (+.f64 (sin.f64 im) -2))
(+.f64 (*.f64 (sin.f64 im) 2) (neg.f64 (sin.f64 im)))
(+.f64 (+.f64 (sin.f64 im) 2) -2)
(+.f64 (+.f64 (sin.f64 im) -2) 2)
(+.f64 -2 (+.f64 (sin.f64 im) 2))
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2))
(+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))
(+.f64 (-.f64 -1 (/.f64 (neg.f64 (sin.f64 im)) 2)) (-.f64 1 (/.f64 (neg.f64 (sin.f64 im)) 2)))
(*.f64 (sin.f64 im) 1)
(*.f64 -1 (neg.f64 (sin.f64 im)))
(*.f64 1 (sin.f64 im))
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(*.f64 4 (/.f64 (sin.f64 im) 4))
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(/.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im))))) -8)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))))) 128)
(pow.f64 (sin.f64 im) 1)
(neg.f64 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) im))
(sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(sin.f64 (-.f64 (-.f64 (*.f64 (PI.f64) 2) im) (neg.f64 (PI.f64))))
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))
(+.f64 (sin.f64 im) 1)
(+.f64 -1 (+.f64 (sin.f64 im) 2))
(+.f64 (+.f64 (sin.f64 im) 1) 0)
(+.f64 1 (sin.f64 im))
(+.f64 0 (+.f64 (sin.f64 im) 1))
(+.f64 (+.f64 (sin.f64 im) -1) 2)
(+.f64 2 (+.f64 (sin.f64 im) -1))
(+.f64 (+.f64 (sin.f64 im) 2) -1)
(+.f64 (+.f64 (sin.f64 im) -2) 3)
(+.f64 -2 (+.f64 (sin.f64 im) 3))
(+.f64 3 (+.f64 (sin.f64 im) -2))
(+.f64 (+.f64 (sin.f64 im) 3) -2)
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(*.f64 (+.f64 (sin.f64 im) 1) 1)
(*.f64 1 (+.f64 (sin.f64 im) 1))
(*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(*.f64 4 (/.f64 (+.f64 (sin.f64 im) 1) 4))
(*.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))
(*.f64 (/.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(*.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)
(/.f64 (+.f64 (sin.f64 im) 1) 1)
(/.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))) 32)
(/.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))))) 128)
(pow.f64 (+.f64 (sin.f64 im) 1) 1)
(neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)))
(-.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))))) 128)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
Outputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 im (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.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 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
1
(+.f64 1 im)
(+.f64 im 1)
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im 1))
(+.f64 im (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) 1))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) -1))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im 1)))
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (+.f64 1 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))))
(*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 1 re))
(+.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 im (+.f64 1 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 1 re)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))))
(+.f64 (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))))
(*.f64 (+.f64 1 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))) (+.f64 1 re))
(+.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/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))) (+.f64 (+.f64 (*.f64 im (+.f64 1 re)) (*.f64 (+.f64 1 re) (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))) (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (+.f64 1 re))) (*.f64 (+.f64 1 re) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))) (*.f64 (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))) (+.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))
(*.f64 (sin.f64 im) (+.f64 1 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) 0)
(sin.f64 im)
(+.f64 -1 (+.f64 (sin.f64 im) 1))
(sin.f64 im)
(+.f64 (+.f64 (sin.f64 im) 1) -1)
(sin.f64 im)
(+.f64 1 (+.f64 (sin.f64 im) -1))
(sin.f64 im)
(+.f64 0 (sin.f64 im))
(sin.f64 im)
(+.f64 (+.f64 (sin.f64 im) -1) 1)
(sin.f64 im)
(+.f64 2 (+.f64 (sin.f64 im) -2))
(sin.f64 im)
(+.f64 (*.f64 (sin.f64 im) 2) (neg.f64 (sin.f64 im)))
(sin.f64 im)
(+.f64 (+.f64 (sin.f64 im) 2) -2)
(sin.f64 im)
(+.f64 (+.f64 (sin.f64 im) -2) 2)
(sin.f64 im)
(+.f64 -2 (+.f64 (sin.f64 im) 2))
(sin.f64 im)
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2))
(+.f64 (*.f64 (sin.f64 im) 1/2) (*.f64 (sin.f64 im) 1/2))
(sin.f64 im)
(+.f64 (-.f64 -1 (/.f64 (neg.f64 (sin.f64 im)) 2)) (-.f64 1 (/.f64 (neg.f64 (sin.f64 im)) 2)))
(sin.f64 im)
(*.f64 (sin.f64 im) 1)
(sin.f64 im)
(*.f64 -1 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(*.f64 1 (sin.f64 im))
(sin.f64 im)
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(sin.f64 im)
(*.f64 4 (/.f64 (sin.f64 im) 4))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(sin.f64 im)
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(sin.f64 im)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(sin.f64 im)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(sin.f64 im)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(sin.f64 im)
(/.f64 (sin.f64 im) 1)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(sin.f64 im)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(sin.f64 im)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im)))) (*.f64 2 (*.f64 2 (neg.f64 (sin.f64 im))))) -8)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))))) 128)
(sin.f64 im)
(pow.f64 (sin.f64 im) 1)
(sin.f64 im)
(neg.f64 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) im))
(sin.f64 im)
(sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(sin.f64 im)
(sin.f64 (-.f64 (-.f64 (*.f64 (PI.f64) 2) im) (neg.f64 (PI.f64))))
(sin.f64 (-.f64 (-.f64 (*.f64 2 (PI.f64)) im) (neg.f64 (PI.f64))))
(sin.f64 (-.f64 (*.f64 (PI.f64) 3) im))
(sin.f64 (-.f64 (*.f64 3 (PI.f64)) im))
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(+.f64 (sin.f64 im) 1)
(+.f64 -1 (+.f64 (sin.f64 im) 2))
(+.f64 (sin.f64 im) 1)
(+.f64 (+.f64 (sin.f64 im) 1) 0)
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 0 (+.f64 (sin.f64 im) 1))
(+.f64 (sin.f64 im) 1)
(+.f64 (+.f64 (sin.f64 im) -1) 2)
(+.f64 (sin.f64 im) 1)
(+.f64 2 (+.f64 (sin.f64 im) -1))
(+.f64 (sin.f64 im) 1)
(+.f64 (+.f64 (sin.f64 im) 2) -1)
(+.f64 (sin.f64 im) 1)
(+.f64 (+.f64 (sin.f64 im) -2) 3)
(+.f64 (sin.f64 im) 1)
(+.f64 -2 (+.f64 (sin.f64 im) 3))
(+.f64 (sin.f64 im) 1)
(+.f64 3 (+.f64 (sin.f64 im) -2))
(+.f64 (sin.f64 im) 1)
(+.f64 (+.f64 (sin.f64 im) 3) -2)
(+.f64 (sin.f64 im) 1)
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(*.f64 1 (+.f64 (sin.f64 im) 1))
(+.f64 (sin.f64 im) 1)
(*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(+.f64 (sin.f64 im) 1)
(*.f64 4 (/.f64 (+.f64 (sin.f64 im) 1) 4))
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)
(+.f64 (sin.f64 im) 1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)
(+.f64 (sin.f64 im) 1)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))
(+.f64 (sin.f64 im) 1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)
(+.f64 (sin.f64 im) 1)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))
(+.f64 (sin.f64 im) 1)
(*.f64 (/.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 8) 8)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)) 16)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))) 32)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 (neg.f64 (sin.f64 im)) -1) -1)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) 64)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 8))))) 128)
(+.f64 (sin.f64 im) 1)
(pow.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))
(+.f64 (sin.f64 im) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)) (*.f64 (+.f64 1 re) (*.f64 (sin.f64 im) 1/2)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(-.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re (+.f64 re 2))) 2)
(*.f64 (+.f64 re (+.f64 re 2)) (/.f64 (sin.f64 im) 2))
(*.f64 (sin.f64 im) (/.f64 (+.f64 re (+.f64 re 2)) 2))
(*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 re (+.f64 re 2))))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8) 8)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)) 16)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))) 32)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) 64)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 8))))) 128)
(*.f64 (sin.f64 im) (+.f64 1 re))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(*.f64 (sin.f64 im) (+.f64 1 re))

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
im
@-inf
(+.f64 (*.f64 re im) im)
0.0ms
re
@0
(+.f64 (*.f64 re im) im)
0.0ms
im
@0
(+.f64 (*.f64 re im) im)
0.0ms
re
@inf
(+.f64 (*.f64 re im) im)

rewrite193.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1734×rational.json-simplify-1
1654×rational.json-simplify-35
1514×exponential.json-3
1514×rational.json-1
1514×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29413
320913
439713
590713
6246713
7468313
8558213
9693113
10799813
11799813
Stop Event
node limit
Counts
1 → 44
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 im (*.f64 (+.f64 re 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 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 2 (+.f64 re re)) 1/4))))) (#(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 im (/.f64 (+.f64 re 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 im 8) (+.f64 2 (+.f64 re re))))))) (#(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 im 4) (*.f64 (+.f64 re 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 4) (/.f64 (+.f64 re 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 4) (*.f64 1/8 (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 im 8) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 im 1/4)) (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) (*.f64 im 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 re re)) (*.f64 im 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 8) (*.f64 1/8 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 im (+.f64 2 (+.f64 re re))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im (*.f64 (+.f64 re 1) 1/2)) 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 2 (*.f64 im 8)) (*.f64 1/16 (+.f64 re 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 4) (*.f64 im 1/4))))) (#(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) 1/2) (+.f64 im im))))) (#(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 im 1/4) (*.f64 (+.f64 re 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 re 1) (*.f64 im 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 re 1) 1/4) (*.f64 im 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 re 1) 4) (*.f64 im 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 re 1/2)) (+.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 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 re 1) (*.f64 im 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 im (*.f64 re im)) 1)))))

simplify142.0ms (1.6%)

Algorithm
egg-herbie
Rules
1960×rational.json-simplify-35
1296×rational.json-simplify-51
1194×rational.json-simplify-41
1034×rational.json-simplify-2
798×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105845
1250845
2487845
3891845
41635845
54604845
65890845
76574845
87185845
97627845
Stop Event
node limit
Counts
65 → 51
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 im (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 1/2)
(*.f64 (+.f64 im im) (*.f64 (+.f64 re 1) 1/2))
(*.f64 (+.f64 im im) (*.f64 (+.f64 2 (+.f64 re re)) 1/4))
(*.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (+.f64 re 1) im)
(*.f64 4 (*.f64 im (/.f64 (+.f64 re 1) 4)))
(*.f64 4 (*.f64 (/.f64 im 8) (+.f64 2 (+.f64 re re))))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 1/4)
(*.f64 (*.f64 im 4) (*.f64 (+.f64 re 1) 1/4))
(*.f64 (*.f64 im 4) (/.f64 (+.f64 re 1) 4))
(*.f64 (*.f64 im 4) (*.f64 1/8 (+.f64 2 (+.f64 re re))))
(*.f64 8 (*.f64 (/.f64 im 8) (+.f64 re 1)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 im 1/4)) (+.f64 re 1)))
(*.f64 (*.f64 (+.f64 re 1) (*.f64 im 8)) 1/8)
(*.f64 (+.f64 2 (+.f64 re re)) (*.f64 im 1/2))
(*.f64 (*.f64 im 8) (*.f64 1/8 (+.f64 re 1)))
(*.f64 1/2 (*.f64 im (+.f64 2 (+.f64 re re))))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 1/2)) 2)
(*.f64 (*.f64 im 1/2) (+.f64 2 (+.f64 re re)))
(*.f64 (*.f64 2 (*.f64 im 8)) (*.f64 1/16 (+.f64 re 1)))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 im 1/4))
(*.f64 1/4 (*.f64 im (*.f64 (+.f64 re 1) 4)))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (+.f64 im im))
(*.f64 (*.f64 im (/.f64 (+.f64 re 1) 4)) 4)
(*.f64 (*.f64 im 1/4) (*.f64 (+.f64 re 1) 4))
(*.f64 1/8 (*.f64 (+.f64 re 1) (*.f64 im 8)))
(*.f64 (*.f64 (+.f64 re 1) 1/4) (*.f64 im 4))
(*.f64 (/.f64 (+.f64 re 1) 4) (*.f64 im 4))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (+.f64 im im))
(/.f64 (+.f64 im (*.f64 re im)) 1)
(/.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 2)
(/.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (+.f64 re 1) (*.f64 im 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))))) 256)
(pow.f64 (+.f64 im (*.f64 re im)) 1)
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 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(+.f64 im (*.f64 im re))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(*.f64 -1 (*.f64 im (-.f64 (*.f64 -1 re) 1)))
(+.f64 im (*.f64 im re))
(-.f64 (+.f64 im (*.f64 re im)) 0)
(+.f64 im (*.f64 im re))
(*.f64 im (+.f64 re 1))
(+.f64 im (*.f64 im re))
(*.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 im (*.f64 (+.f64 re 1) 1/2)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 1/2)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 im im) (*.f64 (+.f64 re 1) 1/2))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 im im) (*.f64 (+.f64 2 (+.f64 re re)) 1/4))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))
(*.f64 (+.f64 re 1) im)
(+.f64 im (*.f64 im re))
(*.f64 4 (*.f64 im (/.f64 (+.f64 re 1) 4)))
(+.f64 im (*.f64 im re))
(*.f64 4 (*.f64 (/.f64 im 8) (+.f64 2 (+.f64 re re))))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 1/4)
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 4) (*.f64 (+.f64 re 1) 1/4))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 4) (/.f64 (+.f64 re 1) 4))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 4) (*.f64 1/8 (+.f64 2 (+.f64 re re))))
(+.f64 im (*.f64 im re))
(*.f64 8 (*.f64 (/.f64 im 8) (+.f64 re 1)))
(+.f64 im (*.f64 im re))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 im 1/4)) (+.f64 re 1)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 (+.f64 re 1) (*.f64 im 8)) 1/8)
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 2 (+.f64 re re)) (*.f64 im 1/2))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 8) (*.f64 1/8 (+.f64 re 1)))
(+.f64 im (*.f64 im re))
(*.f64 1/2 (*.f64 im (+.f64 2 (+.f64 re re))))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im (*.f64 (+.f64 re 1) 1/2)) 2)
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 1/2) (+.f64 2 (+.f64 re re)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 2 (*.f64 im 8)) (*.f64 1/16 (+.f64 re 1)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 (+.f64 re 1) 4) (*.f64 im 1/4))
(+.f64 im (*.f64 im re))
(*.f64 1/4 (*.f64 im (*.f64 (+.f64 re 1) 4)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 (+.f64 re 1) 1/2) (+.f64 im im))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im (/.f64 (+.f64 re 1) 4)) 4)
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 im 1/4) (*.f64 (+.f64 re 1) 4))
(+.f64 im (*.f64 im re))
(*.f64 1/8 (*.f64 (+.f64 re 1) (*.f64 im 8)))
(+.f64 im (*.f64 im re))
(*.f64 (*.f64 (+.f64 re 1) 1/4) (*.f64 im 4))
(+.f64 im (*.f64 im re))
(*.f64 (/.f64 (+.f64 re 1) 4) (*.f64 im 4))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1/2 (*.f64 re 1/2)) (+.f64 im im))
(*.f64 (+.f64 im im) (+.f64 1/2 (*.f64 re 1/2)))
(/.f64 (+.f64 im (*.f64 re im)) 1)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (+.f64 2 (+.f64 re re))) 2)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (*.f64 (+.f64 re 1) 4)) 4)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 (+.f64 re 1) (*.f64 im 8)) 8)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))) 16)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))) 32)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))) 64)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8)))))) 128)
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 re 1) (*.f64 im 8))))))) 256)
(+.f64 im (*.f64 im re))
(pow.f64 (+.f64 im (*.f64 re im)) 1)
(+.f64 im (*.f64 im re))

eval62.0ms (0.7%)

Compiler

Compiled 3236 to 2374 computations (26.6% saved)

prune44.0ms (0.5%)

Pruning

12 alts after pruning (6 fresh and 6 done)

PrunedKeptTotal
New2525257
Fresh011
Picked011
Done156
Total25312265
Error
0.0b
Counts
265 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
45.1b
(+.f64 (*.f64 re im) im)
52.1b
(*.f64 (-.f64 (-.f64 im -1) 1) (+.f64 re 1))
40.3b
(*.f64 (-.f64 1 1) (+.f64 re 1))
29.7b
(*.f64 (+.f64 (+.f64 (sin.f64 im) -2) 2) (+.f64 re 1))
29.6b
(*.f64 (+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2)) (+.f64 re 1))
45.1b
(*.f64 (+.f64 1 re) im)
22.4b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
23.6b
(*.f64 (exp.f64 re) im)
61.5b
(*.f64 re im)
22.3b
(sin.f64 im)
45.0b
im
Compiler

Compiled 154 to 119 computations (22.7% saved)

localize23.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2)) (+.f64 re 1))
0.3b
(+.f64 (sin.f64 im) -1)
0.4b
(+.f64 (sin.f64 im) 1)
1.9b
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2))
Compiler

Compiled 63 to 42 computations (33.3% saved)

series4.0ms (0%)

Counts
4 → 56
Calls

15 calls:

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

rewrite105.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1782×rational.json-1
1258×rational.json-simplify-35
1176×rational.json-simplify-2
1006×rational.json-2
1006×rational.json-3
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
017112
1126112
2249100
349692
4103044
5267844
6506444
7761844
Stop Event
node limit
Counts
4 → 96
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2))
(+.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(*.f64 (+.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) (/.f64 (+.f64 (sin.f64 im) -1) 2)) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 im) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (sin.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 im)))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (neg.f64 (PI.f64)) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 im) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 (neg.f64 (sin.f64 im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 im) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (sin.f64 im) 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (sin.f64 im) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 im) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 1 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sin.f64 im) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (sin.f64 im) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sin.f64 im) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 (sin.f64 im) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (sin.f64 im) -1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (sin.f64 im) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sin.f64 im) -1) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (sin.f64 im) -1) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (sin.f64 im) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (sin.f64 im) -1) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)))))

simplify179.0ms (2%)

Algorithm
egg-herbie
Rules
2102×rational.json-simplify-35
1206×rational.json-simplify-2
1142×rational.json-simplify-53
962×rational.json-simplify-52
954×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02154782
14594248
212621900
327531900
439441900
555581900
666331900
776221900
Stop Event
node limit
Counts
152 → 168
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
1
(+.f64 1 im)
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
(+.f64 1 (sin.f64 im))
-1
(-.f64 im 1)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(*.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 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(-.f64 (sin.f64 im) 0)
(-.f64 (+.f64 (sin.f64 im) 1) 1)
(-.f64 (+.f64 (sin.f64 im) -1) -1)
(-.f64 0 (neg.f64 (sin.f64 im)))
(-.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))
(*.f64 (sin.f64 im) 1)
(*.f64 1 (sin.f64 im))
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(*.f64 -1 (neg.f64 (sin.f64 im)))
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(*.f64 4 (/.f64 (sin.f64 im) 4))
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(*.f64 1/4 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))))
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(*.f64 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))) 1/4)
(/.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 4)) 8)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))) 16)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) 32)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))))) 64)
(pow.f64 (sin.f64 im) 1)
(neg.f64 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) im))
(sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))
(-.f64 (sin.f64 im) -1)
(-.f64 1 (neg.f64 (sin.f64 im)))
(-.f64 (+.f64 (sin.f64 im) 1) 0)
(-.f64 0 (+.f64 (neg.f64 (sin.f64 im)) -1))
(*.f64 1 (+.f64 (sin.f64 im) 1))
(*.f64 (+.f64 (sin.f64 im) 1) 1)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)
(*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(*.f64 4 (*.f64 (+.f64 (sin.f64 im) 1) 1/4))
(*.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/4) 4)
(/.f64 (+.f64 (sin.f64 im) 1) 1)
(/.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))))) 64)
(pow.f64 (+.f64 (sin.f64 im) 1) 1)
(neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))
(-.f64 (sin.f64 im) 1)
(-.f64 -1 (neg.f64 (sin.f64 im)))
(-.f64 (+.f64 (sin.f64 im) -1) 0)
(-.f64 0 (-.f64 1 (sin.f64 im)))
(-.f64 (+.f64 (sin.f64 im) -2) -1)
(*.f64 1 (+.f64 (sin.f64 im) -1))
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) -2))
(*.f64 (+.f64 (sin.f64 im) -1) 1)
(*.f64 2 (*.f64 1/2 (+.f64 (sin.f64 im) -1)))
(*.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) 2)
(*.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 1/2)
(*.f64 4 (*.f64 (+.f64 (sin.f64 im) -1) 1/4))
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 1/4)
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 1/8)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) -1) 4))
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (sin.f64 im) -1) 8))
(/.f64 (+.f64 (sin.f64 im) -1) 1)
(/.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 2)
(/.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 4)
(/.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)))) 64)
(pow.f64 (+.f64 (sin.f64 im) -1) 1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))
(+.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))))
(-.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(/.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(/.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
Outputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 im (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.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 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 im (+.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))) (*.f64 -1/5040 (pow.f64 im 7))))
(+.f64 im (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
1
(+.f64 1 im)
(+.f64 im 1)
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im 1))
(+.f64 im (+.f64 1 (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) 1))
(+.f64 1 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) 1))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im 1)))
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
(+.f64 1 (sin.f64 im))
(+.f64 (sin.f64 im) 1)
-1
(-.f64 im 1)
(+.f64 im -1)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 1)
(+.f64 im (-.f64 (*.f64 -1/6 (pow.f64 im 3)) 1))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) -1))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im -1))
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)) 1)
(+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) 1))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) 1))
(+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) -1)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) -1)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im -1)))
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(*.f64 (+.f64 1 re) im)
(*.f64 im (-.f64 re -1))
(*.f64 im (+.f64 1 re))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (-.f64 re -1)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (-.f64 re -1))))
(*.f64 (-.f64 re -1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 1 re))
(+.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/6 (*.f64 (pow.f64 im 3) (-.f64 re -1))) (+.f64 (*.f64 im (-.f64 re -1)) (*.f64 1/120 (*.f64 (pow.f64 im 5) (-.f64 re -1)))))
(+.f64 (*.f64 (-.f64 re -1) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (-.f64 re -1))))
(*.f64 (+.f64 1 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))) (+.f64 1 re))
(+.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/6 (*.f64 (pow.f64 im 3) (-.f64 re -1))) (+.f64 (+.f64 (*.f64 im (-.f64 re -1)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (-.f64 re -1)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (-.f64 re -1)))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (-.f64 re -1))) (+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (-.f64 re -1))) (*.f64 (-.f64 re -1) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 1 (sin.f64 im))) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re)
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re)
(*.f64 (sin.f64 im) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re)
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re)
(*.f64 (sin.f64 im) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))) re) (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) 1)) (*.f64 1/2 (-.f64 (sin.f64 im) 1))))
(+.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) re))
(+.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(-.f64 (sin.f64 im) 0)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(-.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(-.f64 (+.f64 (sin.f64 im) -1) -1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(-.f64 0 (neg.f64 (sin.f64 im)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(-.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (sin.f64 im) 1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 1 (sin.f64 im))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 1/2 (*.f64 (sin.f64 im) 2))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 -1 (neg.f64 (sin.f64 im)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 4 (/.f64 (sin.f64 im) 4))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 2) 1/2)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 1/4 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(*.f64 (+.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) (+.f64 2 (*.f64 (sin.f64 im) 2))) 1/4)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (sin.f64 im) 1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 2) 2)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 4)) 8)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))) 16)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) 32)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 4))))) 64)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(pow.f64 (sin.f64 im) 1)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(neg.f64 (neg.f64 (sin.f64 im)))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(sin.f64 im)
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 (-.f64 (PI.f64) im))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(sin.f64 (+.f64 im (*.f64 (PI.f64) -2)))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1)))
(*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1)))
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 (PI.f64) -2))))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(-.f64 (sin.f64 im) -1)
(+.f64 (sin.f64 im) 1)
(-.f64 1 (neg.f64 (sin.f64 im)))
(+.f64 (sin.f64 im) 1)
(-.f64 (+.f64 (sin.f64 im) 1) 0)
(+.f64 (sin.f64 im) 1)
(-.f64 0 (+.f64 (neg.f64 (sin.f64 im)) -1))
(+.f64 (sin.f64 im) 1)
(*.f64 1 (+.f64 (sin.f64 im) 1))
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(*.f64 1/2 (+.f64 2 (*.f64 (sin.f64 im) 2)))
(+.f64 (sin.f64 im) 1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/2) 2)
(+.f64 (sin.f64 im) 1)
(*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 1/2))
(+.f64 (sin.f64 im) 1)
(*.f64 4 (*.f64 (+.f64 (sin.f64 im) 1) 1/4))
(+.f64 (sin.f64 im) 1)
(*.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 1/2)
(+.f64 (sin.f64 im) 1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 1/4)
(+.f64 (sin.f64 im) 1)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) 1) 4))
(+.f64 (sin.f64 im) 1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) 1) 1/4) 4)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 2 (*.f64 (sin.f64 im) 2)) 2)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 (+.f64 (sin.f64 im) 1) 4) 4)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)) 8)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))) 16)
(+.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) 32)
(+.f64 (sin.f64 im) 1)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) 1) 4))))) 64)
(+.f64 (sin.f64 im) 1)
(pow.f64 (+.f64 (sin.f64 im) 1) 1)
(+.f64 (sin.f64 im) 1)
(neg.f64 (+.f64 (neg.f64 (sin.f64 im)) -1))
(+.f64 (sin.f64 im) 1)
(-.f64 (sin.f64 im) 1)
(+.f64 (sin.f64 im) -1)
(-.f64 -1 (neg.f64 (sin.f64 im)))
(+.f64 (sin.f64 im) -1)
(-.f64 (+.f64 (sin.f64 im) -1) 0)
(+.f64 (sin.f64 im) -1)
(-.f64 0 (-.f64 1 (sin.f64 im)))
(+.f64 (sin.f64 im) -1)
(-.f64 (+.f64 (sin.f64 im) -2) -1)
(+.f64 (sin.f64 im) -1)
(*.f64 1 (+.f64 (sin.f64 im) -1))
(+.f64 (sin.f64 im) -1)
(*.f64 1/2 (+.f64 (*.f64 (sin.f64 im) 2) -2))
(+.f64 (sin.f64 im) -1)
(*.f64 (+.f64 (sin.f64 im) -1) 1)
(+.f64 (sin.f64 im) -1)
(*.f64 2 (*.f64 1/2 (+.f64 (sin.f64 im) -1)))
(+.f64 (sin.f64 im) -1)
(*.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) 2)
(+.f64 (sin.f64 im) -1)
(*.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 1/2)
(+.f64 (sin.f64 im) -1)
(*.f64 4 (*.f64 (+.f64 (sin.f64 im) -1) 1/4))
(+.f64 (sin.f64 im) -1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 1/4)
(+.f64 (sin.f64 im) -1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 1/8)
(+.f64 (sin.f64 im) -1)
(*.f64 1/4 (*.f64 (+.f64 (sin.f64 im) -1) 4))
(+.f64 (sin.f64 im) -1)
(*.f64 (*.f64 (+.f64 (sin.f64 im) -1) 1/4) 4)
(+.f64 (sin.f64 im) -1)
(*.f64 1/8 (*.f64 (+.f64 (sin.f64 im) -1) 8))
(+.f64 (sin.f64 im) -1)
(/.f64 (+.f64 (sin.f64 im) -1) 1)
(+.f64 (sin.f64 im) -1)
(/.f64 (+.f64 (*.f64 (sin.f64 im) 2) -2) 2)
(+.f64 (sin.f64 im) -1)
(/.f64 (*.f64 (+.f64 (sin.f64 im) -1) 4) 4)
(+.f64 (sin.f64 im) -1)
(/.f64 (*.f64 (+.f64 (sin.f64 im) -1) 8) 8)
(+.f64 (sin.f64 im) -1)
(/.f64 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)) 16)
(+.f64 (sin.f64 im) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8))) 32)
(+.f64 (sin.f64 im) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (sin.f64 im) -1) 8)))) 64)
(+.f64 (sin.f64 im) -1)
(pow.f64 (+.f64 (sin.f64 im) -1) 1)
(+.f64 (sin.f64 im) -1)
(+.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 1 re)))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))) (*.f64 (sin.f64 im) (*.f64 1/2 (+.f64 1 re))))
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(-.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 0)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (+.f64 2 (+.f64 re re))) 2)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)) 4)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))) 8)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))) 16)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) 32)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) (*.f64 (+.f64 1 re) 4)))))) 64)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 1 re)) 1)
(*.f64 (+.f64 (*.f64 1/2 (+.f64 (sin.f64 im) -1)) (*.f64 1/2 (+.f64 (sin.f64 im) 1))) (-.f64 re -1))
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
(*.f64 (sin.f64 im) (+.f64 1 re))

localize3.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize8.0ms (0.1%)

Compiler

Compiled 17 to 14 computations (17.6% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 26 to 19 computations (26.9% saved)

series1.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite186.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1808×rational.json-simplify-1
1358×rational.json-1
1358×rational.json-2
1358×rational.json-3
1354×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01038
17914
217714
332314
466314
5152414
6327714
7464214
8614214
9734814
10749614
11749614
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(-.f64 (-.f64 im -1) 1)
(*.f64 (-.f64 (-.f64 im -1) 1) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 im 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 im 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 im -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 im)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 im -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 im 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im -3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 im -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 im 3) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 im 1/2) (*.f64 im 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 im 1) 1/2) (*.f64 (+.f64 im -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (+.f64 im 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 im -1) 1/2) (*.f64 (+.f64 im 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 im 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 im im) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 im 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 im im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 im 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im im) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 im 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 im 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 im 1)))) (#(struct:change #<rule egg-rr> (2) ((x . im)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 im (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 im (+.f64 1 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)) (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)) (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 im (+.f64 1 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (+.f64 1 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 (+.f64 1 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 (+.f64 1 re) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 im (+.f64 1 re)) 1)))))

simplify191.0ms (2.1%)

Algorithm
egg-herbie
Rules
2182×rational.json-simplify-2
2006×rational.json-simplify-1
1374×rational.json-simplify-48
1348×rational.json-simplify-51
1330×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0110532
1234532
2797532
32195532
44867532
55537532
65672532
75793532
85927532
96064532
107729532
Stop Event
node limit
Counts
88 → 60
Calls
Call 1
Inputs
im
im
im
im
im
im
im
im
im
im
im
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 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
(*.f64 (+.f64 1 re) im)
im
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) im)
(+.f64 (*.f64 re im) 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 im 0)
(+.f64 -1 (+.f64 im 1))
(+.f64 (+.f64 im 1) -1)
(+.f64 1 (+.f64 im -1))
(+.f64 0 im)
(+.f64 (+.f64 im -1) 1)
(+.f64 2 (+.f64 im -2))
(+.f64 (+.f64 im 2) -2)
(+.f64 (+.f64 im -2) 2)
(+.f64 -2 (+.f64 im 2))
(+.f64 (+.f64 im -3) 3)
(+.f64 3 (+.f64 im -3))
(+.f64 (+.f64 im 3) -3)
(+.f64 (*.f64 im 1/2) (*.f64 im 1/2))
(+.f64 (*.f64 (+.f64 im 1) 1/2) (*.f64 (+.f64 im -1) 1/2))
(+.f64 -3 (+.f64 im 3))
(+.f64 (*.f64 (+.f64 im -1) 1/2) (*.f64 (+.f64 im 1) 1/2))
(*.f64 im 1)
(*.f64 1 im)
(*.f64 2 (*.f64 im 1/2))
(*.f64 (+.f64 im im) 1/2)
(*.f64 4 (*.f64 im 1/4))
(*.f64 (*.f64 im 4) 1/4)
(*.f64 1/2 (+.f64 im im))
(*.f64 (*.f64 im 8) 1/8)
(*.f64 1/4 (*.f64 im 4))
(*.f64 (*.f64 im 1/2) 2)
(*.f64 (*.f64 im 1/4) 4)
(/.f64 im 1)
(/.f64 (+.f64 im im) 2)
(/.f64 (*.f64 im 4) 4)
(/.f64 (*.f64 im 8) 8)
(/.f64 (*.f64 2 (*.f64 im 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 im 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8))))) 128)
(pow.f64 im 1)
(+.f64 (*.f64 im (+.f64 1 re)) 0)
(+.f64 0 (*.f64 im (+.f64 1 re)))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)) (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)) (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)))
(-.f64 (*.f64 im (+.f64 1 re)) 0)
(/.f64 (*.f64 im (+.f64 1 re)) 1)
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(/.f64 (*.f64 im (*.f64 (+.f64 1 re) 4)) 4)
(/.f64 (*.f64 im (*.f64 (+.f64 1 re) 8)) 8)
(/.f64 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))))) 128)
(pow.f64 (*.f64 im (+.f64 1 re)) 1)
Outputs
im
im
im
im
im
im
im
im
im
im
im
im
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
im
(+.f64 (*.f64 re im) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 re im) im)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(*.f64 re im)
(*.f64 im re)
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 im (*.f64 re im))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 im 0)
im
(+.f64 -1 (+.f64 im 1))
im
(+.f64 (+.f64 im 1) -1)
im
(+.f64 1 (+.f64 im -1))
im
(+.f64 0 im)
im
(+.f64 (+.f64 im -1) 1)
im
(+.f64 2 (+.f64 im -2))
im
(+.f64 (+.f64 im 2) -2)
im
(+.f64 (+.f64 im -2) 2)
im
(+.f64 -2 (+.f64 im 2))
im
(+.f64 (+.f64 im -3) 3)
im
(+.f64 3 (+.f64 im -3))
im
(+.f64 (+.f64 im 3) -3)
im
(+.f64 (*.f64 im 1/2) (*.f64 im 1/2))
im
(+.f64 (*.f64 (+.f64 im 1) 1/2) (*.f64 (+.f64 im -1) 1/2))
im
(+.f64 -3 (+.f64 im 3))
im
(+.f64 (*.f64 (+.f64 im -1) 1/2) (*.f64 (+.f64 im 1) 1/2))
im
(*.f64 im 1)
im
(*.f64 1 im)
im
(*.f64 2 (*.f64 im 1/2))
im
(*.f64 (+.f64 im im) 1/2)
im
(*.f64 4 (*.f64 im 1/4))
im
(*.f64 (*.f64 im 4) 1/4)
im
(*.f64 1/2 (+.f64 im im))
im
(*.f64 (*.f64 im 8) 1/8)
im
(*.f64 1/4 (*.f64 im 4))
im
(*.f64 (*.f64 im 1/2) 2)
im
(*.f64 (*.f64 im 1/4) 4)
im
(/.f64 im 1)
im
(/.f64 (+.f64 im im) 2)
im
(/.f64 (*.f64 im 4) 4)
im
(/.f64 (*.f64 im 8) 8)
im
(/.f64 (*.f64 2 (*.f64 im 8)) 16)
im
(/.f64 (*.f64 2 (*.f64 2 (*.f64 im 8))) 32)
im
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8)))) 64)
im
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im 8))))) 128)
im
(pow.f64 im 1)
im
(+.f64 (*.f64 im (+.f64 1 re)) 0)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 0 (*.f64 im (+.f64 1 re)))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 (+.f64 1 re) (*.f64 im 1/2)) (*.f64 (+.f64 1 re) (*.f64 im 1/2)))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)) (*.f64 (*.f64 1/4 (*.f64 im 1/2)) (*.f64 (+.f64 1 re) 4)))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(+.f64 (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)) (*.f64 (*.f64 1/4 (*.f64 (+.f64 1 re) 1/2)) (*.f64 im 4)))
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(-.f64 (*.f64 im (+.f64 1 re)) 0)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (+.f64 1 re)) 1)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 (+.f64 1 re) (+.f64 im im)) 2)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (*.f64 (+.f64 1 re) 4)) 4)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 im (*.f64 (+.f64 1 re) 8)) 8)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))) 16)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))) 32)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8))))) 64)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 im (*.f64 (+.f64 1 re) 8)))))) 128)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))
(pow.f64 (*.f64 im (+.f64 1 re)) 1)
(*.f64 im (+.f64 1 re))
(+.f64 im (*.f64 im re))

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

Compiled 32 to 21 computations (34.4% saved)

series2.0ms (0%)

Counts
3 → 48
Calls

12 calls:

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

rewrite91.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1572×rational.json-1
1572×rational.json-2
1572×rational.json-4
1572×rational.json-3
1182×rational.json-simplify-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01357
19433
219233
337533
475433
5181633
6393233
7675033
Stop Event
node limit
Counts
3 → 64
Calls
Call 1
Inputs
(+.f64 (+.f64 (sin.f64 im) -2) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (+.f64 (+.f64 (sin.f64 im) -2) 2) (+.f64 re 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (sin.f64 im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (sin.f64 im) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (sin.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sin.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (sin.f64 im)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (sin.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 im) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (sin.f64 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 im) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sin.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sin.f64 im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 im)))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (neg.f64 (PI.f64)) im))))) (#(struct:change #<rule egg-rr> (2) ((x sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 -2 (PI.f64)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -2 (sin.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -2 (sin.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 -2 (sin.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 -2 (sin.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 -2 (sin.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -2 (sin.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (sin.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -2 (sin.f64 im)) 1)))))
((#(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 2 (*.f64 (sin.f64 im) (+.f64 re 1))) 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 (+.f64 re 1) 8) (sin.f64 im)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)))))

simplify133.0ms (1.5%)

Algorithm
egg-herbie
Rules
1218×rational.json-simplify-48
1102×rational.json-simplify-35
1078×rational.json-simplify-42
994×rational.json-simplify-1
960×rational.json-simplify-45
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01611470
13461434
29311410
324621410
442861410
553281410
679951410
Stop Event
node limit
Counts
112 → 107
Calls
Call 1
Inputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
-2
(-.f64 im 2)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(-.f64 (sin.f64 im) 2)
(*.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 (sin.f64 im) 0)
(-.f64 0 (neg.f64 (sin.f64 im)))
(-.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))
(-.f64 (-.f64 (sin.f64 im) -1) 1)
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(*.f64 (sin.f64 im) 1)
(*.f64 1 (sin.f64 im))
(*.f64 -1 (neg.f64 (sin.f64 im)))
(*.f64 4 (/.f64 (sin.f64 im) 4))
(*.f64 (*.f64 2 (sin.f64 im)) 1/2)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(*.f64 1/2 (*.f64 2 (sin.f64 im)))
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(/.f64 (sin.f64 im) 1)
(/.f64 (*.f64 2 (sin.f64 im)) 2)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(pow.f64 (sin.f64 im) 1)
(neg.f64 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) im))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 -2 (PI.f64)))))
(-.f64 (+.f64 -2 (sin.f64 im)) 0)
(*.f64 (+.f64 -2 (sin.f64 im)) 1)
(*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2))
(*.f64 1 (+.f64 -2 (sin.f64 im)))
(*.f64 4 (/.f64 (+.f64 -2 (sin.f64 im)) 4))
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 1/2)
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 -2 (sin.f64 im)) 2))
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 -2 (sin.f64 im)) 4))
(*.f64 (/.f64 (+.f64 -2 (sin.f64 im)) 4) 4)
(/.f64 (+.f64 -2 (sin.f64 im)) 1)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 2)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 4)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)))) 64)
(pow.f64 (+.f64 -2 (sin.f64 im)) 1)
(+.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 2 (*.f64 (sin.f64 im) (+.f64 re 1))) 2)
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))))) 64)
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
Outputs
im
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) im)
(+.f64 im (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 -1/5040 (pow.f64 im 7)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)))
(+.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 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/5040 (pow.f64 im 7)))))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))))
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
(sin.f64 im)
-2
(-.f64 im 2)
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) im) 2)
(+.f64 im (-.f64 (*.f64 -1/6 (pow.f64 im 3)) 2))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 im 2))
(-.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) im)) 2)
(+.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) 2))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (+.f64 im (*.f64 1/120 (pow.f64 im 5))) 2))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (-.f64 im 2)))
(+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (-.f64 (*.f64 1/120 (pow.f64 im 5)) 2)))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (+.f64 1 re) im)
(*.f64 im (+.f64 1 re))
(+.f64 (*.f64 -1/6 (*.f64 (+.f64 1 re) (pow.f64 im 3))) (*.f64 (+.f64 1 re) im))
(+.f64 (*.f64 im (+.f64 1 re)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))))
(*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 im (*.f64 -1/6 (pow.f64 im 3))) (+.f64 1 re))
(+.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/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))) (+.f64 (*.f64 im (+.f64 1 re)) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re)))))
(+.f64 (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/6 (pow.f64 im 3)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))))
(*.f64 (+.f64 1 re) (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
(*.f64 (+.f64 im (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))) (+.f64 1 re))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (+.f64 im (*.f64 1/120 (pow.f64 im 5)))) (+.f64 1 re))
(+.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/6 (*.f64 (pow.f64 im 3) (+.f64 1 re))) (+.f64 (+.f64 (*.f64 im (+.f64 1 re)) (*.f64 -1/5040 (*.f64 (pow.f64 im 7) (+.f64 1 re)))) (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re)))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 im 5) (+.f64 1 re))) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 (+.f64 1 re) -1/6)) (*.f64 (+.f64 1 re) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (+.f64 1 re))) (*.f64 (+.f64 1 re) (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (+.f64 1 re))) (*.f64 (+.f64 (*.f64 1/120 (pow.f64 im 5)) (+.f64 im (*.f64 -1/5040 (pow.f64 im 7)))) (+.f64 1 re)))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (+.f64 1 re))) (*.f64 (+.f64 im (+.f64 (*.f64 1/120 (pow.f64 im 5)) (*.f64 -1/5040 (pow.f64 im 7)))) (+.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))
(*.f64 (sin.f64 im) (+.f64 1 re))
(sin.f64 im)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(*.f64 (sin.f64 im) re)
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (sin.f64 im) (*.f64 (sin.f64 im) re))
(*.f64 (sin.f64 im) (+.f64 1 re))
(-.f64 (sin.f64 im) 0)
(sin.f64 im)
(-.f64 0 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(-.f64 (*.f64 (sin.f64 im) 1/2) (/.f64 (neg.f64 (sin.f64 im)) 2))
(sin.f64 im)
(-.f64 (-.f64 (sin.f64 im) -1) 1)
(sin.f64 im)
(*.f64 2 (*.f64 (sin.f64 im) 1/2))
(sin.f64 im)
(*.f64 (sin.f64 im) 1)
(sin.f64 im)
(*.f64 1 (sin.f64 im))
(sin.f64 im)
(*.f64 -1 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(*.f64 4 (/.f64 (sin.f64 im) 4))
(sin.f64 im)
(*.f64 (*.f64 2 (sin.f64 im)) 1/2)
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 4) 1/4)
(sin.f64 im)
(*.f64 1/2 (*.f64 2 (sin.f64 im)))
(sin.f64 im)
(*.f64 1/4 (*.f64 (sin.f64 im) 4))
(sin.f64 im)
(*.f64 (*.f64 (sin.f64 im) 1/2) 2)
(sin.f64 im)
(*.f64 (neg.f64 (sin.f64 im)) -1)
(sin.f64 im)
(*.f64 (/.f64 (sin.f64 im) 4) 4)
(sin.f64 im)
(/.f64 (sin.f64 im) 1)
(sin.f64 im)
(/.f64 (*.f64 2 (sin.f64 im)) 2)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 4) 4)
(sin.f64 im)
(/.f64 (*.f64 (sin.f64 im) 8) 8)
(sin.f64 im)
(/.f64 (neg.f64 (sin.f64 im)) -1)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) 8)) 16)
(sin.f64 im)
(/.f64 (*.f64 2 (neg.f64 (sin.f64 im))) -2)
(sin.f64 im)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) 32)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (sin.f64 im))) (*.f64 2 (neg.f64 (sin.f64 im)))) -4)
(sin.f64 im)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 im) 8)))) 64)
(sin.f64 im)
(pow.f64 (sin.f64 im) 1)
(sin.f64 im)
(neg.f64 (neg.f64 (sin.f64 im)))
(sin.f64 im)
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) im))
(sin.f64 im)
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(sin.f64 (-.f64 (neg.f64 (PI.f64)) im))
(sin.f64 im)
(sin.f64 (-.f64 (PI.f64) (+.f64 im (*.f64 -2 (PI.f64)))))
(sin.f64 (+.f64 im (*.f64 -2 (PI.f64))))
(-.f64 (+.f64 -2 (sin.f64 im)) 0)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (+.f64 -2 (sin.f64 im)) 1)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 1 (+.f64 -2 (sin.f64 im)))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 4 (/.f64 (+.f64 -2 (sin.f64 im)) 4))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 1/2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 1/4)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 1/2 (*.f64 (+.f64 -2 (sin.f64 im)) 2))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 1/2) 2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 1/4 (*.f64 (+.f64 -2 (sin.f64 im)) 4))
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(*.f64 (/.f64 (+.f64 -2 (sin.f64 im)) 4) 4)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (+.f64 -2 (sin.f64 im)) 1)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 2) 2)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 4) 4)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (*.f64 (+.f64 -2 (sin.f64 im)) 8) 8)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)) 16)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) 32)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2 (sin.f64 im)) 8)))) 64)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(pow.f64 (+.f64 -2 (sin.f64 im)) 1)
(-.f64 (sin.f64 im) 2)
(+.f64 (sin.f64 im) -2)
(+.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 0 (*.f64 (sin.f64 im) (+.f64 re 1)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(+.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)) (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 1/2)))
(*.f64 (sin.f64 im) (+.f64 1 re))
(-.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 0)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 (sin.f64 im) (+.f64 re 1))) 2)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (sin.f64 im) (*.f64 (+.f64 re 1) 4)) 4)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)) 8)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))) 16)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) 32)
(*.f64 (sin.f64 im) (+.f64 1 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im)))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 re 1) 8) (sin.f64 im))))) 64)
(*.f64 (sin.f64 im) (+.f64 1 re))
(pow.f64 (*.f64 (sin.f64 im) (+.f64 re 1)) 1)
(*.f64 (sin.f64 im) (+.f64 1 re))

eval250.0ms (2.8%)

Compiler

Compiled 5705 to 4239 computations (25.7% saved)

prune132.0ms (1.5%)

Pruning

12 alts after pruning (2 fresh and 10 done)

PrunedKeptTotal
New3781379
Fresh011
Picked011
Done1910
Total37912391
Error
0.0b
Counts
391 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
45.1b
(+.f64 (*.f64 re im) im)
52.1b
(*.f64 (-.f64 (-.f64 im -1) 1) (+.f64 re 1))
40.3b
(*.f64 (-.f64 1 1) (+.f64 re 1))
29.7b
(*.f64 (+.f64 (+.f64 (sin.f64 im) -2) 2) (+.f64 re 1))
45.1b
(*.f64 (+.f64 1 re) im)
29.6b
(*.f64 (*.f64 1/2 (+.f64 (+.f64 (sin.f64 im) 1) (+.f64 (sin.f64 im) -1))) (-.f64 re -1))
22.4b
(*.f64 (sin.f64 im) (+.f64 re 1))
0.0b
(*.f64 (exp.f64 re) (sin.f64 im))
23.6b
(*.f64 (exp.f64 re) im)
61.5b
(*.f64 re im)
22.3b
(sin.f64 im)
45.0b
im
Compiler

Compiled 96 to 72 computations (25% saved)

regimes99.0ms (1.1%)

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

5 calls:

71.0ms
(sin.f64 im)
8.0ms
im
7.0ms
re
6.0ms
(*.f64 (exp.f64 re) (sin.f64 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 129 to 80 computations (38% saved)

regimes184.0ms (2%)

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

4 calls:

89.0ms
(sin.f64 im)
59.0ms
re
30.0ms
im
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.0b2re
10.4b5im
1.0b2(exp.f64 re)
10.9b5(sin.f64 im)
Compiler

Compiled 78 to 50 computations (35.9% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.5521211467653676e-140
0.9979592223803373
Compiler

Compiled 12 to 9 computations (25% saved)

regimes105.0ms (1.2%)

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

4 calls:

67.0ms
im
24.0ms
(sin.f64 im)
9.0ms
re
3.0ms
(exp.f64 re)
Results
ErrorSegmentsBranch
1.2b2re
10.4b5im
1.2b2(exp.f64 re)
11.0b5(sin.f64 im)
Compiler

Compiled 52 to 33 computations (36.5% saved)

bsearch2.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
0.9999984487495305
0.9999999999998839
Compiler

Compiled 12 to 9 computations (25% saved)

regimes87.0ms (1%)

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

3 calls:

63.0ms
im
13.0ms
(sin.f64 im)
10.0ms
re
Results
ErrorSegmentsBranch
1.3b2re
20.0b5im
21.1b3(sin.f64 im)
Compiler

Compiled 44 to 28 computations (36.4% saved)

bsearch18.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
-3706.8354432718393
-321.0943680879837
Results
9.0ms71×body256valid
5.0ms12×body1024valid
3.0ms13×body512valid
Compiler

Compiled 102 to 87 computations (14.7% saved)

regimes23.0ms (0.3%)

Counts
6 → 2
Calls
Call 1
Inputs
im
(*.f64 re im)
(*.f64 (+.f64 1 re) im)
(+.f64 (*.f64 re im) im)
(*.f64 (-.f64 1 1) (+.f64 re 1))
(*.f64 (-.f64 (-.f64 im -1) 1) (+.f64 re 1))
Outputs
(*.f64 (-.f64 1 1) (+.f64 re 1))
(+.f64 (*.f64 re im) im)
Calls

2 calls:

13.0ms
im
9.0ms
re
Results
ErrorSegmentsBranch
23.6b2re
33.1b3im
Compiler

Compiled 38 to 24 computations (36.8% saved)

bsearch28.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
-0.0020428628437779935
-1.551251672765343e-6
Results
10.0ms28×body1024valid
10.0ms77×body256valid
7.0ms23×body512valid
Compiler

Compiled 156 to 121 computations (22.4% saved)

regimes45.0ms (0.5%)

Accuracy

Total -17.1b remaining (-38%)

Threshold costs -17.1b (-38%)

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

2 calls:

41.0ms
im
4.0ms
re
Results
ErrorSegmentsBranch
45.0b1re
45.0b1im
Compiler

Compiled 22 to 11 computations (50% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
032150
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 5363123171977039/107262463439540776796592199985646769019834926564739147021788491549774112240588375814414994385335227421520254865491888406830031062495572559571469192048672768) (*.f64 (-.f64 1 1) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 9007190247541737/9007199254740992) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -330) (*.f64 (-.f64 1 1) (+.f64 re 1)) (sin.f64 im))
(if (<=.f64 re -1152921504606847/576460752303423488) (*.f64 (-.f64 1 1) (+.f64 re 1)) (+.f64 (*.f64 re im) im))
im
Outputs
(*.f64 (exp.f64 re) (sin.f64 im))
(if (<=.f64 (exp.f64 re) 5363123171977039/107262463439540776796592199985646769019834926564739147021788491549774112240588375814414994385335227421520254865491888406830031062495572559571469192048672768) (*.f64 (-.f64 1 1) (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 5363123171977039/107262463439540776796592199985646769019834926564739147021788491549774112240588375814414994385335227421520254865491888406830031062495572559571469192048672768) (*.f64 0 (+.f64 re 1)) (*.f64 (sin.f64 im) (+.f64 re 1)))
(if (<=.f64 (exp.f64 re) 9007190247541737/9007199254740992) (*.f64 (exp.f64 re) im) (sin.f64 im))
(if (<=.f64 re -330) (*.f64 (-.f64 1 1) (+.f64 re 1)) (sin.f64 im))
(if (<=.f64 re -330) (*.f64 0 (+.f64 re 1)) (sin.f64 im))
(if (<=.f64 re -1152921504606847/576460752303423488) (*.f64 (-.f64 1 1) (+.f64 re 1)) (+.f64 (*.f64 re im) im))
(if (<=.f64 re -1152921504606847/576460752303423488) (*.f64 0 (+.f64 re 1)) (+.f64 (*.f64 re im) im))
im
Compiler

Compiled 70 to 50 computations (28.6% saved)

soundness0.0ms (0%)

end37.0ms (0.4%)

Compiler

Compiled 60 to 35 computations (41.7% saved)

Profiling

Loading profile data...