Details

Time bar (total: 6.2s)

analyze164.0ms (2.6%)

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

sample4.9s (78.7%)

Results
2.3s4148×body1024valid
791.0ms2099×body1024infinite
705.0ms2162×body512valid
294.0ms1716×body256valid
275.0ms1010×body512infinite
234.0ms1612×body256infinite
230.0ms230×body2048valid
Bogosity

preprocess11.0ms (0.2%)

Algorithm
egg-herbie
Rules
444×rational.json-simplify-31
328×rational.json-simplify-2
76×rational.json-simplify-27
64×rational.json-simplify-9
60×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02070
13570
25770
38970
414170
523270
637470
754370
860670
960670
1061770
022
Stop Event
saturated
saturated
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 (*.f64 1/2 (sin.f64 im)) (-.f64 (exp.f64 (neg.f64 re)) (exp.f64 re)))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify91.0ms (1.5%)

Algorithm
egg-herbie
Rules
236×rational.json-simplify-31
168×rational.json-simplify-2
38×rational.json-simplify-27
32×rational.json-simplify-9
30×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
12135
23235
34835
47635
512235
619635
730535
832835
933435
Stop Event
saturated
Counts
1 → 4
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 (-.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)))

eval1.0ms (0%)

Compiler

Compiled 46 to 19 computations (58.7% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New314
Fresh101
Picked000
Done000
Total415
Error
44.4b
Counts
5 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
44.4b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 35 to 13 computations (62.9% saved)

series5.0ms (0.1%)

Counts
2 → 32
Calls

9 calls:

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

rewrite15.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
160×rational.json-simplify-2
120×rational.json-simplify-31
100×bool.json-1
90×rational.json-1
90×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01354
16654
213154
318554
423854
530554
636254
740554
Stop Event
saturated
Counts
2 → 11
Calls
Call 1
Inputs
(-.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)))
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 (neg.f64 (exp.f64 im)) (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 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 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)))) (#(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 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 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))))))))

simplify116.0ms (1.9%)

Algorithm
egg-herbie
Rules
1280×rational.json-simplify-31
834×rational.json-simplify-2
430×rational.json-simplify-1
314×rational.json-simplify-27
264×rational.json-simplify-33
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0891641
11671641
22831641
35101641
48531641
59941641
610181641
710381641
810621641
910921641
1015361641
1116031641
1216381641
1316711641
1417081641
1517491641
1617871641
1718301641
1818781641
1919221641
2019701641
2120701641
2220871641
2321081641
2421161641
Stop Event
saturated
Counts
43 → 62
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 (*.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 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 (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 (neg.f64 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 1)
(*.f64 1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 -1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(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))))
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 (*.f64 -2 im) (+.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 -1/3 (pow.f64 im 3)) (*.f64 -1/60 (pow.f64 im 5))) (+.f64 (*.f64 -2 im) (*.f64 -1/2520 (pow.f64 im 7))))
(+.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 -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 (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 (*.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 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re))))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re))) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 5) (*.f64 (sin.f64 re) -1/120))))
(+.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 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 -1/120 (pow.f64 im 5))))) (*.f64 (sin.f64 re) (*.f64 -1/5040 (pow.f64 im 7))))
(+.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 (sin.f64 re))) (*.f64 (pow.f64 im 7) (*.f64 -1/5040 (sin.f64 re)))))
(+.f64 (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)) (+.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 5) -1/120))) (*.f64 (pow.f64 im 7) (*.f64 (sin.f64 re) -1/5040))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 (pow.f64 im 3) -1/6)) (+.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 5) (*.f64 (sin.f64 re) -1/120))) (*.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 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.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 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.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 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.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 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.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 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) re))
(*.f64 1/2 (*.f64 re (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 re (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(+.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 re (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 re (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))))
(+.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 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 re (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.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 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)) (+.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 re (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (*.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 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 re (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (+.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 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)) (+.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 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (+.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 re (*.f64 1/2 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))) (+.f64 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 1/240 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (pow.f64 re 5))) (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 -1/10080 (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))))
(*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(+.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 0 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) 0)
(+.f64 (neg.f64 (exp.f64 im)) (exp.f64 (neg.f64 im)))
(-.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 (-.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 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1)
(-.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 0 (*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)))
(+.f64 0 (*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re))))
(+.f64 0 (*.f64 1/2 (*.f64 (sin.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2)))

eval19.0ms (0.3%)

Compiler

Compiled 1333 to 650 computations (51.2% saved)

prune12.0ms (0.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New57562
Fresh000
Picked011
Done000
Total57663
Error
0.1b
Counts
63 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
44.4b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
0.7b
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
0.9b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (sin.f64 re) (neg.f64 im))
45.7b
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
Compiler

Compiled 159 to 122 computations (23.3% saved)

localize31.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))
0.0b
(*.f64 -1/60 (pow.f64 im 5))
0.1b
(*.f64 -1/3 (pow.f64 im 3))
0.1b
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
Compiler

