Details

Time bar (total: 12.3s)

analyze702.0ms (5.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
50%50%50%0.1%0%0%0%5
50%50%50%0.1%0%0%0%6
55.2%50%40.6%0.1%9.4%0%0%7
56.1%50%39%0.1%10.9%0%0%8
59.8%50%33.6%0.1%16.4%0%0%9
60.7%50%32.4%0.1%17.6%0%0%10
62.9%50%29.5%0.1%20.5%0%0%11
63.4%50%28.8%0.1%21.2%0%0%12
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample6.6s (53.1%)

Results
2.9s4276×body1024valid
1.2s1988×body1024infinite
1.2s2137×body512valid
405.0ms990×body512infinite
291.0ms1582×body256infinite
290.0ms1604×body256valid
226.0ms239×body2048valid
Bogosity

preprocess81.0ms (0.7%)

Algorithm
egg-herbie
Rules
1090×rational.json-simplify-51
1068×rational.json-simplify-1
832×rational.json-simplify-26
774×rational.json-simplify-39
768×rational.json-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02070
14170
26770
39470
412670
517870
632070
775270
8173170
9276370
10632970
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (*.f64 1/2 (sin.f64 im)) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (sin.f64 re) (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (*.f64 1/2 (sin.f64 im)) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 im) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re))))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify99.0ms (0.8%)

Algorithm
egg-herbie
Rules
2048×rational.json-simplify-1
2040×rational.json-simplify-35
1116×rational.json-simplify-2
1086×rational.json-simplify-26
882×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
12635
24135
35735
47535
510435
617735
739535
8115035
9216335
10269035
11331535
12497235
13590135
14689835
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))

eval1.0ms (0%)

Compiler

Compiled 24 to 13 computations (45.8% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 13 to 10 computations (23.1% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
5.0b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 35 to 13 computations (62.9% saved)

series8.0ms (0.1%)

Counts
2 → 32
Calls

9 calls:

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

rewrite106.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1334×bool.json-1
1334×bool.json-2
1290×rational.json-1
1290×rational.json-2
1290×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01354
113354
237154
383354
4180454
5436254
Stop Event
node limit
Counts
2 → 40
Calls
Call 1
Inputs
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (neg.f64 im)) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (exp.f64 im)) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (exp.f64 (+.f64 im im))) 1) (exp.f64 (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))))))

simplify147.0ms (1.2%)

Algorithm
egg-herbie
Rules
1296×rational.json-simplify-46
1088×rational.json-simplify-35
814×rational.json-simplify-1
806×rational.json-simplify-48
700×rational.json-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01452296
13142296
27652156
313992122
430252122
539042122
662092122
Stop Event
node limit
Counts
72 → 93
Calls
Call 1
Inputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 1/240 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 1/240 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 5))) (*.f64 -1/10080 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im))))
(+.f64 (*.f64 -1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(+.f64 (exp.f64 (neg.f64 im)) (neg.f64 (exp.f64 im)))
(+.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(+.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 -1 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.f64 -1 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))
(+.f64 (neg.f64 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(+.f64 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) -1)
(+.f64 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))) -1)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))
(*.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 2)
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(*.f64 4 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)
(*.f64 1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(*.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(*.f64 (+.f64 (neg.f64 (exp.f64 (+.f64 im im))) 1) (exp.f64 (neg.f64 im)))
(/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(/.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)
(/.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) -2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)
(/.f64 (neg.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(neg.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 0 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)))
(-.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 1)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) 2)
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)))) 16)
Outputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/60 (pow.f64 im 5))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(+.f64 (*.f64 -2 im) (+.f64 (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/60 (pow.f64 im 5))) (*.f64 -1/2520 (pow.f64 im 7))))
(+.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/2520 (pow.f64 im 7))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/2520 (pow.f64 im 7)))))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (+.f64 (*.f64 -1/3 (pow.f64 im 3)) (+.f64 (*.f64 -2 im) (*.f64 -1/2520 (pow.f64 im 7)))))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 3) -1/12)))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 1/2 re)))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 1/240 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 5) 1/240)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 3) -1/12))))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 1/240 (pow.f64 re 5)))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 1/240 (pow.f64 re 5)) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 1/2 re))))
(+.f64 (*.f64 -1/12 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 1/240 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 5))) (*.f64 -1/10080 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 7))))))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 5) 1/240)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 7) -1/10080))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (pow.f64 re 3) -1/12))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/240 (pow.f64 re 5))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/10080 (pow.f64 re 7))))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (*.f64 1/2 re))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/10080 (pow.f64 re 7)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/12 (pow.f64 re 3)) (+.f64 (*.f64 -1/10080 (pow.f64 re 7)) (*.f64 1/240 (pow.f64 re 5))))))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (+.f64 (*.f64 -1/10080 (pow.f64 re 7)) (+.f64 (*.f64 1/240 (pow.f64 re 5)) (*.f64 1/2 re)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 im) (sin.f64 re))
(*.f64 im (neg.f64 (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(+.f64 (*.f64 (neg.f64 im) (sin.f64 re)) (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))))
(+.f64 (*.f64 (neg.f64 im) (sin.f64 re)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 -1/120 (sin.f64 re))) (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re)))))
(+.f64 (*.f64 im (neg.f64 (sin.f64 re))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 5) -1/120))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 5) -1/120) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6))))
(+.f64 (*.f64 -1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7))) (+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 7) -1/5040))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re))) (+.f64 (+.f64 (*.f64 (neg.f64 im) (sin.f64 re)) (*.f64 (pow.f64 im 5) (*.f64 -1/120 (sin.f64 re)))) (*.f64 (pow.f64 im 7) (*.f64 -1/5040 (sin.f64 re)))))
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 5) -1/120) (neg.f64 im))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (*.f64 (pow.f64 im 3) -1/6))))
(+.f64 (*.f64 im (neg.f64 (sin.f64 re))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 7) -1/5040) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 5) -1/120)))))
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 5) -1/120) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))) (*.f64 (pow.f64 im 7) (*.f64 (sin.f64 re) -1/5040)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (*.f64 -1 im)) (exp.f64 im))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(+.f64 (exp.f64 (neg.f64 im)) (neg.f64 (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 -1 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 -1 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (neg.f64 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (+.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) -1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (+.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 im))) -1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 -1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 1/2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 4 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 1/4)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 1/4 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(*.f64 (+.f64 (neg.f64 (exp.f64 (+.f64 im im))) 1) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (+.f64 1 (neg.f64 (exp.f64 (+.f64 im im)))))
(*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im))))
(/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) -2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (neg.f64 (*.f64 2 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))) 2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(neg.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(+.f64 0 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 1/4)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(-.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 0)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))) 1)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)) 2)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)) 4)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2))) 8)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 (sin.f64 re) 2)))) 16)
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (sin.f64 re)))

eval23.0ms (0.2%)

Compiler

Compiled 1753 to 870 computations (50.4% saved)

prune16.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New89493
Fresh000
Picked011
Done000
Total89594
Error
0.1b
Counts
94 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
46.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.8b
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
1.0b
(*.f64 (sin.f64 re) (neg.f64 im))
47.6b
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
Compiler

Compiled 61 to 45 computations (26.2% saved)

localize56.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.0b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 36 to 10 computations (72.2% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite102.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1700×bool.json-1
1700×bool.json-2
1646×rational.json-1
1138×bool.json-3
842×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
18615
226615
358915
4128615
5296115
6647415
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (sin.f64 re) (neg.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (/.f64 im -2)) (*.f64 (sin.f64 re) (/.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 im -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 im -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (neg.f64 im)))))))

simplify233.0ms (1.9%)

Algorithm
egg-herbie
Rules
2350×rational.json-simplify-2
1828×rational.json-simplify-35
1728×rational.json-simplify-1
856×rational.json-simplify-53
738×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
066698
1152698
2330698
3733674
42499674
53490674
64298674
74869674
85887674
96195674
107260674
117503674
Stop Event
node limit
Counts
38 → 33
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(+.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (/.f64 im -2)) (*.f64 (sin.f64 re) (/.f64 im -2)))
(-.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(-.f64 0 (*.f64 (sin.f64 re) im))
(/.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(/.f64 (*.f64 (sin.f64 re) (*.f64 im -2)) 2)
(/.f64 (*.f64 (sin.f64 re) (*.f64 im -4)) 4)
(/.f64 (*.f64 (sin.f64 re) im) -1)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)
(neg.f64 (*.f64 (sin.f64 re) im))
Outputs
(*.f64 -1 (*.f64 re im))
(*.f64 re (neg.f64 im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 1/6 (*.f64 im (pow.f64 re 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 3) (*.f64 im 1/6)))
(*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (neg.f64 re)))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 -1/120 (*.f64 im (pow.f64 re 5)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (*.f64 (pow.f64 re 5) (*.f64 im -1/120))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (neg.f64 re))))
(+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (neg.f64 re))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 1/5040 (*.f64 im (pow.f64 re 7)))) (*.f64 -1/120 (*.f64 im (pow.f64 re 5)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 (pow.f64 re 5) (*.f64 im -1/120)) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (+.f64 (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)) (*.f64 (pow.f64 re 5) (*.f64 im -1/120)))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/5040 (pow.f64 re 7)) (*.f64 1/6 (pow.f64 re 3)))) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (neg.f64 re))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (neg.f64 re))) (*.f64 im (+.f64 (*.f64 1/5040 (pow.f64 re 7)) (*.f64 -1/120 (pow.f64 re 5)))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (*.f64 (sin.f64 re) (/.f64 im -2)) (*.f64 (sin.f64 re) (/.f64 im -2)))
(*.f64 (sin.f64 re) (neg.f64 im))
(-.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(*.f64 (sin.f64 re) (neg.f64 im))
(-.f64 0 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (*.f64 im -2)) 2)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (*.f64 im -4)) 4)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) im) -1)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)
(*.f64 (sin.f64 re) (neg.f64 im))
(neg.f64 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
0.2b
(*.f64 (pow.f64 im 3) -1/6)
Compiler

Compiled 37 to 23 computations (37.8% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite93.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1934×bool.json-1
1934×bool.json-2
1068×rational.json-1
1068×rational.json-2
1068×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01346
113346
235446
373046
4158746
5366346
6739446
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 (pow.f64 im 3) -1/6)
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 3) -1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 im 3) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 im 3) -1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 3) -1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 3) -1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 3) -2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (pow.f64 im 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 3) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 im 3) -1/6) (*.f64 (pow.f64 im 3) -1/6))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))))