Compiled 81 to 61 computations (24.7% saved)

series8.0ms (0.1%)

Counts
4 → 27
Calls

15 calls:

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

rewrite9.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
62×bool.json-1
60×rational.json-simplify-2
56×rational.json-simplify-1
46×rational.json-1
46×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021116
199116
2155116
3181116
4190116
Stop Event
saturated
Counts
4 → 8
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
(*.f64 -1/3 (pow.f64 im 3))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))) (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/3 (pow.f64 im 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/3 (pow.f64 im 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/3 (pow.f64 im 3)) (*.f64 -1/3 (pow.f64 im 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/60 (pow.f64 im 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/60 (pow.f64 im 5)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/60 (pow.f64 im 5)))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))))

simplify28.0ms (0.5%)

Algorithm
egg-herbie
Rules
102×rational.json-simplify-2
80×rational.json-simplify-1
42×rational.json-simplify-33
32×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0672055
11232055
21702055
32002055
42112055
52112055
Stop Event
saturated
Counts
35 → 38
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 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.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 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.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/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/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.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/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 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (+.f64 (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 5))) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (+.f64 (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 5))) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3))) (*.f64 -1/10080 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 -1/3 (pow.f64 im 3))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 -1/3 (pow.f64 im 3)) 0)
(+.f64 0 (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) 0)
(+.f64 0 (*.f64 -1/60 (pow.f64 im 5)))
(*.f64 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))) 1)
(*.f64 1 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
Outputs
(*.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 (*.f64 (sin.f64 re) im)) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(+.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 -1/6 (pow.f64 im 3))) (+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re))
(*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3)))))
(*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (+.f64 (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 5))) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3)))))
(+.f64 (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 1/240 (pow.f64 re 5)))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) re)) (+.f64 (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 5))) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 3))) (*.f64 -1/10080 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (pow.f64 re 7))))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 1/240 (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/10080 (pow.f64 re 7))))))
(+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 1/240 (pow.f64 re 5))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 -1/10080 (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))))
(*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2))
(*.f64 -1/3 (pow.f64 im 3))
(*.f64 (pow.f64 im 3) -1/3)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2)) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3))) (*.f64 (sin.f64 re) 1/2)) 0)
(+.f64 (*.f64 -1/3 (pow.f64 im 3)) 0)
(+.f64 (*.f64 (pow.f64 im 3) -1/3) 0)
(+.f64 0 (*.f64 -1/3 (pow.f64 im 3)))
(+.f64 (*.f64 (pow.f64 im 3) -1/3) 0)
(+.f64 (*.f64 -1/60 (pow.f64 im 5)) 0)
(+.f64 (*.f64 (pow.f64 im 5) -1/60) 0)
(+.f64 0 (*.f64 -1/60 (pow.f64 im 5)))
(+.f64 (*.f64 (pow.f64 im 5) -1/60) 0)
(*.f64 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))) 1)
(*.f64 (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3)) 1)
(*.f64 1 (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3))))
(*.f64 (+.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 3) -1/3)) 1)

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)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.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))

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
50×rational.json-simplify-2
38×bool.json-1
32×rational.json-1
32×rational.json-2
28×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
13915
27415
39215
411215
511615
612115
713015
814215
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (sin.f64 re) (neg.f64 im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 im) (sin.f64 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (neg.f64 im) (sin.f64 re)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (neg.f64 im) (sin.f64 re)) (*.f64 (neg.f64 im) (sin.f64 re)))))))

simplify11.0ms (0.2%)