simplify268.0ms (2.2%)

Algorithm
egg-herbie
Rules
2372×rational.json-simplify-2
1722×rational.json-simplify-35
1118×rational.json-simplify-52
988×rational.json-simplify-1
798×rational.json-simplify-53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0881482
12011482
24151410
38811362
424441362
538051362
640371362
742691362
847991362
952061362
1056251362
1163561362
1267491362
1370861362
1475861362
Stop Event
node limit
Counts
56 → 48
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (pow.f64 im 3) -1/6) 0)
(+.f64 0 (*.f64 (pow.f64 im 3) -1/6))
(+.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) 0)
(/.f64 (*.f64 (pow.f64 im 3) -1/6) 1)
(/.f64 (*.f64 (pow.f64 im 3) -1/3) 2)
(/.f64 (*.f64 (pow.f64 im 3) -2/3) 4)
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)))) 32)
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(+.f64 0 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))
(-.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 2)) 2)
(/.f64 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)) 4)
(/.f64 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))))) 32)
Outputs
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (pow.f64 re 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/6)))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 5))) (*.f64 (pow.f64 re 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/6))))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 5) 1/120))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (+.f64 (*.f64 1/120 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 5))) (*.f64 -1/5040 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 7)))) (*.f64 (pow.f64 re 3) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) -1/6))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 7) -1/5040)) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 5) 1/120)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 1/120 (pow.f64 re 5))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (+.f64 re (*.f64 1/120 (pow.f64 re 5))))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 im (neg.f64 (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6))
(*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 (pow.f64 im 3) -1/6) 0)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 0 (*.f64 (pow.f64 im 3) -1/6))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))
(*.f64 -1/6 (pow.f64 im 3))
(-.f64 (*.f64 (pow.f64 im 3) -1/6) 0)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (pow.f64 im 3) -1/6) 1)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (pow.f64 im 3) -1/3) 2)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (pow.f64 im 3) -2/3) 4)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)) 8)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) 16)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 im 3) -2/3)))) 32)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 0 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(+.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(-.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 2)) 2)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)) 4)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))) 8)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) 16)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4)))) (*.f64 2 (*.f64 2 (*.f64 (sin.f64 re) (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 4))))) 32)
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
0.1b
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
0.1b
(*.f64 (sin.f64 re) (neg.f64 im))
0.2b
(*.f64 (pow.f64 im 3) -1/6)
Compiler

Compiled 45 to 24 computations (46.7% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
re
@inf
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
0.0ms
re
@-inf
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
0.0ms
re
@0
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
0.0ms
im
@inf
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
0.0ms
im
@0
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))

rewrite73.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1328×bool.json-1
1328×bool.json-2
1282×rational.json-1
1282×rational.json-2
1282×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01466
114556
239856
386756
4188456
5442056
Stop Event
node limit
Counts
2 → 31
Calls
Call 1
Inputs
(*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (sin.f64 re) 1/2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) 2) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) 2) (/.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (sin.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))))))

simplify331.0ms (2.7%)

Algorithm
egg-herbie
Rules
2446×rational.json-simplify-2
1906×rational.json-simplify-35
1480×rational.json-simplify-1
730×rational.json-simplify-26
724×rational.json-simplify-51
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01283009
12752629
25502629
313932581
427372581
534672581
637302581
739802581
845692581
950162581
1053132581
1158172581
1262642581
1366452581
1469842581
1578632581
Stop Event
node limit
Counts
79 → 71
Calls
Call 1
Inputs
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3)))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3))) (+.f64 (*.f64 1/30240 (*.f64 (pow.f64 re 7) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re)
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 -1/120 im)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/30240 (pow.f64 im 3)) (*.f64 1/5040 im)) (pow.f64 re 7)) (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 -1/120 im))))))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)))
(-.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)
(/.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 1)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -1/3) 2)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)))) 32)
(-.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
(*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(*.f64 1 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))
(*.f64 2 (*.f64 (*.f64 (sin.f64 re) 1/2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(*.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1/2)
(*.f64 (*.f64 (sin.f64 re) 2) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(*.f64 (*.f64 (sin.f64 re) 2) (/.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 2))
(*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (sin.f64 re))
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))
(*.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 1/4)
(*.f64 1/2 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) 2)
(/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(/.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 2)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)))) 32)
Outputs
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(*.f64 re (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 1/36 (*.f64 (pow.f64 im 3) (pow.f64 re 3))))
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3))))
(*.f64 (pow.f64 im 3) (+.f64 (*.f64 1/36 (pow.f64 re 3)) (*.f64 -1/6 re)))
(*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/6 re) (*.f64 1/36 (pow.f64 re 3))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3)))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 im 3) (pow.f64 re 3))) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 -1/720 (*.f64 (pow.f64 im 3) (pow.f64 re 5)))))
(+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 (pow.f64 re 5) -1/720)) (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3)))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3))) (*.f64 -1/720 (*.f64 (pow.f64 im 3) (pow.f64 re 5)))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/720 (pow.f64 re 5)) (*.f64 1/36 (pow.f64 re 3)))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3))) (+.f64 (*.f64 1/30240 (*.f64 (pow.f64 re 7) (pow.f64 im 3))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 im 3) (pow.f64 re 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 im 3) (pow.f64 re 5))) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 1/30240 (*.f64 (pow.f64 im 3) (pow.f64 re 7))))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 (pow.f64 re 7) 1/30240)) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 (pow.f64 re 5) -1/720)) (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3))))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 1/36 (pow.f64 re 3))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 im 3) (pow.f64 re 5))) (*.f64 1/30240 (*.f64 (pow.f64 im 3) (pow.f64 re 7))))))
(+.f64 (*.f64 (pow.f64 im 3) (+.f64 (*.f64 1/30240 (pow.f64 re 7)) (*.f64 -1/6 re))) (*.f64 (pow.f64 im 3) (+.f64 (*.f64 -1/720 (pow.f64 re 5)) (*.f64 1/36 (pow.f64 re 3)))))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re)
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re))
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 -1/120 im)))))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120)))))
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120)))))
(+.f64 (*.f64 (+.f64 (*.f64 1/6 im) (*.f64 1/36 (pow.f64 im 3))) (pow.f64 re 3)) (+.f64 (*.f64 (+.f64 (*.f64 1/30240 (pow.f64 im 3)) (*.f64 1/5040 im)) (pow.f64 re 7)) (+.f64 (*.f64 (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1 im)) re) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 -1/120 im))))))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 (pow.f64 im 3) 1/30240) (*.f64 im 1/5040))))))
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (+.f64 (+.f64 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 (pow.f64 im 3) 1/30240) (*.f64 im 1/5040)))) (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36)))))
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (+.f64 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 (pow.f64 im 3) 1/30240) (*.f64 im 1/5040))))))
(+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (+.f64 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120))) (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 (pow.f64 im 3) 1/30240) (*.f64 im 1/5040))))))
(+.f64 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 (pow.f64 im 3) -1/720) (*.f64 im -1/120))) (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 (pow.f64 im 3) 1/30240) (*.f64 im 1/5040))))))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/12)))
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(-.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 0)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) 1)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -1/3) 2)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3) 4)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)) 8)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) 16)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (pow.f64 im 3)) -2/3)))) 32)
(*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re)))
(-.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 0)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 1 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 2 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 2 (*.f64 (*.f64 (sin.f64 re) 1/2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1/2)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (sin.f64 re) 2) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (sin.f64 re) 2) (/.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) 2))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 1/4)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 1/2 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 2 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) (*.f64 (sin.f64 re) 1/2))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 (*.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im)) (*.f64 (sin.f64 re) 1/2)) 2)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 1)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (*.f64 (*.f64 (sin.f64 re) 2) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 2)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4) 4)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)) 8)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) 16)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (+.f64 (*.f64 (pow.f64 im 3) -1/6) (neg.f64 im))) 4)))) 32)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (pow.f64 im 3) (sin.f64 re))))
(*.f64 (sin.f64 re) (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))

eval212.0ms (1.7%)

Compiler

Compiled 4636 to 2943 computations (36.5% saved)

prune39.0ms (0.3%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New2355240
Fresh000
Picked011
Done134
Total2369245
Error
0.1b
Counts
245 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
47.7b
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
0.8b
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
46.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.0b
(*.f64 (sin.f64 re) (neg.f64 im))
32.7b
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
32.7b
(*.f64 re (neg.f64 im))
47.6b
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
47.6b
(*.f64 1/2 (*.f64 (*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im)))) re))
Compiler

Compiled 158 to 117 computations (25.9% saved)

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
0.2b
(*.f64 -1/6 (pow.f64 im 3))
Compiler

Compiled 33 to 22 computations (33.3% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

9 calls:

TimeVariablePointExpression
0.0ms
im
@inf
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
0.0ms
re
@0
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
0.0ms
im
@-inf
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
0.0ms
im
@0
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
0.0ms
im
@inf
(*.f64 -1/6 (pow.f64 im 3))

rewrite768.0ms (6.2%)

Algorithm
batch-egg-rewrite
Rules
1836×bool.json-1
1836×bool.json-2
1210×bool.json-3
898×rational.json-1
898×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01242
111942
231542
364742
4136342
5307042
6682842
Stop Event
node limit
Counts
2 → 20
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 3) -1/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 im 3) -2/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -1/6 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/6 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/6 (pow.f64 im 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)))))))

simplify245.0ms (2%)

Algorithm
egg-herbie
Rules
2272×rational.json-simplify-53
2050×rational.json-simplify-45
1936×rational.json-simplify-35
1186×rational.json-simplify-43
720×rational.json-simplify-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0851760
11901704
23881254
310311206
430551206
542421206
645401206
748051206
853941206
958421206
1061591206
1171511206
1272901206
1375371206
Stop Event
node limit
Counts
44 → 46
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(+.f64 0 (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(/.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)
(/.f64 (*.f64 (pow.f64 im 3) -1/3) 2)
(/.f64 (*.f64 (pow.f64 im 3) -2/3) 4)
(/.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8))) 32)
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)
(+.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)))
(-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 1)
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 2)) 2)
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 4)) 4)
(/.f64 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8))) 32)
Outputs
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
(*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 -1/6 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 3))))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6)))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 3))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 1/120 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 5)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 5) 1/120)) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 1/120 (pow.f64 re 5)))))
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))))
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))))))
(+.f64 (*.f64 -1/6 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 3))) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (+.f64 (*.f64 1/120 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 5))) (*.f64 -1/5040 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (pow.f64 re 7))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 7) -1/5040)) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 5) 1/120)) (+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (pow.f64 re 3) -1/6)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 -1/6 (pow.f64 re 3))) (+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 1/120 (pow.f64 re 5))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 1/120 (pow.f64 re 5))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 -1/5040 (pow.f64 re 7)) (+.f64 re (*.f64 -1/6 (pow.f64 re 3))))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 re (*.f64 -1/6 (pow.f64 re 3)))) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (+.f64 (*.f64 1/120 (pow.f64 re 5)) (*.f64 -1/5040 (pow.f64 re 7)))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 0 (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 (pow.f64 im 3) -1/12) (*.f64 (pow.f64 im 3) -1/12))
(*.f64 -1/6 (pow.f64 im 3))
(-.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 -1/6 (pow.f64 im 3)) 1)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (pow.f64 im 3) -1/3) 2)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (pow.f64 im 3) -2/3) 4)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8) 8)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) 16)
(*.f64 -1/6 (pow.f64 im 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8)) (*.f64 2 (*.f64 (*.f64 -1/6 (pow.f64 im 3)) 8))) 32)
(*.f64 -1/6 (pow.f64 im 3))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 1/2)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(-.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 0)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 1)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 2)) 2)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (*.f64 (sin.f64 re) 4)) 4)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8) 8)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) 16)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8)) (*.f64 2 (*.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re)) 8))) 32)
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (sin.f64 re) (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))

localize4.0ms (0%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 26 to 12 computations (53.8% saved)

series2.0ms (0%)

Counts
2 → 28
Calls

12 calls:

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

rewrite93.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1800×bool.json-1
1800×bool.json-2
1192×bool.json-3
898×rational.json-1
898×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01134
111634
231828
364526
4133226
5301326
6673926
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
(*.f64 (sin.f64 re) im)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 -1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -1) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -1) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (*.f64 (sin.f64 re) im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (*.f64 (sin.f64 re) im)) (neg.f64 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (*.f64 (sin.f64 re) im)) (neg.f64 (*.f64 (sin.f64 re) im)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) (*.f64 (sin.f64 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sin.f64 re) im) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) im) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (+.f64 im im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) im) (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) im) (*.f64 (sin.f64 re) im))))))

simplify98.0ms (0.8%)

Algorithm
egg-herbie
Rules
1390×rational.json-simplify-51
1298×rational.json-simplify-52
1282×rational.json-simplify-1
1280×rational.json-simplify-35
1104×rational.json-simplify-45
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01251339
13031331
28291313
325591277
445461277
568731277
Stop Event
node limit
Counts
77 → 89
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im)))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) im)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im))))
(-.f64 -1 (+.f64 -1 (*.f64 (sin.f64 re) im)))
(-.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))
(-.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) 1)
(-.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 0)
(-.f64 0 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 1 (neg.f64 (*.f64 (sin.f64 re) im)))
(*.f64 (*.f64 (sin.f64 re) im) -1)
(*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)
(*.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 1/2)
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))
(*.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 1/4)
(*.f64 1/2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)
(*.f64 1/4 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)
(/.f64 (*.f64 (sin.f64 re) im) -1)
(/.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 2)
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 4)
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8) 8)
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)
(/.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8))) 32)
(/.f64 (/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -1) 2)
(/.f64 (/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -1) 4)
(/.f64 (/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -1) 8)
(/.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)
(neg.f64 (*.f64 (sin.f64 re) im))
(+.f64 -1 (+.f64 1 (*.f64 (sin.f64 re) im)))
(+.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 (sin.f64 re) im) 0)
(+.f64 0 (*.f64 (sin.f64 re) im))
(+.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) 1)
(+.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) -1)
(+.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) (*.f64 (sin.f64 re) (*.f64 im 1/2)))
(-.f64 (*.f64 (sin.f64 re) im) 0)
(-.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) -1)
(-.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) 1)
(/.f64 (*.f64 (sin.f64 re) im) 1)
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) 2)
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8))) 32)
Outputs
(*.f64 -1 (*.f64 re im))
(*.f64 re (neg.f64 im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 im (pow.f64 re 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 1/6 (pow.f64 re 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 3) (*.f64 im 1/6)))
(*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (neg.f64 re)))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 (pow.f64 re 5) (*.f64 im -1/120))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (*.f64 im (*.f64 (pow.f64 re 5) -1/120))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 -1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (neg.f64 re))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (*.f64 1/6 (pow.f64 re 3)))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(+.f64 (*.f64 (pow.f64 re 5) (*.f64 im -1/120)) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (+.f64 (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)) (*.f64 -1 (*.f64 re im)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 im (*.f64 (pow.f64 re 5) -1/120)) (+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (*.f64 im (*.f64 (pow.f64 re 7) 1/5040)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 im (*.f64 -1/120 (pow.f64 re 5))) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (neg.f64 re))) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (*.f64 1/5040 (pow.f64 re 7)))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/6 (pow.f64 re 3)) (neg.f64 re))) (*.f64 im (+.f64 (*.f64 1/5040 (pow.f64 re 7)) (*.f64 -1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 im (+.f64 (*.f64 1/5040 (pow.f64 re 7)) (*.f64 1/6 (pow.f64 re 3)))) (*.f64 im (+.f64 (*.f64 -1/120 (pow.f64 re 5)) (neg.f64 re))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 re im)
(+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im))
(+.f64 (*.f64 re im) (*.f64 (pow.f64 re 3) (*.f64 im -1/6)))
(+.f64 (*.f64 re im) (*.f64 im (*.f64 -1/6 (pow.f64 re 3))))
(*.f64 im (+.f64 re (*.f64 (pow.f64 re 3) -1/6)))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im)))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 im -1/6)) (+.f64 (*.f64 re im) (*.f64 (pow.f64 re 5) (*.f64 im 1/120))))
(+.f64 (*.f64 re im) (+.f64 (*.f64 (pow.f64 re 5) (*.f64 im 1/120)) (*.f64 im (*.f64 -1/6 (pow.f64 re 3)))))
(+.f64 (*.f64 im (*.f64 (pow.f64 re 3) -1/6)) (*.f64 im (+.f64 re (*.f64 (pow.f64 re 5) 1/120))))
(*.f64 im (+.f64 (*.f64 (pow.f64 re 5) 1/120) (+.f64 re (*.f64 (pow.f64 re 3) -1/6))))
(+.f64 (*.f64 1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) im)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 re im))))
(+.f64 (*.f64 (pow.f64 re 5) (*.f64 im 1/120)) (+.f64 (+.f64 (*.f64 re im) (*.f64 (pow.f64 re 3) (*.f64 im -1/6))) (*.f64 (pow.f64 re 7) (*.f64 im -1/5040))))
(+.f64 (*.f64 im (*.f64 -1/6 (pow.f64 re 3))) (+.f64 (+.f64 (*.f64 re im) (*.f64 im (*.f64 -1/5040 (pow.f64 re 7)))) (*.f64 (pow.f64 re 5) (*.f64 im 1/120))))
(+.f64 (*.f64 im (*.f64 (pow.f64 re 3) -1/6)) (+.f64 (*.f64 im (*.f64 (pow.f64 re 7) -1/5040)) (*.f64 im (+.f64 re (*.f64 (pow.f64 re 5) 1/120)))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 im -1/6)) (*.f64 im (+.f64 (*.f64 (pow.f64 re 7) -1/5040) (+.f64 re (*.f64 (pow.f64 re 5) 1/120)))))
(+.f64 (*.f64 (pow.f64 re 3) (*.f64 im -1/6)) (*.f64 im (+.f64 (*.f64 (pow.f64 re 5) 1/120) (+.f64 re (*.f64 (pow.f64 re 7) -1/5040)))))
(-.f64 -1 (+.f64 -1 (*.f64 (sin.f64 re) im)))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(-.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(-.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) 1)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(-.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 0)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(-.f64 0 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 1 (neg.f64 (*.f64 (sin.f64 re) im)))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (*.f64 (sin.f64 re) im) -1)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 1/2)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 1/4)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 1/2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 1/4 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (sin.f64 re) im) -1)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 1)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 2) 2)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 4) 4)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8) 8)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) 16)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8)) (*.f64 2 (*.f64 (neg.f64 (*.f64 (sin.f64 re) im)) 8))) 32)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -1) 2)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -1) 4)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -1) 8)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(/.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(neg.f64 (*.f64 (sin.f64 re) im))
(neg.f64 (*.f64 im (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (sin.f64 (neg.f64 re)))
(+.f64 -1 (+.f64 1 (*.f64 (sin.f64 re) im)))
(*.f64 im (sin.f64 re))
(+.f64 1 (+.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 im (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) im) 0)
(*.f64 im (sin.f64 re))
(+.f64 0 (*.f64 (sin.f64 re) im))
(*.f64 im (sin.f64 re))
(+.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) 1)
(*.f64 im (sin.f64 re))
(+.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) -1)
(*.f64 im (sin.f64 re))
(+.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) (*.f64 (sin.f64 re) (*.f64 im 1/2)))
(*.f64 im (sin.f64 re))
(-.f64 (*.f64 (sin.f64 re) im) 0)
(*.f64 im (sin.f64 re))
(-.f64 (+.f64 -1 (*.f64 (sin.f64 re) im)) -1)
(*.f64 im (sin.f64 re))
(-.f64 (+.f64 1 (*.f64 (sin.f64 re) im)) 1)
(*.f64 im (sin.f64 re))
(/.f64 (*.f64 (sin.f64 re) im) 1)
(*.f64 im (sin.f64 re))
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) 2)
(*.f64 im (sin.f64 re))
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) 4)
(*.f64 im (sin.f64 re))
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) 8)
(*.f64 im (sin.f64 re))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) 16)
(*.f64 im (sin.f64 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8))) 32)
(*.f64 im (sin.f64 re))

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -1/6 (pow.f64 im 3))
Compiler