Algorithm
egg-herbie
Rules
60×rational.json-simplify-2
54×rational.json-simplify-1
36×rational.json-simplify-33
22×rational.json-simplify-31
rational.json-simplify-9
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
036578
166530
299530
3124530
4136530
5137530
Stop Event
saturated
Counts
26 → 21
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 (neg.f64 im) (sin.f64 re)) 0)
(+.f64 0 (*.f64 (neg.f64 im) (sin.f64 re)))
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 1/6 (*.f64 im (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 -1 (*.f64 re im)) (*.f64 1/6 (*.f64 im (pow.f64 re 3)))) (*.f64 -1/120 (*.f64 im (pow.f64 re 5))))
(+.f64 (+.f64 (*.f64 im (*.f64 -1/120 (pow.f64 re 5))) (*.f64 im (*.f64 1/6 (pow.f64 re 3)))) (*.f64 re (neg.f64 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 -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 -1/120 (*.f64 im (pow.f64 re 5))) (+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 1/5040 (*.f64 im (pow.f64 re 7))))))
(+.f64 (*.f64 im (*.f64 -1/120 (pow.f64 re 5))) (+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 im (*.f64 1/6 (pow.f64 re 3))) (*.f64 im (*.f64 1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 -1/120 (*.f64 im (pow.f64 re 5))) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (*.f64 im (*.f64 1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 1/6 (*.f64 im (pow.f64 re 3))) (+.f64 (*.f64 -1/120 (*.f64 im (pow.f64 re 5))) (*.f64 im (*.f64 1/5040 (pow.f64 re 7))))))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 -1 (*.f64 (sin.f64 re) im))
(*.f64 -1 (*.f64 im (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(+.f64 (*.f64 (neg.f64 im) (sin.f64 re)) 0)
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)
(+.f64 0 (*.f64 (neg.f64 im) (sin.f64 re)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) 0)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 36 to 12 computations (66.7% saved)

series5.0ms (0.1%)

Counts
2 → 32
Calls

9 calls:

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

rewrite12.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
158×rational.json-simplify-2
144×rational.json-simplify-31
102×bool.json-1
92×rational.json-1
92×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01250
16250
212550
318250
423650
531050
636950
742050
Stop Event
saturated
Counts
2 → 11
Calls
Call 1
Inputs
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 im) (neg.f64 (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (exp.f64 (neg.f64 im))) (exp.f64 im))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))) (#(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 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)) (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)))))))

simplify35.0ms (0.6%)

Algorithm
egg-herbie
Rules
284×rational.json-simplify-31
266×rational.json-simplify-2
146×rational.json-simplify-1
78×rational.json-simplify-33
38×rational.json-simplify-27
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0721277
11281277
22001277
32911277
43741277
54451277
64871277
75271277
85631277
95741277
Stop Event
saturated
Counts
43 → 43
Calls
Call 1
Inputs
(*.f64 2 im)
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (*.f64 2 im))
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 2 im) (*.f64 1/60 (pow.f64 im 5))))
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 2 im) (+.f64 (*.f64 1/2520 (pow.f64 im 7)) (*.f64 1/60 (pow.f64 im 5)))))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3)))))
(+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(+.f64 (exp.f64 im) (neg.f64 (exp.f64 (neg.f64 im))))
(+.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 0 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (neg.f64 (exp.f64 (neg.f64 im))) (exp.f64 im))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(*.f64 1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(*.f64 -1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) -1)
(neg.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(+.f64 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)) 0)
(+.f64 0 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)))
Outputs
(*.f64 2 im)
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (*.f64 2 im))
(+.f64 (*.f64 2 im) (*.f64 1/3 (pow.f64 im 3)))
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 2 im) (*.f64 1/60 (pow.f64 im 5))))
(+.f64 (*.f64 2 im) (+.f64 (*.f64 1/3 (pow.f64 im 3)) (*.f64 1/60 (pow.f64 im 5))))
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 2 im) (+.f64 (*.f64 1/2520 (pow.f64 im 7)) (*.f64 1/60 (pow.f64 im 5)))))
(+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 2 im) (+.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 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1 (*.f64 re im))
(*.f64 re (neg.f64 im))
(*.f64 (neg.f64 im) re)
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 (neg.f64 im) re) (*.f64 (pow.f64 im 3) (*.f64 -1/6 re)))
(+.f64 (*.f64 (neg.f64 im) re) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3)))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 re (*.f64 -1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 re)) (*.f64 re (*.f64 (pow.f64 im 5) -1/120))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 re (*.f64 (pow.f64 im 5) -1/120))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 (pow.f64 im 5) (*.f64 re -1/120))))
(+.f64 (*.f64 -1 (*.f64 re im)) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/5040 (*.f64 re (pow.f64 im 7))) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))))
(+.f64 (*.f64 re (neg.f64 im)) (+.f64 (*.f64 re (*.f64 -1/120 (pow.f64 im 5))) (+.f64 (*.f64 re (*.f64 -1/6 (pow.f64 im 3))) (*.f64 re (*.f64 -1/5040 (pow.f64 im 7))))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 -1/6 re)) (+.f64 (*.f64 re (*.f64 (pow.f64 im 5) -1/120)) (*.f64 (pow.f64 im 7) (*.f64 -1/5040 re)))))
(+.f64 (*.f64 (neg.f64 im) re) (+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (+.f64 (*.f64 re (*.f64 (pow.f64 im 5) -1/120)) (*.f64 (pow.f64 im 7) (*.f64 re -1/5040)))))
(+.f64 (+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 (pow.f64 im 7) (*.f64 re -1/5040))) (+.f64 (*.f64 (neg.f64 im) re) (*.f64 (pow.f64 im 5) (*.f64 re -1/120))))
(+.f64 (+.f64 (*.f64 (pow.f64 im 3) (*.f64 re -1/6)) (*.f64 (pow.f64 im 5) (*.f64 re -1/120))) (+.f64 (*.f64 (neg.f64 im) re) (*.f64 (pow.f64 im 7) (*.f64 re -1/5040))))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (*.f64 -1 im))) re))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re))
(*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re))
(+.f64 (exp.f64 im) (neg.f64 (exp.f64 (neg.f64 im))))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 0 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(+.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 0)
(+.f64 (neg.f64 (exp.f64 (neg.f64 im))) (exp.f64 im))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) 1)
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 1 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 -1 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) -1)
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(neg.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
(-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))
(+.f64 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)) 0)
(+.f64 0 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)))
(+.f64 0 (*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)))
(+.f64 0 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) (*.f64 -1/2 re)))
(+.f64 0 (*.f64 -1/2 (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) re)))