Compiled 30 to 21 computations (30% saved)

localize20.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im))))
5.0b
(-.f64 1 (exp.f64 (+.f64 im im)))
Compiler

Compiled 60 to 23 computations (61.7% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite81.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1848×bool.json-1
1848×bool.json-2
1800×rational.json-1
1498×bool.json-3
642×rational.json-simplify-49
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01148
111944
234744
375844
4171436
5544736
Stop Event
node limit
Counts
2 → 69
Calls
Call 1
Inputs
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (exp.f64 (+.f64 im im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (exp.f64 (+.f64 im im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 1 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 1 (exp.f64 (+.f64 im im))) (-.f64 1 (exp.f64 (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 1 (exp.f64 (+.f64 im im))) (-.f64 1 (exp.f64 (+.f64 im im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (*.f64 -1 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (-.f64 0 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (neg.f64 im)) (/.f64 1 (-.f64 1 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (-.f64 1 (exp.f64 (+.f64 im im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (*.f64 -1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) (*.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/2 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (exp.f64 im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 8 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (*.f64 (exp.f64 im) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (/.f64 1 (/.f64 2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (exp.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1))) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (exp.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (exp.f64 im)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 im))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (-.f64 0 (*.f64 (exp.f64 im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))))

simplify108.0ms (0.9%)

Algorithm
egg-herbie
Rules
2006×rational.json-simplify-35
1340×rational.json-simplify-2
1088×rational.json-simplify-51
734×rational.json-simplify-43
710×rational.json-simplify-53
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01822129
14912111
216842111
339282111
477122111
Stop Event
node limit
Counts
93 → 95
Calls
Call 1
Inputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2)))
(+.f64 (*.f64 -4/3 (pow.f64 im 3)) (+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2))))
(+.f64 (*.f64 -4/3 (pow.f64 im 3)) (+.f64 (*.f64 -2/3 (pow.f64 im 4)) (+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2)))))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(+.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 0)
(+.f64 0 (-.f64 1 (exp.f64 (+.f64 im im))))
(+.f64 -1 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)))
(+.f64 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1)
(*.f64 1 (-.f64 1 (exp.f64 (+.f64 im im))))
(*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)
(*.f64 -1 (+.f64 (exp.f64 (+.f64 im im)) -1))
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 1/2)
(*.f64 4 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) 2)
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 2)
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) 8)
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))) 16)
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1) 2)
(neg.f64 (+.f64 (exp.f64 (+.f64 im im)) -1))
(+.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(+.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(/.f64 1 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(/.f64 1 (*.f64 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) 2))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (*.f64 -1 (neg.f64 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (-.f64 0 (neg.f64 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 im)) -1))
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 1 (-.f64 1 (exp.f64 (+.f64 im im)))))
(/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(/.f64 -1 (-.f64 0 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(/.f64 2 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(/.f64 2 (*.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))
(/.f64 2 (*.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) (*.f64 (exp.f64 im) 2))
(/.f64 4 (+.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (-.f64 1 (exp.f64 (+.f64 im im)))))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (neg.f64 (exp.f64 im)))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (*.f64 -1 (exp.f64 im)))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) (*.f64 (exp.f64 im) 4))
(/.f64 1/2 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(/.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (exp.f64 im) 4)))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 8 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (neg.f64 (exp.f64 im))))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (*.f64 (exp.f64 im) 1/2))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (/.f64 1 (/.f64 2 (exp.f64 im))))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 1/2)
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (exp.f64 im) 2)))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (exp.f64 im)) 2))
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)
(/.f64 (+.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1))) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (exp.f64 im)) -1)
(/.f64 (/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (exp.f64 im)) 8)
(/.f64 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 im))) -1)
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (-.f64 0 (*.f64 (exp.f64 im) 4)))
(/.f64 (neg.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (*.f64 (exp.f64 im) 2))
Outputs
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2)))
(*.f64 -2 (+.f64 (pow.f64 im 2) im))
(*.f64 -2 (+.f64 im (pow.f64 im 2)))
(+.f64 (*.f64 -4/3 (pow.f64 im 3)) (+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -2 (pow.f64 im 2)) (*.f64 -4/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 (+.f64 (pow.f64 im 2) im)) (*.f64 -4/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 (+.f64 im (pow.f64 im 2))) (*.f64 -4/3 (pow.f64 im 3)))
(+.f64 (*.f64 -4/3 (pow.f64 im 3)) (+.f64 (*.f64 -2/3 (pow.f64 im 4)) (+.f64 (*.f64 -2 im) (*.f64 -2 (pow.f64 im 2)))))
(+.f64 (*.f64 -4/3 (pow.f64 im 3)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -2 (pow.f64 im 2)) (*.f64 -2/3 (pow.f64 im 4)))))
(+.f64 (*.f64 -2 (+.f64 (pow.f64 im 2) im)) (+.f64 (*.f64 -4/3 (pow.f64 im 3)) (*.f64 -2/3 (pow.f64 im 4))))
(+.f64 (*.f64 -2 (+.f64 im (pow.f64 im 2))) (+.f64 (*.f64 -4/3 (pow.f64 im 3)) (*.f64 -2/3 (pow.f64 im 4))))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (*.f64 2 im)))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im))))
(-.f64 1 (exp.f64 (*.f64 im 2)))
(*.f64 -2 im)
(+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 3) -1/3))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 (pow.f64 im 3) -1/3) (*.f64 -1/60 (pow.f64 im 5))))
(+.f64 (*.f64 -1/2520 (pow.f64 im 7)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))))
(+.f64 (*.f64 -2 im) (+.f64 (+.f64 (*.f64 (pow.f64 im 3) -1/3) (*.f64 -1/60 (pow.f64 im 5))) (*.f64 -1/2520 (pow.f64 im 7))))
(+.f64 (*.f64 -2 im) (+.f64 (*.f64 (pow.f64 im 3) -1/3) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/2520 (pow.f64 im 7)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 2 im))) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(*.f64 (exp.f64 (*.f64 -1 im)) (-.f64 1 (exp.f64 (neg.f64 (*.f64 -2 im)))))
(*.f64 (-.f64 1 (exp.f64 (*.f64 im 2))) (exp.f64 (neg.f64 im)))
(+.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 0)
(-.f64 1 (exp.f64 (+.f64 im im)))
(+.f64 0 (-.f64 1 (exp.f64 (+.f64 im im))))
(-.f64 1 (exp.f64 (+.f64 im im)))
(+.f64 -1 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)))
(-.f64 1 (exp.f64 (+.f64 im im)))
(+.f64 (-.f64 1 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1)
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 1 (-.f64 1 (exp.f64 (+.f64 im im))))
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 -1 (+.f64 (exp.f64 (+.f64 im im)) -1))
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2))
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 1/2)
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 4 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 1/4)
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 1/2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))
(-.f64 1 (exp.f64 (+.f64 im im)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) 2)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) 2)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) -1)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) 4)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) 8)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -2)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4))) 16)
(-.f64 1 (exp.f64 (+.f64 im im)))
(/.f64 (/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) -1) 2)
(-.f64 1 (exp.f64 (+.f64 im im)))
(neg.f64 (+.f64 (exp.f64 (+.f64 im im)) -1))
(-.f64 1 (exp.f64 (+.f64 im im)))
(+.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(+.f64 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(-.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 1 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 1 (*.f64 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) 2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (*.f64 -1 (neg.f64 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (-.f64 0 (neg.f64 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (/.f64 (neg.f64 (exp.f64 im)) -1))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 1 (-.f64 1 (exp.f64 (+.f64 im im)))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 -1 (-.f64 0 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 2 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 2 (*.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 2 (*.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 1))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 2) 2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2) (*.f64 (exp.f64 im) 2))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 4 (+.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (-.f64 1 (exp.f64 (+.f64 im im)))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (neg.f64 (exp.f64 im)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (*.f64 -1 (exp.f64 im)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4) 4)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4) (*.f64 (exp.f64 im) 4))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 1/2 (*.f64 1/2 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (/.f64 2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (*.f64 (/.f64 (/.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))) 2))
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 2 (*.f64 (exp.f64 im) 4)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (*.f64 8 (exp.f64 im)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) 8)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (neg.f64 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (*.f64 (exp.f64 im) 1/2))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 1/2) (/.f64 1 (/.f64 2 (exp.f64 im))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1/2) 1/2)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (exp.f64 im) 2)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (*.f64 (neg.f64 (exp.f64 im)) 2))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2)) (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4)) (*.f64 2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 4))) 16)
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
(/.f64 (+.f64 (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1)) (*.f64 2 (+.f64 (exp.f64 (+.f64 im im)) -1))) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (/.f64 (+.f64 (exp.f64 (+.f64 im im)) -1) (exp.f64 im)) -1)
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (/.f64 (*.f64 2 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (exp.f64 im)) 8)
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (neg.f64 (exp.f64 im))) -1)
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 4)) (-.f64 0 (*.f64 (exp.f64 im) 4)))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))
(/.f64 (neg.f64 (neg.f64 (*.f64 (-.f64 1 (exp.f64 (+.f64 im im))) 2))) (*.f64 (exp.f64 im) 2))
(/.f64 (-.f64 1 (exp.f64 (+.f64 im im))) (exp.f64 im))

eval67.0ms (0.5%)

Compiler

Compiled 4060 to 2585 computations (36.3% saved)

prune37.0ms (0.3%)

Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New2383241
Fresh000
Picked011
Done178
Total23911250
Error
0.1b
Counts
250 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
47.7b
(-.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))
0.8b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
48.6b
(+.f64 -1 (-.f64 1 (*.f64 re im)))
0.8b
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
46.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.0b
(*.f64 (sin.f64 re) (neg.f64 im))
32.7b
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
32.7b
(*.f64 re (neg.f64 im))
47.6b
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
47.6b
(*.f64 1/2 (*.f64 (*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im)))) re))
32.8b
(*.f64 1/2 (*.f64 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im)) re))
Compiler

Compiled 125 to 93 computations (25.6% saved)

localize61.0ms (0.5%)

Local error

Found 3 expressions with local error:

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

Compiled 41 to 21 computations (48.8% saved)

series7.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

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

rewrite91.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1990×bool.json-1
1990×bool.json-2
1560×bool.json-3
780×rational.json-1
780×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01381
113669
238563
392461
4231561
5635761
Stop Event
node limit
Counts
3 → 127
Calls
Call 1
Inputs
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im)) re)
(*.f64 1/2 (*.f64 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im)) re))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 im (/.f64 -2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 im (neg.f64 (exp.f64 im))) (/.f64 im (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (/.f64 (exp.f64 im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 im) (/.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (exp.f64 (neg.f64 im)) (/.f64 -1/2 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (/.f64 (exp.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (*.f64 -1 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (-.f64 0 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (/.f64 (*.f64 2 (neg.f64 (exp.f64 im))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (/.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (/.f64 (neg.f64 (exp.f64 im)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/2 (/.f64 (exp.f64 im) (*.f64 im -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (exp.f64 im) (*.f64 im -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (exp.f64 im) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (*.f64 (/.f64 (exp.f64 im) (neg.f64 im)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -4) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im im) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im im) (*.f64 -1 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 im (neg.f64 (exp.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (/.f64 (exp.f64 im) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (+.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -8) (*.f64 (exp.f64 im) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 4) (*.f64 2 (neg.f64 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 4) (*.f64 -2 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im 4) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 im (exp.f64 im)) -8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 im (/.f64 (exp.f64 im) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 im -8)) (*.f64 2 (*.f64 (exp.f64 im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 im -8)) (*.f64 8 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 im 4)) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im 4) (exp.f64 im)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (exp.f64 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 (*.f64 im -8) (exp.f64 im))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 im -4))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 im -8)) (exp.f64 im)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im -8)) (-.f64 0 (*.f64 (exp.f64 im) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (neg.f64 (*.f64 im -4))) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 im (/.f64 (exp.f64 im) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 im (/.f64 -2 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 im (/.f64 -2 (exp.f64 im))) (*.f64 im (/.f64 -2 (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 im (/.f64 -2 (exp.f64 im))) (*.f64 im (/.f64 -2 (exp.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (/.f64 (/.f64 (exp.f64 im) -2) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 im) (/.f64 (/.f64 (exp.f64 im) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (/.f64 (exp.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 re (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (exp.f64 im) (*.f64 im (*.f64 -2 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re 1/2) (/.f64 (exp.f64 im) (*.f64 im -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 im (*.f64 -2 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re re) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 -2 re)) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 re (exp.f64 im)) (/.f64 -1/2 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im (*.f64 -2 re))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re 4) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -2 re) (/.f64 (exp.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 im) re) (/.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 re) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 re 4)) (*.f64 8 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re (*.f64 im -4)) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 re 4) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 re 4)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 re (*.f64 im -4)) (exp.f64 im)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im (*.f64 -2 re))) (neg.f64 (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 im (/.f64 (/.f64 (exp.f64 im) -2) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 im) (/.f64 (exp.f64 im) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -2) (/.f64 (*.f64 (exp.f64 im) 2) re))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 re (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 re (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re 1/2) (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 re re) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 -2 re)) (*.f64 (exp.f64 im) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 im) re) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (/.f64 re (exp.f64 im))) (/.f64 -1/2 im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 re) (/.f64 (exp.f64 im) im))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 (*.f64 re 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 re 4) (/.f64 (exp.f64 im) (*.f64 im -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 re 1/2)) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 im (/.f64 re (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))))))

simplify138.0ms (1.1%)

Algorithm
egg-herbie
Rules
1050×rational.json-simplify-2
1000×rational.json-simplify-35
762×rational.json-simplify-41
692×rational.json-simplify-50
620×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03094741
110364715
232383979
348033979
473263979
Stop Event
node limit
Counts
187 → 183
Calls
Call 1
Inputs
(*.f64 -2 im)
(+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 -2 im))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -2 im) (*.f64 -1 (pow.f64 im 3))))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -2 im) (*.f64 -1 (pow.f64 im 3)))))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 -2 (*.f64 re im))
(+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im)))
(+.f64 (*.f64 -1 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im))))
(+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im)))))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (pow.f64 im 2)))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 1/6 (*.f64 re (pow.f64 im 4))))))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(+.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)
(+.f64 0 (*.f64 im (/.f64 -2 (exp.f64 im))))
(+.f64 (/.f64 im (neg.f64 (exp.f64 im))) (/.f64 im (neg.f64 (exp.f64 im))))
(-.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)
(/.f64 im (/.f64 (exp.f64 im) -2))
(/.f64 (neg.f64 im) (/.f64 (exp.f64 im) 2))
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 -1/2 im))
(/.f64 -2 (/.f64 (exp.f64 im) im))
(/.f64 (*.f64 im -2) (exp.f64 im))
(/.f64 (*.f64 im -2) (*.f64 -1 (neg.f64 (exp.f64 im))))
(/.f64 (*.f64 im -2) (-.f64 0 (neg.f64 (exp.f64 im))))
(/.f64 (*.f64 im -2) (/.f64 (*.f64 2 (neg.f64 (exp.f64 im))) -2))
(/.f64 (*.f64 im -2) (/.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) -2))
(/.f64 (*.f64 im -2) (/.f64 (neg.f64 (exp.f64 im)) -1))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 1)
(/.f64 1/2 (/.f64 (exp.f64 im) (*.f64 im -4)))
(/.f64 1 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(/.f64 1 (*.f64 (/.f64 (exp.f64 im) (*.f64 im -4)) 2))
(/.f64 -1 (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 2 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 2 (/.f64 (exp.f64 im) (neg.f64 im)))
(/.f64 2 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(/.f64 2 (*.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 1))
(/.f64 2 (*.f64 (/.f64 (exp.f64 im) (neg.f64 im)) 1))
(/.f64 (*.f64 im -4) (*.f64 (exp.f64 im) 2))
(/.f64 (+.f64 im im) (neg.f64 (exp.f64 im)))
(/.f64 (+.f64 im im) (*.f64 -1 (exp.f64 im)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) 2)
(/.f64 (/.f64 im (neg.f64 (exp.f64 im))) 1/2)
(/.f64 4 (+.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (/.f64 (exp.f64 im) (neg.f64 im))))
(/.f64 4 (+.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im -2)))
(/.f64 (*.f64 im -8) (*.f64 (exp.f64 im) 4))
(/.f64 (*.f64 im 4) (*.f64 2 (neg.f64 (exp.f64 im))))
(/.f64 (*.f64 im 4) (*.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im 4) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -8) 4)
(/.f64 (/.f64 im (/.f64 (exp.f64 im) 2)) -1)
(/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 2))
(/.f64 (*.f64 2 (*.f64 im -8)) (*.f64 2 (*.f64 (exp.f64 im) 4)))
(/.f64 (*.f64 2 (*.f64 im -8)) (*.f64 8 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)
(/.f64 (*.f64 2 (*.f64 im 4)) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) 4)
(/.f64 (/.f64 (*.f64 im 4) (exp.f64 im)) -2)
(/.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 (exp.f64 im) 2)))
(/.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))
(/.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (exp.f64 im)) 2))
(/.f64 (+.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 (*.f64 im -8) (exp.f64 im))) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)
(/.f64 (+.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 im -4))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))
(/.f64 (/.f64 (*.f64 2 (*.f64 im -8)) (exp.f64 im)) 8)
(/.f64 (neg.f64 (*.f64 im -8)) (-.f64 0 (*.f64 (exp.f64 im) 4)))
(/.f64 (neg.f64 (neg.f64 (*.f64 im -4))) (*.f64 (exp.f64 im) 2))
(neg.f64 (/.f64 im (/.f64 (exp.f64 im) 2)))
(+.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)
(+.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))
(+.f64 0 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))))
(-.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)
(/.f64 im (/.f64 (/.f64 (exp.f64 im) -2) re))
(/.f64 (neg.f64 im) (/.f64 (/.f64 (exp.f64 im) 2) re))
(/.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) re))
(/.f64 (*.f64 im -2) (/.f64 (exp.f64 im) re))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 re))
(/.f64 re (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(/.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 1)
(/.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1/2)
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) re))
(/.f64 1 (/.f64 (exp.f64 im) (*.f64 im (*.f64 -2 re))))
(/.f64 (*.f64 re 1/2) (/.f64 (exp.f64 im) (*.f64 im -4)))
(/.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) re))
(/.f64 2 (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 im (*.f64 -2 re))))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 2)
(/.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) re))
(/.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) re))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 re))
(/.f64 (+.f64 re re) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(/.f64 (*.f64 im (*.f64 -2 re)) (exp.f64 im))
(/.f64 (/.f64 re (exp.f64 im)) (/.f64 -1/2 im))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im (*.f64 -2 re))))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 4)
(/.f64 (*.f64 re 4) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (*.f64 -2 re) (/.f64 (exp.f64 im) im))
(/.f64 (*.f64 (neg.f64 im) re) (/.f64 (exp.f64 im) 2))
(/.f64 (neg.f64 re) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (*.f64 2 (*.f64 re 4)) (*.f64 8 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (*.f64 re (*.f64 im -4)) (*.f64 (exp.f64 im) 2))
(/.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 8)
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 re))
(/.f64 (+.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)))) 16)
(/.f64 (/.f64 (*.f64 re 4) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 4)
(/.f64 (/.f64 (*.f64 2 (*.f64 re 4)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 8)
(/.f64 (/.f64 (*.f64 re (*.f64 im -4)) (exp.f64 im)) 2)
(/.f64 (neg.f64 (*.f64 im (*.f64 -2 re))) (neg.f64 (exp.f64 im)))
(+.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)
(+.f64 0 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))
(-.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)
(/.f64 im (/.f64 (/.f64 (exp.f64 im) -2) (*.f64 re 1/2)))
(/.f64 (neg.f64 im) (/.f64 (exp.f64 im) re))
(/.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) (*.f64 re 1/2)))
(/.f64 (*.f64 im -2) (/.f64 (*.f64 (exp.f64 im) 2) re))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 (*.f64 re 1/2)))
(/.f64 re (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 re (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(/.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 2)
(/.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1)
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 re 1/2)))
(/.f64 (*.f64 re 1/2) (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(/.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (*.f64 re 1/2)))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 4)
(/.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 re 1/2)))
(/.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) (*.f64 re 1/2)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 (*.f64 re 1/2)))
(/.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 4))
(/.f64 (+.f64 re re) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(/.f64 (*.f64 im (*.f64 -2 re)) (*.f64 (exp.f64 im) 2))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)
(/.f64 (*.f64 (neg.f64 im) re) (exp.f64 im))
(/.f64 (*.f64 1/2 (/.f64 re (exp.f64 im))) (/.f64 -1/2 im))
(/.f64 (neg.f64 re) (/.f64 (exp.f64 im) im))
(/.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 (*.f64 re 1/2)))
(/.f64 (/.f64 re 4) (/.f64 (exp.f64 im) (*.f64 im -4)))
(/.f64 (neg.f64 (*.f64 re 1/2)) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(neg.f64 (*.f64 im (/.f64 re (exp.f64 im))))
Outputs
(*.f64 -2 im)
(+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 -2 im))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -2 im) (*.f64 -1 (pow.f64 im 3))))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -1 (pow.f64 im 3)) (*.f64 -2 im)))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (neg.f64 (pow.f64 im 3)) (*.f64 -2 im)))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 1/3 (pow.f64 im 4)) (+.f64 (*.f64 -2 im) (*.f64 -1 (pow.f64 im 3)))))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1 (pow.f64 im 3)) (*.f64 1/3 (pow.f64 im 4)))))
(+.f64 (*.f64 2 (pow.f64 im 2)) (+.f64 (*.f64 -2 im) (+.f64 (neg.f64 (pow.f64 im 3)) (*.f64 1/3 (pow.f64 im 4)))))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(*.f64 -2 (*.f64 re im))
(*.f64 -2 (*.f64 im re))
(+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 im 2) re)) (*.f64 -2 (*.f64 im re)))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 2 re)) (*.f64 -2 (*.f64 im re)))
(*.f64 re (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 -2 im)))
(+.f64 (*.f64 -1 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 im 2) re)) (+.f64 (*.f64 -2 (*.f64 im re)) (*.f64 -1 (*.f64 (pow.f64 im 3) re))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 2 re)) (+.f64 (*.f64 (pow.f64 im 3) (neg.f64 re)) (*.f64 -2 (*.f64 im re))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 2 re)) (*.f64 re (+.f64 (neg.f64 (pow.f64 im 3)) (*.f64 -2 im))))
(+.f64 (*.f64 (pow.f64 im 2) (+.f64 re re)) (*.f64 re (+.f64 (neg.f64 (pow.f64 im 3)) (*.f64 -2 im))))
(+.f64 (*.f64 1/3 (*.f64 re (pow.f64 im 4))) (+.f64 (*.f64 -1 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 2 (*.f64 re (pow.f64 im 2))) (*.f64 -2 (*.f64 re im)))))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 im 3) re)) (+.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 im 2) re)) (*.f64 -2 (*.f64 im re))) (*.f64 1/3 (*.f64 (pow.f64 im 4) re))))
(+.f64 (*.f64 (pow.f64 im 2) (*.f64 2 re)) (+.f64 (+.f64 (*.f64 (pow.f64 im 3) (neg.f64 re)) (*.f64 -2 (*.f64 im re))) (*.f64 1/3 (*.f64 (pow.f64 im 4) re))))
(+.f64 (*.f64 re (+.f64 (*.f64 2 (pow.f64 im 2)) (*.f64 -2 im))) (*.f64 re (+.f64 (neg.f64 (pow.f64 im 3)) (*.f64 1/3 (pow.f64 im 4)))))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -2 (*.f64 re (*.f64 im (exp.f64 (neg.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(*.f64 -1 (*.f64 re im))
(*.f64 (neg.f64 im) re)
(*.f64 im (neg.f64 re))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (pow.f64 im 2)))
(+.f64 (*.f64 (pow.f64 im 2) re) (*.f64 (neg.f64 im) re))
(*.f64 re (+.f64 (neg.f64 im) (pow.f64 im 2)))
(*.f64 re (+.f64 (pow.f64 im 2) (neg.f64 im)))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (pow.f64 im 2))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 2) re) (*.f64 re (*.f64 (pow.f64 im 3) -1/2))))
(+.f64 (*.f64 re (+.f64 (neg.f64 im) (pow.f64 im 2))) (*.f64 (pow.f64 im 3) (*.f64 re -1/2)))
(*.f64 re (+.f64 (*.f64 (pow.f64 im 3) -1/2) (+.f64 (pow.f64 im 2) (neg.f64 im))))
(*.f64 re (+.f64 (pow.f64 im 2) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/2))))
(+.f64 (*.f64 -1/2 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 re (pow.f64 im 2)) (*.f64 1/6 (*.f64 re (pow.f64 im 4))))))
(+.f64 (*.f64 re (*.f64 (pow.f64 im 3) -1/2)) (+.f64 (*.f64 (pow.f64 im 2) re) (+.f64 (*.f64 (*.f64 (pow.f64 im 4) re) 1/6) (*.f64 (neg.f64 im) re))))
(+.f64 (*.f64 (pow.f64 im 2) re) (+.f64 (*.f64 re (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 4) 1/6))) (*.f64 (pow.f64 im 3) (*.f64 re -1/2))))
(+.f64 (*.f64 (pow.f64 im 2) re) (*.f64 re (+.f64 (*.f64 (pow.f64 im 3) -1/2) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 4) 1/6)))))
(+.f64 (*.f64 (pow.f64 im 2) re) (*.f64 re (+.f64 (neg.f64 im) (+.f64 (*.f64 (pow.f64 im 4) 1/6) (*.f64 (pow.f64 im 3) -1/2)))))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 (exp.f64 (*.f64 -1 im)) (*.f64 re im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(*.f64 -1 (*.f64 re (*.f64 (exp.f64 (neg.f64 im)) im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(+.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(+.f64 0 (*.f64 im (/.f64 -2 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(+.f64 (/.f64 im (neg.f64 (exp.f64 im))) (/.f64 im (neg.f64 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(-.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 0)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 im (/.f64 (exp.f64 im) -2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 im) (/.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (exp.f64 (neg.f64 im)) (/.f64 -1/2 im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 -2 (/.f64 (exp.f64 im) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (exp.f64 im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (*.f64 -1 (neg.f64 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (-.f64 0 (neg.f64 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (/.f64 (*.f64 2 (neg.f64 (exp.f64 im))) -2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (/.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) -2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -2) (/.f64 (neg.f64 (exp.f64 im)) -1))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) 1)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 1/2 (/.f64 (exp.f64 im) (*.f64 im -4)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 1 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 1 (*.f64 (/.f64 (exp.f64 im) (*.f64 im -4)) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 -1 (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 2 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 2 (/.f64 (exp.f64 im) (neg.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 2 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 2 (*.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 1))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 2 (*.f64 (/.f64 (exp.f64 im) (neg.f64 im)) 1))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -4) (*.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (+.f64 im im) (neg.f64 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (+.f64 im im) (*.f64 -1 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) 2)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (/.f64 im (neg.f64 (exp.f64 im))) 1/2)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 4 (+.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (/.f64 (exp.f64 im) (neg.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 4 (+.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im)))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im -2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im -8) (*.f64 (exp.f64 im) 4))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im 4) (*.f64 2 (neg.f64 (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im 4) (*.f64 -2 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 im 4) (*.f64 (*.f64 2 (neg.f64 (exp.f64 im))) 1))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -8) 4)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (/.f64 im (/.f64 (exp.f64 im) 2)) -1)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))) (*.f64 (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 im -8)) (*.f64 2 (*.f64 (exp.f64 im) 4)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 im -8)) (*.f64 8 (exp.f64 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 im 4)) (+.f64 (*.f64 2 (neg.f64 (exp.f64 im))) (*.f64 2 (neg.f64 (exp.f64 im)))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) 4)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (/.f64 (*.f64 im 4) (exp.f64 im)) -2)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 (exp.f64 im) 2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) 1))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 im -4)) (*.f64 (neg.f64 (exp.f64 im)) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (+.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 (*.f64 im -8) (exp.f64 im))) 8)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8)) (*.f64 2 (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (+.f64 (neg.f64 (*.f64 im -4)) (neg.f64 (*.f64 im -4))) (+.f64 (neg.f64 (*.f64 (exp.f64 im) 2)) (neg.f64 (*.f64 (exp.f64 im) 2))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (/.f64 (*.f64 2 (*.f64 im -8)) (exp.f64 im)) 8)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 im -8)) (-.f64 0 (*.f64 (exp.f64 im) 4)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(/.f64 (neg.f64 (neg.f64 (*.f64 im -4))) (*.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(neg.f64 (/.f64 im (/.f64 (exp.f64 im) 2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 -2 im))
(*.f64 -2 (*.f64 im (exp.f64 (neg.f64 im))))
(*.f64 im (/.f64 -2 (exp.f64 im)))
(+.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(+.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(+.f64 0 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(-.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 0)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 im (/.f64 (/.f64 (exp.f64 im) -2) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (neg.f64 im) (/.f64 (/.f64 (exp.f64 im) 2) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 im -2) (/.f64 (exp.f64 im) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 re (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 1)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1/2)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 1 (/.f64 (exp.f64 im) (*.f64 im (*.f64 -2 re))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 re 1/2) (/.f64 (exp.f64 im) (*.f64 im -4)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 2 (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 im (*.f64 -2 re))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 2)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (+.f64 re re) (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 im (*.f64 -2 re)) (exp.f64 im))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (/.f64 re (exp.f64 im)) (/.f64 -1/2 im))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 4 (/.f64 (*.f64 (exp.f64 im) 4) (*.f64 im (*.f64 -2 re))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 4)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 re 4) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 -2 re) (/.f64 (exp.f64 im) im))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 (neg.f64 im) re) (/.f64 (exp.f64 im) 2))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (neg.f64 re) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 2 (*.f64 re 4)) (*.f64 8 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 re (*.f64 im -4)) (*.f64 (exp.f64 im) 2))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 8)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 re))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (+.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)))) 16)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (/.f64 (*.f64 re 4) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 4)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (/.f64 (*.f64 2 (*.f64 re 4)) (*.f64 (exp.f64 im) (/.f64 -1/2 im))) 8)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (/.f64 (*.f64 re (*.f64 im -4)) (exp.f64 im)) 2)
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(/.f64 (neg.f64 (*.f64 im (*.f64 -2 re))) (neg.f64 (exp.f64 im)))
(*.f64 -2 (*.f64 (exp.f64 (neg.f64 im)) (*.f64 im re)))
(*.f64 -2 (/.f64 im (/.f64 (exp.f64 im) re)))
(*.f64 im (/.f64 -2 (/.f64 (exp.f64 im) re)))
(+.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(+.f64 0 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(-.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 0)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 im (/.f64 (/.f64 (exp.f64 im) -2) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (neg.f64 im) (/.f64 (exp.f64 im) re))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 -2 (/.f64 (/.f64 (exp.f64 im) im) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 im -2) (/.f64 (*.f64 (exp.f64 im) 2) re))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 im (/.f64 -2 (exp.f64 im))) (/.f64 1 (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 re (*.f64 2 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 re (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 im (*.f64 re (/.f64 -2 (exp.f64 im)))) 2)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 (neg.f64 im) (/.f64 re (exp.f64 im))) 1)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 1 (/.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 re 1/2) (*.f64 (exp.f64 im) (/.f64 -1/2 im)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 2 (/.f64 (/.f64 (exp.f64 im) (neg.f64 im)) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -4)) 4)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 im -4) (/.f64 (*.f64 (exp.f64 im) 2) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (+.f64 im im) (/.f64 (neg.f64 (exp.f64 im)) (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 (/.f64 im (exp.f64 im)) -4) (/.f64 2 (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (+.f64 re re) (*.f64 (*.f64 (exp.f64 im) (/.f64 -1/2 im)) 4))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (+.f64 re re) (*.f64 4 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 im (*.f64 -2 re)) (*.f64 (exp.f64 im) 2))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8)) 8)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 (neg.f64 im) re) (exp.f64 im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 1/2 (/.f64 re (exp.f64 im))) (/.f64 -1/2 im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (neg.f64 re) (/.f64 (exp.f64 im) im))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (*.f64 2 (*.f64 re (*.f64 (/.f64 im (exp.f64 im)) -8))) 16)
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (/.f64 (*.f64 im -8) (exp.f64 im)) (/.f64 4 (*.f64 re 1/2)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (/.f64 re 4) (/.f64 (exp.f64 im) (*.f64 im -4)))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(/.f64 (neg.f64 (*.f64 re 1/2)) (-.f64 0 (*.f64 (exp.f64 im) (/.f64 -1/2 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))
(neg.f64 (*.f64 im (/.f64 re (exp.f64 im))))
(*.f64 (exp.f64 (neg.f64 im)) (*.f64 (neg.f64 im) re))
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
(*.f64 (neg.f64 im) (/.f64 re (exp.f64 im)))
(*.f64 im (/.f64 (neg.f64 re) (exp.f64 im)))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 11 computations (47.6% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite108.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1974×bool.json-1
1430×rational.json-simplify-35
1240×bool.json-2
1192×rational.json-1
1192×rational.json-2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0919
19719
227513
353911
4106611
5234911
6484711
7780011
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(+.f64 -1 (-.f64 1 (*.f64 re im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 -1 (+.f64 -1 (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 1 (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (neg.f64 (*.f64 re im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 -2 (+.f64 (*.f64 re im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 re im) -2) (*.f64 im (/.f64 re 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 re im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 re im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 re im) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (neg.f64 (*.f64 re im)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 re im) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (neg.f64 (*.f64 re im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 re im) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 re im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 re im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 re im) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 im (*.f64 re 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 re im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 re im) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re im) 8))) -32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 im (*.f64 re 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) (neg.f64 (*.f64 (*.f64 re im) 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 im (*.f64 re 4))) (neg.f64 (*.f64 im (*.f64 re 4)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) (neg.f64 (*.f64 (*.f64 re im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 re im))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (*.f64 re im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (*.f64 re im)) (neg.f64 (*.f64 re im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (*.f64 re im)) (neg.f64 (*.f64 re im)))))))

simplify248.0ms (2%)

Algorithm
egg-herbie
Rules
2026×rational.json-simplify-35
1814×rational.json-simplify-42
1618×rational.json-simplify-52
1426×rational.json-simplify-2
1160×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
091739
1212739
2572739
32134739
43307739
53738739
64075739
74564739
85210739
96696739
106949739
117075739
127075739
Stop Event
node limit
Counts
65 → 43
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(*.f64 -1 (*.f64 re im))
(-.f64 -1 (+.f64 -1 (*.f64 re im)))
(-.f64 1 (+.f64 1 (*.f64 re im)))
(-.f64 (-.f64 1 (*.f64 re im)) 1)
(-.f64 (neg.f64 (*.f64 re im)) 0)
(-.f64 0 (*.f64 re im))
(-.f64 -2 (+.f64 (*.f64 re im) -2))
(-.f64 (/.f64 (*.f64 re im) -2) (*.f64 im (/.f64 re 2)))
(*.f64 -1 (*.f64 re im))
(*.f64 1 (neg.f64 (*.f64 re im)))
(*.f64 (*.f64 re im) -1)
(*.f64 (neg.f64 (*.f64 re im)) 1)
(*.f64 2 (/.f64 (*.f64 re im) -2))
(*.f64 4 (/.f64 (*.f64 re im) -4))
(*.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 1/2)
(*.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 1/4)
(*.f64 1/2 (*.f64 (neg.f64 (*.f64 re im)) 2))
(*.f64 (/.f64 (*.f64 re im) -2) 2)
(*.f64 1/4 (*.f64 (neg.f64 (*.f64 re im)) 4))
(*.f64 (/.f64 (*.f64 re im) -4) 4)
(/.f64 (*.f64 re im) -1)
(/.f64 (neg.f64 (*.f64 re im)) 1)
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 2)
(/.f64 (*.f64 (*.f64 re im) 2) -2)
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 4)
(/.f64 (*.f64 im (*.f64 re 4)) -4)
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 8) 8)
(/.f64 (*.f64 (*.f64 re im) 8) -8)
(/.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re im) 8))) -32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) 32)
(/.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) 2)
(/.f64 (neg.f64 (*.f64 im (*.f64 re 4))) 4)
(/.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) 8)
(/.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)))) 64)
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) (neg.f64 (*.f64 (*.f64 re im) 2))) 4)
(/.f64 (+.f64 (neg.f64 (*.f64 im (*.f64 re 4))) (neg.f64 (*.f64 im (*.f64 re 4)))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) (neg.f64 (*.f64 (*.f64 re im) 8))) 16)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)))) 32)
(neg.f64 (*.f64 re im))
Outputs
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(-.f64 -1 (+.f64 -1 (*.f64 re im)))
(-.f64 1 (+.f64 1 (*.f64 re im)))
(-.f64 -1 (+.f64 -1 (*.f64 re im)))
(-.f64 (-.f64 1 (*.f64 re im)) 1)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(-.f64 (neg.f64 (*.f64 re im)) 0)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(-.f64 0 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(-.f64 -2 (+.f64 (*.f64 re im) -2))
(-.f64 -2 (+.f64 -2 (*.f64 re im)))
(-.f64 (/.f64 (*.f64 re im) -2) (*.f64 im (/.f64 re 2)))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 -1 (*.f64 re im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 1 (neg.f64 (*.f64 re im)))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (*.f64 re im) -1)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (neg.f64 (*.f64 re im)) 1)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 2 (/.f64 (*.f64 re im) -2))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 4 (/.f64 (*.f64 re im) -4))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 1/2)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 1/4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 1/2 (*.f64 (neg.f64 (*.f64 re im)) 2))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (/.f64 (*.f64 re im) -2) 2)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 1/4 (*.f64 (neg.f64 (*.f64 re im)) 4))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (/.f64 (*.f64 re im) -4) 4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 re im) -1)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (neg.f64 (*.f64 re im)) 1)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 2) 2)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 (*.f64 re im) 2) -2)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 4) 4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 im (*.f64 re 4)) -4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 (neg.f64 (*.f64 re im)) 8) 8)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 (*.f64 re im) 8) -8)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)) 16)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)) -16)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 re im) 8))) -32)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) 32)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) 2)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (neg.f64 (*.f64 im (*.f64 re 4))) 4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) 8)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) 16)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (*.f64 re im)) 8)))) 64)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 2)) (neg.f64 (*.f64 (*.f64 re im) 2))) 4)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 im (*.f64 re 4))) (neg.f64 (*.f64 im (*.f64 re 4)))) 8)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 re im) 8)) (neg.f64 (*.f64 (*.f64 re im) 8))) 16)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8))) (neg.f64 (*.f64 2 (*.f64 (*.f64 re im) 8)))) 32)
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))
(neg.f64 (*.f64 re im))
(*.f64 re (neg.f64 im))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 11 computations (56% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite91.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1866×bool.json-1
1866×bool.json-2
1250×bool.json-3
906×rational.json-1
906×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01023
110823
231415
365515
4133815
5305215
6698215
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(-.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) (/.f64 (*.f64 (sin.f64 re) im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sin.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sin.f64 re) (neg.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 im (neg.f64 (sin.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 (sin.f64 re) im) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) 1/2) (neg.f64 (+.f64 im im)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 im 1/2) (neg.f64 (*.f64 (sin.f64 re) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sin.f64 re)) im)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 (sin.f64 re) (*.f64 im 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 im) (sin.f64 re))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sin.f64 re) 2)) (*.f64 im 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 im im)) (*.f64 (sin.f64 re) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) im) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sin.f64 re) im))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (sin.f64 re) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (neg.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (neg.f64 im)))))))