localize21.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 48 to 34 computations (29.2% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite8.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
48×rational.json-simplify-2
46×bool.json-1
34×rational.json-1
34×rational.json-2
34×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01641
17541
211841
313441
413841
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))) (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))))))))

simplify20.0ms (0.3%)

Algorithm
egg-herbie
Rules
86×rational.json-simplify-2
58×rational.json-simplify-1
30×rational.json-simplify-33
28×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0501326
1941326
21331326
31591326
41651326
51661326
Stop Event
saturated
Counts
26 → 22
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 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))) (+.f64 (*.f64 -1/10080 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 7))) (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 5))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))))
Outputs
(*.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 (*.f64 (sin.f64 re) im)) (*.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 (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 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.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 (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 (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 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.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 (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 (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 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re))
(*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3))))
(*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))) (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 1/2 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) re)) (+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 3))) (+.f64 (*.f64 -1/10080 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 7))) (*.f64 1/240 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (pow.f64 re 5))))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 1/240 (pow.f64 re 5))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/10080 (pow.f64 re 7))))))
(+.f64 (*.f64 re (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 1/240 (pow.f64 re 5))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 -1/10080 (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3)))))
(*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2))
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2)) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 3) -1/3)) (*.f64 (sin.f64 re) 1/2)) 0)

localize16.0ms (0.3%)

Local error

Found 4 expressions with local error:

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

Compiled 44 to 22 computations (50% saved)

series4.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

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

rewrite12.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
162×rational.json-simplify-31
148×rational.json-simplify-2
86×bool.json-1
74×rational.json-1
74×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01477
16877
211877
314577
416577
516977
617477
718377
819477
920777
1026077
1132877
1237077
Stop Event
saturated
Counts
3 → 6
Calls
Call 1
Inputs
(*.f64 (sin.f64 re) -1/6)
(*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) -1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) -1/6) (*.f64 (sin.f64 re) -1/6))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))) (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))))))))

simplify37.0ms (0.6%)

Algorithm
egg-herbie
Rules
172×rational.json-simplify-1
98×rational.json-simplify-33
86×rational.json-simplify-2
26×rational.json-simplify-31
rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0852290
11602290
22172290
32672290
42892290
52912290
Stop Event
saturated
Counts
66 → 43
Calls
Call 1
Inputs
(*.f64 -1/6 re)
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (*.f64 -1/6 re))
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (+.f64 (*.f64 -1/6 re) (*.f64 -1/720 (pow.f64 re 5))))
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (+.f64 (*.f64 -1/6 re) (+.f64 (*.f64 1/30240 (pow.f64 re 7)) (*.f64 -1/720 (pow.f64 re 5)))))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.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 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 (+.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) -1/6) 0)
(+.f64 0 (*.f64 (sin.f64 re) -1/6))
(+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) 0)
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))) 1)
(*.f64 1 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))))
Outputs
(*.f64 -1/6 re)
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (*.f64 -1/6 re))
(+.f64 (*.f64 -1/6 re) (*.f64 1/36 (pow.f64 re 3)))
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (+.f64 (*.f64 -1/6 re) (*.f64 -1/720 (pow.f64 re 5))))
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (+.f64 (*.f64 -1/6 re) (+.f64 (*.f64 1/30240 (pow.f64 re 7)) (*.f64 -1/720 (pow.f64 re 5)))))
(+.f64 (*.f64 1/36 (pow.f64 re 3)) (+.f64 (*.f64 -1/6 re) (+.f64 (*.f64 -1/720 (pow.f64 re 5)) (*.f64 1/30240 (pow.f64 re 7)))))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.f64 -1/6 (sin.f64 re))
(*.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 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/6 (*.f64 re (pow.f64 im 3))) (*.f64 1/36 (*.f64 (pow.f64 re 3) (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/6 (*.f64 re (pow.f64 im 3))) (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3)))))
(+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (*.f64 -1/720 (*.f64 (pow.f64 re 5) (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 (*.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/6 (*.f64 re (pow.f64 im 3))) (*.f64 1/30240 (*.f64 (pow.f64 re 7) (pow.f64 im 3))))))
(+.f64 (*.f64 1/36 (*.f64 (pow.f64 re 3) (pow.f64 im 3))) (+.f64 (*.f64 -1/6 (*.f64 re (pow.f64 im 3))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 re 5) (pow.f64 im 3))) (*.f64 (pow.f64 im 3) (*.f64 1/30240 (pow.f64 re 7))))))
(+.f64 (*.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 (pow.f64 re 7)) (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 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 1/36 (pow.f64 im 3)))))
(+.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 1/36 (pow.f64 im 3)))) (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 im -1/120)))))
(+.f64 (+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 1/36 (pow.f64 im 3)))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 im -1/120)))) (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))
(+.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 1/36 (pow.f64 im 3)))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.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 1/36 (pow.f64 im 3)))) (+.f64 (+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 im -1/120)))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 1/30240 (pow.f64 im 3)) (*.f64 im 1/5040)))))
(+.f64 (+.f64 (+.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 1/36 (pow.f64 im 3)))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 im -1/120)))) (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 1/30240 (pow.f64 im 3)) (*.f64 im 1/5040))))
(+.f64 (+.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 1/36 (pow.f64 im 3)))) (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -1/720 (pow.f64 im 3)) (*.f64 im -1/120))))) (*.f64 (pow.f64 re 7) (+.f64 (*.f64 1/30240 (pow.f64 im 3)) (*.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 (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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(*.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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(*.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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(*.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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 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 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 (*.f64 (sin.f64 re) -1/6) 0)
(+.f64 (*.f64 -1/6 (sin.f64 re)) 0)
(+.f64 0 (*.f64 (sin.f64 re) -1/6))
(+.f64 (*.f64 -1/6 (sin.f64 re)) 0)
(+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) 0)
(+.f64 0 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(+.f64 0 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 0 (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))))
(*.f64 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))) 1)
(*.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))) 1)
(*.f64 1 (+.f64 (*.f64 (sin.f64 re) (*.f64 -1/6 (pow.f64 im 3))) (*.f64 (sin.f64 re) (neg.f64 im))))
(*.f64 (+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 -1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))) 1)

eval76.0ms (1.2%)

Compiler

Compiled 4346 to 2961 computations (31.9% saved)

prune30.0ms (0.5%)

Pruning

10 alts after pruning (4 fresh and 6 done)

PrunedKeptTotal
New1874191
Fresh000
Picked011
Done055
Total18710197
Error
0.1b
Counts
197 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
44.4b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
0.7b
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
0.9b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (sin.f64 re) (neg.f64 im))
31.9b
(*.f64 (neg.f64 im) re)
31.7b
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
45.7b
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
46.4b
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
Compiler

Compiled 130 to 100 computations (23.1% saved)

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sin.f64 re) (pow.f64 im 5))
0.0b
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
Compiler

Compiled 25 to 15 computations (40% saved)

series3.0ms (0.1%)

Counts
2 → 8
Calls

12 calls:

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

rewrite41.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
36×rational.json-simplify-2
34×bool.json-1
26×rational.json-1
26×rational.json-2
26×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01140
15240
28940
310340
410440
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(*.f64 (sin.f64 re) (pow.f64 im 5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sin.f64 re) (pow.f64 im 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sin.f64 re) (pow.f64 im 5)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (sin.f64 re) (pow.f64 im 5)) (*.f64 (sin.f64 re) (pow.f64 im 5)))))))

simplify12.0ms (0.2%)