simplify203.0ms (1.6%)

Algorithm
egg-herbie
Rules
2094×rational.json-simplify-2
2004×rational.json-simplify-35
1238×rational.json-simplify-48
996×rational.json-simplify-43
712×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01201208
12771208
27301208
326021208
432841208
538061208
641221208
747841208
859441208
971801208
1079171208
Stop Event
node limit
Counts
72 → 65
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(+.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
(+.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) -1)
(+.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) (/.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 1 (*.f64 (sin.f64 re) (neg.f64 im)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (*.f64 (sin.f64 re) im) -1)
(*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))
(*.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 1/2)
(*.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 1/4)
(*.f64 1/2 (*.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))))
(*.f64 1/4 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4))
(*.f64 (*.f64 (sin.f64 re) 1/2) (neg.f64 (+.f64 im im)))
(*.f64 (*.f64 im 1/2) (neg.f64 (*.f64 (sin.f64 re) 2)))
(*.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) -2)
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)
(*.f64 (neg.f64 (sin.f64 re)) im)
(*.f64 -2 (*.f64 (sin.f64 re) (*.f64 im 1/2)))
(*.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 1/2)
(*.f64 (neg.f64 im) (sin.f64 re))
(*.f64 (neg.f64 (*.f64 (sin.f64 re) 2)) (*.f64 im 1/2))
(*.f64 (neg.f64 (+.f64 im im)) (*.f64 (sin.f64 re) 1/2))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)
(/.f64 (*.f64 (sin.f64 re) im) -1)
(/.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 2)
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 4)
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)
(/.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 2)
(/.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) 4)
(/.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im)))) 4)
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4)))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8))) 16)
(/.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)
(neg.f64 (*.f64 (sin.f64 re) im))
Outputs
(*.f64 -1 (*.f64 re im))
(*.f64 re (neg.f64 im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 3) (*.f64 im 1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 (pow.f64 re 3) 1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 1/6 (pow.f64 re 3))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 (pow.f64 re 3) im))))
(+.f64 (+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 3) (*.f64 im 1/6))) (*.f64 (pow.f64 re 5) (*.f64 im -1/120)))
(+.f64 (*.f64 im (*.f64 (pow.f64 re 3) 1/6)) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 -1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 5) (*.f64 im -1/120))))
(+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/120 (*.f64 im (pow.f64 re 5)))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 re 5) im)) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 re 3) im)) (*.f64 1/5040 (*.f64 (pow.f64 re 7) im)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (+.f64 (*.f64 (pow.f64 re 3) (*.f64 im 1/6)) (*.f64 (pow.f64 re 7) (*.f64 im 1/5040))) (*.f64 (pow.f64 re 5) (*.f64 im -1/120))))
(+.f64 (*.f64 im (*.f64 (pow.f64 re 3) 1/6)) (+.f64 (+.f64 (*.f64 re (neg.f64 im)) (*.f64 im (*.f64 (pow.f64 re 7) 1/5040))) (*.f64 im (*.f64 -1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)) (+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 5) (*.f64 im -1/120)))))
(+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (+.f64 (*.f64 (pow.f64 re 7) (*.f64 im 1/5040)) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 re 5) (*.f64 im -1/120)))))
(+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (+.f64 (*.f64 im (*.f64 1/5040 (pow.f64 re 7))) (+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/120 (*.f64 im (pow.f64 re 5))))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 0 (*.f64 (sin.f64 re) (neg.f64 im)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 -1 (-.f64 1 (*.f64 (sin.f64 re) im)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (-.f64 1 (*.f64 (sin.f64 re) im)) -1)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) (/.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 1 (*.f64 (sin.f64 re) (neg.f64 im)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (sin.f64 re) im) -1)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 2 (/.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 4 (/.f64 (*.f64 (sin.f64 re) im) -4))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 1/2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 1/4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 1/2 (*.f64 (*.f64 (sin.f64 re) im) -2))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 1/2 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 1/4 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (sin.f64 re) 1/2) (neg.f64 (+.f64 im im)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 im 1/2) (neg.f64 (*.f64 (sin.f64 re) 2)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (*.f64 (sin.f64 re) (*.f64 im 1/2)) -2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -2) 2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 (sin.f64 re)) im)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -2 (*.f64 (sin.f64 re) (*.f64 im 1/2)))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 1/2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 im) (sin.f64 re))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 (*.f64 (sin.f64 re) 2)) (*.f64 im 1/2))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 (+.f64 im im)) (*.f64 (sin.f64 re) 1/2))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (/.f64 (*.f64 (sin.f64 re) im) -4) 4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) im) -1)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 1)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (+.f64 im im)) -2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) -2) 2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (sin.f64 re) (*.f64 im 4)) -4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 4) 4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 re) im) 8) -8)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8) 8)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -16)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) 16)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) 2)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) 4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) 8)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8)) (*.f64 2 (*.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 8))) 32)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im))) (neg.f64 (*.f64 (sin.f64 re) (+.f64 im im)))) 4)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4))) (neg.f64 (*.f64 (sin.f64 re) (*.f64 im 4)))) 8)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (+.f64 (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8)) (neg.f64 (*.f64 (*.f64 (sin.f64 re) im) 8))) 16)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(/.f64 (/.f64 (*.f64 2 (*.f64 (*.f64 (sin.f64 re) im) 8)) -1) 16)
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(neg.f64 (*.f64 (sin.f64 re) im))
(*.f64 im (neg.f64 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))