Algorithm
egg-herbie
Rules
114×rational.json-simplify-1
88×rational.json-simplify-2
74×rational.json-simplify-33
32×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047592
193592
2153592
3201592
4224592
5227592
Stop Event
saturated
Counts
12 → 31
Calls
Call 1
Inputs
(*.f64 -1/120 (*.f64 re (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/14400 (*.f64 (pow.f64 re 5) (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5)))))
(+.f64 (*.f64 1/604800 (*.f64 (pow.f64 re 7) (pow.f64 im 5))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/14400 (*.f64 (pow.f64 re 5) (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))))
(*.f64 re (pow.f64 im 5))
(+.f64 (*.f64 re (pow.f64 im 5)) (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 5)))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 5))))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) 0)
(+.f64 0 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 (sin.f64 re) (pow.f64 im 5)) 0)
(+.f64 0 (*.f64 (sin.f64 re) (pow.f64 im 5)))
Outputs
(*.f64 -1/120 (*.f64 re (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 im 5) (pow.f64 re 3))))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 (pow.f64 im 5) (*.f64 1/720 (pow.f64 re 3))))
(+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/14400 (*.f64 (pow.f64 re 5) (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5)))))
(+.f64 (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 -1/14400 (*.f64 (pow.f64 im 5) (pow.f64 re 5)))) (*.f64 1/720 (*.f64 (pow.f64 im 5) (pow.f64 re 3))))
(+.f64 (*.f64 (pow.f64 im 5) (*.f64 1/720 (pow.f64 re 3))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 (pow.f64 im 5) (*.f64 -1/14400 (pow.f64 re 5)))))
(+.f64 (*.f64 1/604800 (*.f64 (pow.f64 re 7) (pow.f64 im 5))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 -1/14400 (*.f64 (pow.f64 re 5) (pow.f64 im 5))) (*.f64 1/720 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))))
(+.f64 (+.f64 (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 -1/14400 (*.f64 (pow.f64 im 5) (pow.f64 re 5)))) (*.f64 1/720 (*.f64 (pow.f64 im 5) (pow.f64 re 3)))) (*.f64 1/604800 (*.f64 (pow.f64 im 5) (pow.f64 re 7))))
(+.f64 (+.f64 (*.f64 (pow.f64 im 5) (*.f64 1/720 (pow.f64 re 3))) (*.f64 (pow.f64 im 5) (*.f64 -1/14400 (pow.f64 re 5)))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 (pow.f64 im 5) (*.f64 1/604800 (pow.f64 re 7)))))
(+.f64 (*.f64 (pow.f64 im 5) (*.f64 1/720 (pow.f64 re 3))) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 -1/14400 (pow.f64 re 5))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (*.f64 (pow.f64 im 5) (*.f64 1/604800 (pow.f64 re 7))))))
(+.f64 (*.f64 (pow.f64 im 5) (*.f64 1/720 (pow.f64 re 3))) (+.f64 (*.f64 -1/120 (*.f64 re (pow.f64 im 5))) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 -1/14400 (pow.f64 re 5))) (*.f64 (pow.f64 im 5) (*.f64 1/604800 (pow.f64 re 7))))))
(*.f64 re (pow.f64 im 5))
(+.f64 (*.f64 re (pow.f64 im 5)) (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))))
(+.f64 (*.f64 re (pow.f64 im 5)) (*.f64 (pow.f64 re 3) (*.f64 -1/6 (pow.f64 im 5))))
(+.f64 (*.f64 re (pow.f64 im 5)) (*.f64 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 re 3))))
(+.f64 (*.f64 re (pow.f64 im 5)) (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 3) -1/6)))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 5)))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 (pow.f64 re 3) (*.f64 -1/6 (pow.f64 im 5))) (*.f64 (pow.f64 re 5) (*.f64 1/120 (pow.f64 im 5)))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (pow.f64 im 5) (*.f64 1/120 (pow.f64 re 5)))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 5) 1/120))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 -1/5040 (*.f64 (pow.f64 re 7) (pow.f64 im 5))) (+.f64 (*.f64 -1/6 (*.f64 (pow.f64 re 3) (pow.f64 im 5))) (*.f64 1/120 (*.f64 (pow.f64 re 5) (pow.f64 im 5))))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (+.f64 (*.f64 (pow.f64 re 3) (*.f64 -1/6 (pow.f64 im 5))) (*.f64 (pow.f64 re 5) (*.f64 1/120 (pow.f64 im 5)))) (*.f64 (pow.f64 re 7) (*.f64 -1/5040 (pow.f64 im 5)))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 1/120 (pow.f64 re 5))) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 -1/6 (pow.f64 re 3))) (*.f64 (pow.f64 im 5) (*.f64 -1/5040 (pow.f64 re 7))))))
(+.f64 (*.f64 re (pow.f64 im 5)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 5) 1/120)) (+.f64 (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 3) -1/6)) (*.f64 (pow.f64 im 5) (*.f64 (pow.f64 re 7) -1/5040)))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) 0)
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 im 5) (sin.f64 re))) 0)
(+.f64 0 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (pow.f64 im 5) (sin.f64 re))) 0)
(+.f64 (*.f64 (sin.f64 re) (pow.f64 im 5)) 0)
(+.f64 (*.f64 (pow.f64 im 5) (sin.f64 re)) 0)
(+.f64 0 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 (pow.f64 im 5) (sin.f64 re)) 0)

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 22 computations (35.3% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

9 calls:

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

rewrite7.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
36×rational.json-simplify-2
36×bool.json-1
26×rational.json-1
26×rational.json-2
26×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01242
15742
29442
310442
411342
511642
611842
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 -1/6 (pow.f64 im 3))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
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 or (*.f64 -1/6 (pow.f64 im 3)) (*.f64 -1/6 (pow.f64 im 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))))))

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
310×rational.json-simplify-31
254×rational.json-simplify-2
26×rational.json-simplify-27
26×rational.json-simplify-9
20×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
025784
140764
253764
366764
486764
5115764
6154764
7208764
8265764
9359764
10403764
Stop Event
saturated
Counts
28 → 14
Calls
Call 1
Inputs
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(+.f64 0 (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) 0)
(+.f64 0 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))
Outputs
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 -1 (*.f64 re im))
(*.f64 re (*.f64 -1 im))
(*.f64 re (neg.f64 im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(*.f64 re (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(*.f64 re (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 re (*.f64 -1 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(+.f64 0 (*.f64 -1/6 (pow.f64 im 3)))
(+.f64 (*.f64 -1/6 (pow.f64 im 3)) 0)
(+.f64 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))) 0)
(+.f64 0 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))
(+.f64 0 (*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im))))
(+.f64 0 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)))

localize4.0ms (0.1%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize19.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (pow.f64 im 5) -1/60)
0.1b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
Compiler

Compiled 48 to 34 computations (29.2% saved)

series3.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite6.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
48×rational.json-simplify-2
46×bool.json-1
34×rational.json-1
34×rational.json-2
34×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01654
17554
211854
313454
413854
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
(*.f64 (pow.f64 im 5) -1/60)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))) (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 im 5) -1/60) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 im 5) -1/60))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60))))))

simplify26.0ms (0.4%)

Algorithm
egg-herbie
Rules
86×rational.json-simplify-2
60×rational.json-simplify-1
34×rational.json-simplify-33
28×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0541520
11011520
21381520
31641520
41751520
51751520
Stop Event
saturated
Counts
40 → 24
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 -1/60 (pow.f64 im 5))
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 (pow.f64 im 5) -1/60) 0)
(+.f64 0 (*.f64 (pow.f64 im 5) -1/60))
Outputs
(*.f64 -1 (*.f64 (sin.f64 re) im))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(+.f64 (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (*.f64 -1 (*.f64 (sin.f64 re) im)))
(+.f64 (*.f64 -1 (*.f64 (sin.f64 re) im)) (*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))))
(*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 -1/12 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 3))))
(+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 -1/12 (pow.f64 re 3))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))))
(+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 1/240 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 5)))))
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/240 (pow.f64 re 5)))))
(+.f64 (*.f64 -1/12 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/240 (*.f64 (pow.f64 re 5) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))) (*.f64 -1/10080 (*.f64 (pow.f64 re 7) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5))))))))
(+.f64 (*.f64 -1/12 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 3))) (+.f64 (*.f64 1/240 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 5))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 -1/10080 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 re 7))))))
(+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 -1/12 (pow.f64 re 3))) (+.f64 (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/240 (pow.f64 re 5))) (+.f64 (*.f64 1/2 (*.f64 re (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) (*.f64 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 -1/10080 (pow.f64 re 7))))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 1/2 (*.f64 (sin.f64 re) (+.f64 (*.f64 -2 im) (*.f64 -1/60 (pow.f64 im 5)))))
(*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60))))
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(*.f64 -1/60 (pow.f64 im 5))
(*.f64 (pow.f64 im 5) -1/60)
(+.f64 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))) 0)
(+.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re))))
(+.f64 (*.f64 (sin.f64 re) (*.f64 1/2 (+.f64 (*.f64 im -2) (*.f64 (pow.f64 im 5) -1/60)))) 0)
(+.f64 (*.f64 (pow.f64 im 5) -1/60) 0)
(+.f64 0 (*.f64 (pow.f64 im 5) -1/60))
(+.f64 (*.f64 (pow.f64 im 5) -1/60) 0)

eval27.0ms (0.4%)

Compiler

Compiled 1462 to 1109 computations (24.1% saved)

prune14.0ms (0.2%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New68169
Fresh000
Picked011
Done189
Total691079
Error
0.1b
Counts
79 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
44.4b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
0.7b
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
0.9b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (sin.f64 re) (neg.f64 im))
31.9b
(*.f64 (neg.f64 im) re)
31.7b
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
45.7b
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
46.4b
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
Compiler

Compiled 129 to 99 computations (23.3% saved)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 30 to 21 computations (30% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite9.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
80×rational.json-simplify-2
66×bool.json-1
54×rational.json-1
54×rational.json-2
40×rational.json-simplify-31
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
15125
210025
314525
417025
519625
622525
724525
824625
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re) (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re))))))

simplify35.0ms (0.6%)

Algorithm
egg-herbie
Rules
344×rational.json-simplify-31
250×rational.json-simplify-2
26×rational.json-simplify-27
26×rational.json-simplify-9
20×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019446
134426
250426
364426
484426
5113426
6152426
7201426
8260426
9348426
10418426
Stop Event
saturated
Counts
14 → 13
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 re im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re) 0)
(+.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re))
Outputs
(*.f64 -1 (*.f64 re im))
(*.f64 re (neg.f64 im))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(*.f64 re (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (*.f64 re -1/6))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(*.f64 -1/6 (*.f64 re (pow.f64 im 3)))
(*.f64 re (*.f64 -1/6 (pow.f64 im 3)))
(*.f64 (pow.f64 im 3) (*.f64 re -1/6))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 -1 (*.f64 re im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 re -1/6)))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 re (*.f64 -1/6 (pow.f64 im 3))))
(+.f64 (*.f64 re (neg.f64 im)) (*.f64 -1/6 (*.f64 re (pow.f64 im 3))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re) 0)
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 0)
(+.f64 0 (*.f64 (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im) re))
(+.f64 (*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im)) 0)