eval78.0ms (0.6%)

Compiler

Compiled 4154 to 2524 computations (39.2% saved)

prune56.0ms (0.5%)

Pruning

13 alts after pruning (3 fresh and 10 done)

PrunedKeptTotal
New3213324
Fresh000
Picked011
Done1910
Total32213335
Error
0.1b
Counts
335 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
32.8b
(/.f64 (*.f64 (neg.f64 im) re) (exp.f64 im))
47.7b
(-.f64 1 (+.f64 1 (*.f64 (sin.f64 re) im)))
48.6b
(-.f64 -2 (+.f64 (*.f64 re im) -2))
0.8b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)))
48.6b
(+.f64 -1 (-.f64 1 (*.f64 re im)))
0.8b
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
46.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
1.0b
(*.f64 (sin.f64 re) (neg.f64 im))
32.8b
(*.f64 (neg.f64 im) (*.f64 (exp.f64 (neg.f64 im)) re))
32.7b
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
32.7b
(*.f64 re (neg.f64 im))
47.6b
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
47.6b
(*.f64 1/2 (*.f64 (*.f64 (exp.f64 (neg.f64 im)) (-.f64 1 (exp.f64 (+.f64 im im)))) re))
Compiler

Compiled 140 to 102 computations (27.1% saved)