eval3.0ms (0%)

Compiler

Compiled 149 to 96 computations (35.6% saved)

prune6.0ms (0.1%)

Pruning

10 alts after pruning (0 fresh and 10 done)

PrunedKeptTotal
New15015
Fresh000
Picked011
Done099
Total151025
Error
0.1b
Counts
25 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.9b
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
44.4b
(*.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)) (*.f64 1/2 (sin.f64 re)))
0.7b
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
0.9b
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
1.2b
(*.f64 (sin.f64 re) (neg.f64 im))
31.9b
(*.f64 (neg.f64 im) re)
31.7b
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
45.7b
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
46.4b
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
Compiler

Compiled 129 to 99 computations (23.3% saved)

regimes38.0ms (0.6%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 (neg.f64 im) re)
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (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 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
Outputs
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
Calls

6 calls:

8.0ms
(*.f64 1/2 (sin.f64 re))
7.0ms
re
6.0ms
(sin.f64 re)
6.0ms
im
2.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Results
ErrorSegmentsBranch
0.7b1re
0.7b1im
0.7b1(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.7b1(*.f64 1/2 (sin.f64 re))
0.7b1(sin.f64 re)
0.7b1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 169 to 105 computations (37.9% saved)

regimes35.0ms (0.6%)

Counts
11 → 1
Calls
Call 1
Inputs
(*.f64 (neg.f64 im) re)
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (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 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
Outputs
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
Calls

6 calls:

8.0ms
(sin.f64 re)
7.0ms
im
6.0ms
(*.f64 1/2 (sin.f64 re))
6.0ms
re
2.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
ErrorSegmentsBranch
0.9b1re
0.9b1im
0.9b1(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.9b1(*.f64 1/2 (sin.f64 re))
0.9b1(sin.f64 re)
0.9b1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 149 to 90 computations (39.6% saved)

regimes34.0ms (0.5%)

Counts
10 → 1
Calls
Call 1
Inputs
(*.f64 (neg.f64 im) re)
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 re (-.f64 (*.f64 -1/6 (pow.f64 im 3)) im))
(*.f64 re (+.f64 (*.f64 -1/6 (pow.f64 im 3)) (neg.f64 im)))
(*.f64 -1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
(*.f64 re (*.f64 (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im))) -1/2))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 (pow.f64 im 5) -1/60)) (*.f64 1/2 (sin.f64 re)))
(*.f64 (*.f64 1/2 (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)))
Outputs
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
Calls

6 calls:

6.0ms
re
6.0ms
(sin.f64 re)
6.0ms
(*.f64 1/2 (sin.f64 re))
5.0ms
im
5.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Results
ErrorSegmentsBranch
0.9b1re
0.9b1im
0.9b1(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.9b1(*.f64 1/2 (sin.f64 re))
0.9b1(sin.f64 re)
0.9b1(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 135 to 84 computations (37.8% saved)

regimes16.0ms (0.3%)

Accuracy

Total -46.0b remaining (-3946.4%)

Threshold costs -46.0b (-3946.4%)

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

3 calls:

6.0ms
re
4.0ms
(sin.f64 re)
4.0ms
im
Results
ErrorSegmentsBranch
1.2b1re
1.2b1im
1.2b1(sin.f64 re)
Compiler

Compiled 58 to 36 computations (37.9% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030169
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 im) re)
Outputs
(*.f64 (+.f64 (*.f64 -2 im) (+.f64 (*.f64 -1/60 (pow.f64 im 5)) (*.f64 -1/3 (pow.f64 im 3)))) (*.f64 1/2 (sin.f64 re)))
(+.f64 (*.f64 (sin.f64 re) (neg.f64 im)) (*.f64 (pow.f64 im 3) (*.f64 (sin.f64 re) -1/6)))
(*.f64 (+.f64 (*.f64 -2 im) (*.f64 -1/3 (pow.f64 im 3))) (*.f64 1/2 (sin.f64 re)))
(*.f64 (sin.f64 re) (neg.f64 im))
(*.f64 (neg.f64 im) re)
Compiler

Compiled 67 to 51 computations (23.9% saved)

soundness9.0ms (0.2%)

Algorithm
egg-herbie
Rules
236×rational.json-simplify-31
168×rational.json-simplify-2
38×rational.json-simplify-27
32×rational.json-simplify-9
30×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01335
12135
23235
34835
47635
512235
619635
730535
832835
933435
Stop Event
saturated
Compiler

Compiled 24 to 13 computations (45.8% saved)

end39.0ms (0.6%)

Compiler

Compiled 59 to 37 computations (37.3% saved)

Profiling

Loading profile data...