regimes42.0ms (0.3%)

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

6 calls:

9.0ms
(sin.f64 re)
8.0ms
re
8.0ms
(*.f64 1/2 (sin.f64 re))
8.0ms
im
3.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
ErrorSegmentsBranch
0.8b1re
0.8b1im
0.8b1(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.8b1(*.f64 1/2 (sin.f64 re))
0.8b1(sin.f64 re)
0.8b1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 183 to 103 computations (43.7% saved)

regimes26.0ms (0.2%)

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

4 calls:

8.0ms
re
7.0ms
(sin.f64 re)
6.0ms
im
2.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
ErrorSegmentsBranch
1.0b1re
1.0b1im
1.0b1(sin.f64 re)
1.0b1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 104 to 59 computations (43.3% saved)

regimes8.0ms (0.1%)

Accuracy

Total -16.2b remaining (-49.5%)

Threshold costs -16.2b (-49.5%)

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

2 calls:

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

Compiled 26 to 17 computations (34.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01555
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 re (neg.f64 im))
Outputs
(*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) (sin.f64 re))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 re (neg.f64 im))
Compiler

Compiled 25 to 18 computations (28% saved)

soundness372.0ms (3%)

Algorithm
egg-herbie
Rules
2372×rational.json-simplify-2
1722×rational.json-simplify-35
1296×rational.json-simplify-46
1118×rational.json-simplify-52
1088×rational.json-simplify-35
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01452296
13142296
27652156
313992122
430252122
539042122
662092122
0881482
12011482
24151410
38811362
424441362
538051362
640371362
742691362
847991362
952061362
1056251362
1163561362
1267491362
1370861362
1475861362
Stop Event
node limit
node limit
Compiler

Compiled 122 to 70 computations (42.6% saved)

end20.0ms (0.2%)

Compiler

Compiled 21 to 12 computations (42.9% saved)

Profiling

Loading profile data...