Details

Time bar (total: 27.6s)

analyze3.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
80%50%12.5%0%37.5%0%0%5
88.9%50%6.2%0%43.7%0%0%6
94.1%50%3.1%0%46.9%0%0%7
97%50%1.6%0%48.4%0%0%8
98.5%50%0.8%0%49.2%0%0%9
99.2%50.4%0.4%0%49.2%0%0%10
99.6%50.4%0.2%0%49.4%0%0%11
99.8%50.4%0.1%0%49.5%0%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample18.3s (66.1%)

Results
15.2s4308×body2048valid
2.6s2051×body1024valid
278.0ms1002×body512valid
167.0ms895×body256valid
1.0ms14×body256infinite
Bogosity

preprocess3.7s (13.5%)

Algorithm
egg-herbie
Rules
20662×rational.json-simplify-41
2336×rational.json-simplify-1
1296×rational.json-simplify-35
rational.json-simplify-12
rational.json-simplify-10
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11825
22625
33425
44625
56625
611625
725125
864825
981625
1082425
1183225
1284025
1384825
1485625
1586425
1687225
1788025
1888825
1989625
2090425
2191225
2292025
2392825
24272825
25273625
26274425
27275225
28276025
29276825
30358225
31359025
32359825
33360625
34361425
35362225
36363025
37363825
38364625
39365425
40366225
41367025
42367825
43368625
44369425
45370225
46371025
47371825
48372625
49373425
50374225
51375025
52375825
53376625
54377425
55378225
56379025
57379825
58380625
59381425
60382225
61383025
62383825
63384625
64385425
65386225
66387025
67387825
68388625
69389425
70390225
71391025
72391825
73392625
74393425
75394225
76395025
77395825
78396625
79397425
80398225
81399025
82399825
83400625
84401425
85402225
86403025
87403825
88404625
89405425
90406225
91407025
92407825
93408625
94409425
95410225
96411025
97411825
98412625
99413425
100414225
101415025
102415825
103416625
104417425
105418225
106419025
107419825
108420625
109421425
110422225
111423025
112423825
113424625
114425425
115426225
116427025
117427825
118428625
119429425
120430225
121431025
122431825
123432625
124433425
125434225
126435025
127435825
128436625
129437425
130438225
131439025
132439825
133440625
134441425
135442225
136443025
137443825
138444625
139445425
140446225
141447025
142447825
143448625
144449425
145450225
146451025
147451825
148452625
149453425
150454225
151455025
152455825
153456625
154457425
155458225
156459025
157459825
158460625
159461425
160462225
161463025
162463825
163464625
164465425
165466225
166467025
167467825
168468625
169469425
170470225
171471025
172471825
173472625
174473425
175474225
176475025
177475825
178476625
179477425
180478225
181479025
182479825
183480625
184481425
185482225
186483025
187483825
188484625
189485425
190486225
191487025
192487825
193488625
194489425
195490225
196491025
197491825
198492625
199493425
200494225
201495025
202495825
203496625
204497425
205498225
206499025
207499825
208500625
209501425
210502225
211503025
212503825
213504625
214505425
215506225
216507025
217507825
218508625
219509425
220510225
221511025
222511825
223512625
224513425
225514225
226515025
227515825
228516625
229517425
230518225
231519025
232519825
233520625
234521425
235522225
236523025
237523825
238524625
239525425
240526225
241527025
242527825
243528625
244529425
245530225
246531025
247531825
248532625
249533425
250534225
251535025
252535825
253536625
254537425
255538225
256539025
257539825
258540625
259541425
260542225
261543025
262543825
263544625
264545425
265546225
266547025
267547825
268548625
269549425
270550225
271551025
272551825
273552625
274553425
275554225
276555025
277555825
278556625
279557425
280558225
281559025
282559825
283560625
284561425
285562225
286563025
287563825
288564625
289565425
290566225
291567025
292567825
293568625
294569425
295570225
296571025
297571825
298572625
299573425
300574225
301575025
302575825
303576625
304577425
305578225
306579025
307579825
308580625
309581425
310582225
311583025
312583825
313584625
314585425
315586225
316587025
317587825
318588625
319589425
320590225
321591025
322591825
323592625
324593425
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Outputs
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify3.7s (13.5%)

Algorithm
egg-herbie
Rules
20662×rational.json-simplify-41
2336×rational.json-simplify-1
1296×rational.json-simplify-35
rational.json-simplify-12
rational.json-simplify-10
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11825
22625
33425
44625
56625
611625
725125
864825
981625
1082425
1183225
1284025
1384825
1485625
1586425
1687225
1788025
1888825
1989625
2090425
2191225
2292025
2392825
24272825
25273625
26274425
27275225
28276025
29276825
30358225
31359025
32359825
33360625
34361425
35362225
36363025
37363825
38364625
39365425
40366225
41367025
42367825
43368625
44369425
45370225
46371025
47371825
48372625
49373425
50374225
51375025
52375825
53376625
54377425
55378225
56379025
57379825
58380625
59381425
60382225
61383025
62383825
63384625
64385425
65386225
66387025
67387825
68388625
69389425
70390225
71391025
72391825
73392625
74393425
75394225
76395025
77395825
78396625
79397425
80398225
81399025
82399825
83400625
84401425
85402225
86403025
87403825
88404625
89405425
90406225
91407025
92407825
93408625
94409425
95410225
96411025
97411825
98412625
99413425
100414225
101415025
102415825
103416625
104417425
105418225
106419025
107419825
108420625
109421425
110422225
111423025
112423825
113424625
114425425
115426225
116427025
117427825
118428625
119429425
120430225
121431025
122431825
123432625
124433425
125434225
126435025
127435825
128436625
129437425
130438225
131439025
132439825
133440625
134441425
135442225
136443025
137443825
138444625
139445425
140446225
141447025
142447825
143448625
144449425
145450225
146451025
147451825
148452625
149453425
150454225
151455025
152455825
153456625
154457425
155458225
156459025
157459825
158460625
159461425
160462225
161463025
162463825
163464625
164465425
165466225
166467025
167467825
168468625
169469425
170470225
171471025
172471825
173472625
174473425
175474225
176475025
177475825
178476625
179477425
180478225
181479025
182479825
183480625
184481425
185482225
186483025
187483825
188484625
189485425
190486225
191487025
192487825
193488625
194489425
195490225
196491025
197491825
198492625
199493425
200494225
201495025
202495825
203496625
204497425
205498225
206499025
207499825
208500625
209501425
210502225
211503025
212503825
213504625
214505425
215506225
216507025
217507825
218508625
219509425
220510225
221511025
222511825
223512625
224513425
225514225
226515025
227515825
228516625
229517425
230518225
231519025
232519825
233520625
234521425
235522225
236523025
237523825
238524625
239525425
240526225
241527025
242527825
243528625
244529425
245530225
246531025
247531825
248532625
249533425
250534225
251535025
252535825
253536625
254537425
255538225
256539025
257539825
258540625
259541425
260542225
261543025
262543825
263544625
264545425
265546225
266547025
267547825
268548625
269549425
270550225
271551025
272551825
273552625
274553425
275554225
276555025
277555825
278556625
279557425
280558225
281559025
282559825
283560625
284561425
285562225
286563025
287563825
288564625
289565425
290566225
291567025
292567825
293568625
294569425
295570225
296571025
297571825
298572625
299573425
300574225
301575025
302575825
303576625
304577425
305578225
306579025
307579825
308580625
309581425
310582225
311583025
312583825
313584625
314585425
315586225
316587025
317587825
318588625
319589425
320590225
321591025
322591825
323592625
324593425
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Outputs
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))

eval0.0ms (0%)

Compiler

Compiled 9 to 7 computations (22.2% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
30.7b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
30.7b
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize8.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (exp.f64 x) 2)
5.1b
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 22 to 10 computations (54.5% saved)

series1.0ms (0%)

Counts
2 → 16
Calls

6 calls:

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

rewrite97.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1018×rational.json-simplify-35
1010×bool.json-1
1010×bool.json-2
972×rational.json-1
972×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01036
110136
227536
359336
4130136
5314936
6757736
Stop Event
node limit
Counts
2 → 43
Calls
Call 1
Inputs
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 x) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (/.f64 1/2 (exp.f64 x)) (*.f64 (+.f64 (exp.f64 x) -2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (/.f64 1/2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (/.f64 2 (exp.f64 x)) (*.f64 2 (+.f64 (exp.f64 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) (/.f64 2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 x) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (exp.f64 x) -2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (exp.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (*.f64 (+.f64 (exp.f64 x) -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (-.f64 1 (neg.f64 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (exp.f64 x) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (exp.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (exp.f64 x) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (exp.f64 x) -2) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (exp.f64 x) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (exp.f64 x) -2) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (exp.f64 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (exp.f64 x) -2) (+.f64 (exp.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (exp.f64 x) -2) (+.f64 (exp.f64 x) -2))))))

simplify175.0ms (0.6%)

Algorithm
egg-herbie
Rules
1568×rational.json-simplify-35
1160×rational.json-simplify-1
1114×rational.json-simplify-19
1110×rational.json-simplify-40
976×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01181207
12251207
25451207
313421207
424981207
531431207
633461207
735621207
839521207
952181207
1077941207
Stop Event
node limit
Counts
59 → 73
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/20160 (pow.f64 x 8)))))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
-1
(-.f64 x 1)
(-.f64 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) 1)
(-.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)) 1)
(-.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 0)
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2))
(*.f64 2 (+.f64 (/.f64 1/2 (exp.f64 x)) (*.f64 (+.f64 (exp.f64 x) -2) 1/2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (/.f64 1/2 (exp.f64 x))))
(*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)
(*.f64 1 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 1/2)
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))))
(*.f64 1/2 (+.f64 (/.f64 2 (exp.f64 x)) (*.f64 2 (+.f64 (exp.f64 x) -2))))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) (/.f64 2 (exp.f64 x))))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)
(/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8))) 32)
(+.f64 (exp.f64 x) -2)
(+.f64 (+.f64 (exp.f64 x) -2) 0)
(+.f64 0 (+.f64 (exp.f64 x) -2))
(+.f64 -2 (exp.f64 x))
(+.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (*.f64 (+.f64 (exp.f64 x) -2) 1/2))
(+.f64 -3 (-.f64 1 (neg.f64 (exp.f64 x))))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/2))
(*.f64 (+.f64 (exp.f64 x) -2) 1)
(*.f64 1 (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/2)
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) -2) 4))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) -2)))
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -2) 4))
(*.f64 (/.f64 (+.f64 (exp.f64 x) -2) 4) 4)
(/.f64 (+.f64 (exp.f64 x) -2) 1)
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 4)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8))) 32)
Outputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (pow.f64 x 2) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/20160 (pow.f64 x 8)))))
(+.f64 (pow.f64 x 2) (+.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/20160 (pow.f64 x 8))) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/20160 (pow.f64 x 8))) (+.f64 (pow.f64 x 2) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/20160 (pow.f64 x 8)))))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/20160 (pow.f64 x 8)))))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 (neg.f64 x)) (exp.f64 x)) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(-.f64 (+.f64 (exp.f64 x) (exp.f64 (*.f64 -1 x))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
-1
(-.f64 x 1)
(+.f64 x -1)
(-.f64 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x) 1)
(+.f64 x (-.f64 (*.f64 (pow.f64 x 2) 1/2) 1))
(+.f64 (*.f64 (pow.f64 x 2) 1/2) (+.f64 x -1))
(+.f64 -1 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)))
(+.f64 (+.f64 x -1) (*.f64 (pow.f64 x 2) 1/2))
(+.f64 x (+.f64 -1 (*.f64 (pow.f64 x 2) 1/2)))
(-.f64 (+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)) 1)
(+.f64 (+.f64 x (*.f64 (pow.f64 x 2) 1/2)) (-.f64 (*.f64 1/6 (pow.f64 x 3)) 1))
(+.f64 -1 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (+.f64 x (*.f64 1/6 (pow.f64 x 3)))))
(+.f64 x (+.f64 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 1/6 (pow.f64 x 3))) -1))
(+.f64 (*.f64 (pow.f64 x 2) 1/2) (+.f64 (+.f64 x -1) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 x (+.f64 (*.f64 (pow.f64 x 2) 1/2) (+.f64 -1 (*.f64 1/6 (pow.f64 x 3)))))
(-.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 0)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 2 (+.f64 (/.f64 1/2 (exp.f64 x)) (*.f64 (+.f64 (exp.f64 x) -2) 1/2)))
(*.f64 2 (+.f64 (/.f64 1/2 (exp.f64 x)) (*.f64 1/2 (+.f64 (exp.f64 x) -2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (/.f64 1/2 (exp.f64 x))))
(*.f64 2 (+.f64 (/.f64 1/2 (exp.f64 x)) (*.f64 1/2 (+.f64 (exp.f64 x) -2))))
(*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 1 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 1/2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 1/4)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 1/2 (+.f64 (/.f64 2 (exp.f64 x)) (*.f64 2 (+.f64 (exp.f64 x) -2))))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) (/.f64 2 (exp.f64 x))))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1/2) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4))
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(*.f64 (/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 1)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2))) 2)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 4) 4)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8) 8)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) 16)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) (+.f64 (exp.f64 (neg.f64 x)) -2)) 8))) 32)
(+.f64 (exp.f64 (neg.f64 x)) (-.f64 (exp.f64 x) 2))
(+.f64 (exp.f64 (neg.f64 x)) (+.f64 (exp.f64 x) -2))
(+.f64 (exp.f64 x) -2)
(+.f64 (+.f64 (exp.f64 x) -2) 0)
(+.f64 (exp.f64 x) -2)
(+.f64 0 (+.f64 (exp.f64 x) -2))
(+.f64 (exp.f64 x) -2)
(+.f64 -2 (exp.f64 x))
(+.f64 (exp.f64 x) -2)
(+.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) (*.f64 (+.f64 (exp.f64 x) -2) 1/2))
(+.f64 (exp.f64 x) -2)
(+.f64 -3 (-.f64 1 (neg.f64 (exp.f64 x))))
(+.f64 (exp.f64 x) -2)
(*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 1/2))
(+.f64 (exp.f64 x) -2)
(*.f64 (+.f64 (exp.f64 x) -2) 1)
(+.f64 (exp.f64 x) -2)
(*.f64 1 (+.f64 (exp.f64 x) -2))
(+.f64 (exp.f64 x) -2)
(*.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 1/2)
(+.f64 (exp.f64 x) -2)
(*.f64 4 (/.f64 (+.f64 (exp.f64 x) -2) 4))
(+.f64 (exp.f64 x) -2)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 1/4)
(+.f64 (exp.f64 x) -2)
(*.f64 1/2 (*.f64 2 (+.f64 (exp.f64 x) -2)))
(+.f64 (exp.f64 x) -2)
(*.f64 (*.f64 (+.f64 (exp.f64 x) -2) 1/2) 2)
(+.f64 (exp.f64 x) -2)
(*.f64 1/4 (*.f64 (+.f64 (exp.f64 x) -2) 4))
(+.f64 (exp.f64 x) -2)
(*.f64 (/.f64 (+.f64 (exp.f64 x) -2) 4) 4)
(+.f64 (exp.f64 x) -2)
(/.f64 (+.f64 (exp.f64 x) -2) 1)
(+.f64 (exp.f64 x) -2)
(/.f64 (*.f64 2 (+.f64 (exp.f64 x) -2)) 2)
(+.f64 (exp.f64 x) -2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 4) 4)
(+.f64 (exp.f64 x) -2)
(/.f64 (*.f64 (+.f64 (exp.f64 x) -2) 8) 8)
(+.f64 (exp.f64 x) -2)
(/.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) 16)
(+.f64 (exp.f64 x) -2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8)) (*.f64 2 (*.f64 (+.f64 (exp.f64 x) -2) 8))) 32)
(+.f64 (exp.f64 x) -2)

eval82.0ms (0.3%)

Compiler

Compiled 948 to 600 computations (36.7% saved)

prune10.0ms (0%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New69473
Fresh000
Picked011
Done000
Total69574
Error
0.0b
Counts
74 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(pow.f64 x 2)
0.4b
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
0.5b
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
30.7b
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
31.6b
(+.f64 -1 (exp.f64 (neg.f64 x)))
Compiler

Compiled 45 to 36 computations (20% saved)

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.7b
(+.f64 -1 (exp.f64 (neg.f64 x)))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite83.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1750×bool.json-1
1750×bool.json-2
1698×rational.json-1
1200×bool.json-3
918×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
18615
225615
356315
4120915
5285215
6656915
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(+.f64 -1 (exp.f64 (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (neg.f64 x)) (-.f64 1 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -1 (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (exp.f64 x)) (*.f64 1/2 (-.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -2 (/.f64 2 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 -1) (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (exp.f64 (-.f64 1 x)) (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (exp.f64 x)) (exp.f64 (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (-.f64 1 (exp.f64 x))) (/.f64 2 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))) (exp.f64 -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))) (exp.f64 (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (exp.f64 x)) (exp.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 -1 (exp.f64 (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 -1 (exp.f64 (neg.f64 x))) (+.f64 -1 (exp.f64 (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 -1 (exp.f64 (neg.f64 x))) (+.f64 -1 (exp.f64 (neg.f64 x))))))))

simplify133.0ms (0.5%)

Algorithm
egg-herbie
Rules
1080×rational.json-simplify-2
1000×rational.json-simplify-55
962×rational.json-simplify-41
860×rational.json-simplify-35
840×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
082683
1149683
2316683
3807683
41380683
52909683
63576683
75037683
86444683
Stop Event
node limit
Counts
41 → 45
Calls
Call 1
Inputs
(*.f64 -1 x)
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1 x))))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(-.f64 (exp.f64 (neg.f64 x)) 1)
(-.f64 (exp.f64 (neg.f64 x)) 1)
(-.f64 (exp.f64 (neg.f64 x)) 1)
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(-.f64 (exp.f64 (neg.f64 x)) 1)
(-.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 0)
(*.f64 (exp.f64 (neg.f64 x)) (-.f64 1 (exp.f64 x)))
(*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)
(*.f64 1 (+.f64 -1 (exp.f64 (neg.f64 x))))
(*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2))
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))
(*.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 1/2)
(*.f64 (/.f64 2 (exp.f64 x)) (*.f64 1/2 (-.f64 1 (exp.f64 x))))
(*.f64 4 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))
(*.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 1/4)
(*.f64 1/2 (+.f64 -2 (/.f64 2 (exp.f64 x))))
(*.f64 (exp.f64 -1) (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))))
(*.f64 (exp.f64 (-.f64 1 x)) (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))))
(*.f64 (-.f64 1 (exp.f64 x)) (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2) 2)
(*.f64 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))) 2)
(*.f64 (*.f64 1/2 (-.f64 1 (exp.f64 x))) (/.f64 2 (exp.f64 x)))
(*.f64 (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))) (exp.f64 -1))
(*.f64 (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))) (exp.f64 (-.f64 1 x)))
(*.f64 1/4 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))
(*.f64 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)
(/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)
(/.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 2)
(/.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)
(/.f64 (-.f64 1 (exp.f64 x)) (exp.f64 x))
(/.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8))) 32)
Outputs
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x))
(+.f64 (neg.f64 x) (*.f64 1/2 (pow.f64 x 2)))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 x)))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (neg.f64 x) (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 (neg.f64 x) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (*.f64 1/24 (pow.f64 x 4)) (*.f64 -1 x))))
(+.f64 (*.f64 1/2 (pow.f64 x 2)) (+.f64 (+.f64 (neg.f64 x) (*.f64 1/24 (pow.f64 x 4))) (*.f64 -1/6 (pow.f64 x 3))))
(+.f64 (*.f64 1/24 (pow.f64 x 4)) (+.f64 (neg.f64 x) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1/6 (pow.f64 x 3)))))
(+.f64 (+.f64 (neg.f64 x) (*.f64 1/2 (pow.f64 x 2))) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (*.f64 1/24 (pow.f64 x 4))))
(+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (neg.f64 x) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4)))))
(+.f64 (neg.f64 x) (+.f64 (*.f64 -1/6 (pow.f64 x 3)) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4)))))
(+.f64 (+.f64 (neg.f64 x) (*.f64 -1/6 (pow.f64 x 3))) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 4))))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (*.f64 -1 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (exp.f64 (neg.f64 x)) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(-.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 0)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (neg.f64 x)) (-.f64 1 (exp.f64 x)))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 1 (+.f64 -1 (exp.f64 (neg.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 2 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 1/2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (/.f64 2 (exp.f64 x)) (*.f64 1/2 (-.f64 1 (exp.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 4 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 1/4)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 1/2 (+.f64 -2 (/.f64 2 (exp.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 -1) (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (exp.f64 (-.f64 1 x)) (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (-.f64 1 (exp.f64 x)) (exp.f64 (neg.f64 x)))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1/2) 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (-.f64 1 (exp.f64 x)) (/.f64 1/2 (exp.f64 x))) 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 1/2 (-.f64 1 (exp.f64 x))) (/.f64 2 (exp.f64 x)))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (exp.f64 (-.f64 1 x)) (-.f64 1 (exp.f64 x))) (exp.f64 -1))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (*.f64 (exp.f64 -1) (-.f64 1 (exp.f64 x))) (exp.f64 (-.f64 1 x)))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 1/4 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(*.f64 (/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 1)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 -2 (/.f64 2 (exp.f64 x))) 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 4) 4)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (-.f64 1 (exp.f64 x)) (exp.f64 x))
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8) 8)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) 16)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8)) (*.f64 2 (*.f64 (+.f64 -1 (exp.f64 (neg.f64 x))) 8))) 32)
(+.f64 -1 (exp.f64 (neg.f64 x)))

localize11.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
0.1b
(*.f64 1/12 (pow.f64 x 4))
Compiler

Compiled 25 to 19 computations (24% saved)

series2.0ms (0%)

Counts
2 → 3
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 1/12 (pow.f64 x 4))
0.0ms
x
@inf
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
0.0ms
x
@inf
(*.f64 1/12 (pow.f64 x 4))
0.0ms
x
@-inf
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
0.0ms
x
@0
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))

rewrite110.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
1678×bool.json-1
1678×bool.json-2
1634×rational.json-1
1634×rational.json-2
1224×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
19738
224138
346738
494938
5206038
6423538
7677638
Stop Event
node limit
Counts
2 → 31
Calls
Call 1
Inputs
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/12 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/12 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 4) 1/24))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/12 (pow.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/12 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 4) 1/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/12 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/12 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/12 (pow.f64 x 4)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 4) 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 4) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))))))

simplify217.0ms (0.8%)

Algorithm
egg-herbie
Rules
4254×rational.json-simplify-41
3062×rational.json-simplify-51
2120×rational.json-simplify-35
954×rational.json-simplify-2
612×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
071688
1149688
2369688
31106688
42204688
52793688
63017688
73123688
83211688
93297688
103382688
113465688
123547688
133629688
143711688
153711688
Stop Event
node limit
Counts
34 → 35
Calls
Call 1
Inputs
(pow.f64 x 2)
(*.f64 1/12 (pow.f64 x 4))
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) 0)
(+.f64 0 (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 4) 1/24))
(-.f64 (*.f64 1/12 (pow.f64 x 4)) 0)
(/.f64 (*.f64 1/12 (pow.f64 x 4)) 1)
(/.f64 (*.f64 (pow.f64 x 4) 1/6) 2)
(/.f64 (*.f64 (pow.f64 x 4) 1/3) 4)
(/.f64 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)))) 64)
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 0)
(*.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 4) 1/24)))
(*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)
(*.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/2)
(*.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 4) 1/6)))
(*.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2) 2)
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))
(*.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4) 4)
(/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)
(/.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 2)
(/.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)))) 64)
Outputs
(pow.f64 x 2)
(*.f64 1/12 (pow.f64 x 4))
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) 0)
(*.f64 1/12 (pow.f64 x 4))
(+.f64 0 (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 4) 1/24))
(*.f64 1/12 (pow.f64 x 4))
(-.f64 (*.f64 1/12 (pow.f64 x 4)) 0)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 1/12 (pow.f64 x 4)) 1)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 (pow.f64 x 4) 1/6) 2)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 (pow.f64 x 4) 1/3) 4)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8) 8)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)) 16)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) 32)
(*.f64 1/12 (pow.f64 x 4))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 1/12 (pow.f64 x 4)) 8)))) 64)
(*.f64 1/12 (pow.f64 x 4))
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 0)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (pow.f64 x 4) 1/24)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 2) 1/2)))
(*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 1/4)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (pow.f64 x 4) 1/6)))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1/2) 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 4) 4)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))) 4)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8) 8)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)) 16)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) 32)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)) 8)))) 64)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
0.0b
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
0.0b
(*.f64 1/360 (pow.f64 x 6))
0.1b
(*.f64 1/12 (pow.f64 x 4))
Compiler

Compiled 52 to 41 computations (21.2% saved)

series2.0ms (0%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 1/360 (pow.f64 x 6))
0.0ms
x
@inf
(*.f64 1/360 (pow.f64 x 6))
0.0ms
x
@inf
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
0.0ms
x
@inf
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
0.0ms
x
@-inf
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))

rewrite94.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1514×bool.json-1
1514×bool.json-2
1466×rational.json-1
1466×rational.json-2
1466×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01587
114687
234787
367487
4144887
5305087
6569587
Stop Event
node limit
Counts
3 → 54
Calls
Call 1
Inputs
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/360 (pow.f64 x 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/360 (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 6) 1/720))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/360 (pow.f64 x 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/360 (pow.f64 x 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 6) 1/180) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 6) 1/90) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/360 (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/360 (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/360 (pow.f64 x 6)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 6) 1/720)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 4) 1/24)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) 1/6) (*.f64 (pow.f64 x 6) 1/180)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 6) 1/180) (*.f64 (pow.f64 x 4) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) (*.f64 (pow.f64 x 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) (*.f64 (pow.f64 x 4) 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) (*.f64 2 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))))))))

simplify514.0ms (1.9%)

Algorithm
egg-herbie
Rules
2880×rational.json-simplify-41
2820×rational.json-simplify-51
2424×rational.json-simplify-35
1292×rational.json-simplify-2
568×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01202502
12312502
25742502
316102502
425452502
529922502
630842502
731632502
832372502
933092502
1033812502
1134782502
1235502502
1336222502
1436942502
1537662502
1638382502
1738382502
1876752502
1976982502
2078002502
2178832502
2279582502
Stop Event
node limit
Counts
78 → 65
Calls
Call 1
Inputs
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) 0)
(+.f64 0 (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 6) 1/720))
(-.f64 (*.f64 1/360 (pow.f64 x 6)) 0)
(/.f64 (*.f64 1/360 (pow.f64 x 6)) 1)
(/.f64 (*.f64 (pow.f64 x 6) 1/180) 2)
(/.f64 (*.f64 (pow.f64 x 6) 1/90) 4)
(/.f64 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8))) 32)
(-.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 0)
(*.f64 4 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4))
(*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)
(*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 6) 1/720)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 4) 1/24)))
(*.f64 1 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))))
(*.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 1/2)
(*.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) 1/6) (*.f64 (pow.f64 x 6) 1/180)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 6) 1/180) (*.f64 (pow.f64 x 4) 1/6)))
(*.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) 2)
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))))
(*.f64 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4) 4)
(/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 2)
(/.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8))) 32)
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 0)
(*.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) (*.f64 (pow.f64 x 2) 1/2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)) 2)))
(*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)
(*.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))))
(*.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/2)
(*.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) (*.f64 (pow.f64 x 4) 1/6)))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) (*.f64 2 (pow.f64 x 2))))
(*.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2) 2)
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))
(*.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4) 4)
(/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)
(/.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 2)
(/.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8))) 32)
Outputs
(*.f64 1/12 (pow.f64 x 4))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) 0)
(*.f64 1/360 (pow.f64 x 6))
(+.f64 0 (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/360 (pow.f64 x 6))
(+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 6) 1/720))
(*.f64 1/360 (pow.f64 x 6))
(-.f64 (*.f64 1/360 (pow.f64 x 6)) 0)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (*.f64 1/360 (pow.f64 x 6)) 1)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (*.f64 (pow.f64 x 6) 1/180) 2)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (*.f64 (pow.f64 x 6) 1/90) 4)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8) 8)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) 16)
(*.f64 1/360 (pow.f64 x 6))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8)) (*.f64 2 (*.f64 (*.f64 1/360 (pow.f64 x 6)) 8))) 32)
(*.f64 1/360 (pow.f64 x 6))
(-.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 0)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 4 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (*.f64 (pow.f64 x 6) 1/720)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 4) 1/24)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 6) 1/720) (*.f64 (pow.f64 x 4) 1/24)))
(*.f64 1 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 1/2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 1/4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) 1/6) (*.f64 (pow.f64 x 6) 1/180)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 6) 1/180) (*.f64 (pow.f64 x 4) 1/6)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) 2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(*.f64 (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 4) 4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) 2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (*.f64 4 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4)))) 4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8) 8)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) 16)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 8))) 32)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6)))
(-.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 0)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 4 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 2) 1/2) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 1/2) (*.f64 (pow.f64 x 2) 1/2)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 4) 1/24) (/.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)) 2)))
(*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 1/4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) (*.f64 (pow.f64 x 4) 1/6)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 4) 1/6) (*.f64 2 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))
(*.f64 1/2 (+.f64 (*.f64 2 (pow.f64 x 2)) (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2)))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 1/360 (pow.f64 x 6)) (*.f64 1/12 (pow.f64 x 4))) 2) (*.f64 2 (pow.f64 x 2))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1/2) 2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))))
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(*.f64 (/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 4) 4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 1)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (*.f64 2 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 2)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (*.f64 4 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))) 4)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8) 8)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) 16)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8)) (*.f64 2 (*.f64 (+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2))) 8))) 32)
(+.f64 (*.f64 1/12 (pow.f64 x 4)) (+.f64 (*.f64 1/360 (pow.f64 x 6)) (pow.f64 x 2)))
(+.f64 (*.f64 1/360 (pow.f64 x 6)) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (pow.f64 x 2)))

localize3.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

eval50.0ms (0.2%)

Compiler

Compiled 2369 to 1916 computations (19.1% saved)

prune19.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New1551156
Fresh000
Picked011
Done044
Total1556161
Error
0.0b
Counts
161 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(pow.f64 x 2)
0.4b
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
0.5b
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
30.7b
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
31.6b
(+.f64 -1 (exp.f64 (neg.f64 x)))
60.2b
(neg.f64 x)
Compiler

Compiled 48 to 38 computations (20.8% saved)

localize2.0ms (0%)

Compiler

Compiled 4 to 2 computations (50% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune10.0ms (0%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done055
Total066
Error
0.0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.8b
(pow.f64 x 2)
0.4b
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
0.5b
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
30.7b
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
31.6b
(+.f64 -1 (exp.f64 (neg.f64 x)))
60.2b
(neg.f64 x)
Compiler

Compiled 48 to 38 computations (20.8% saved)

regimes8.0ms (0%)

Counts
6 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(pow.f64 x 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
Outputs
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
Calls

2 calls:

4.0ms
x
2.0ms
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 54 to 38 computations (29.6% saved)

regimes10.0ms (0%)

Counts
5 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(pow.f64 x 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
Outputs
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
Calls

2 calls:

5.0ms
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
4.0ms
x
Results
ErrorSegmentsBranch
0.5b1x
0.5b1(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 39 to 26 computations (33.3% saved)

regimes7.0ms (0%)

Accuracy

Total -59.6b remaining (-7342.3%)

Threshold costs -59.6b (-7342.3%)

Counts
4 → 1
Calls
Call 1
Inputs
(neg.f64 x)
(pow.f64 x 2)
(+.f64 -1 (exp.f64 (neg.f64 x)))
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Outputs
(pow.f64 x 2)
Calls

2 calls:

4.0ms
x
2.0ms
(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Results
ErrorSegmentsBranch
0.8b1x
0.8b1(+.f64 (-.f64 (exp.f64 x) 2) (exp.f64 (neg.f64 x)))
Compiler

Compiled 30 to 19 computations (36.7% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01880
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(pow.f64 x 2)
(neg.f64 x)
Outputs
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 1/12 (pow.f64 x 4)) (*.f64 1/360 (pow.f64 x 6))))
(+.f64 (pow.f64 x 2) (*.f64 1/12 (pow.f64 x 4)))
(pow.f64 x 2)
(neg.f64 x)
Compiler

Compiled 33 to 26 computations (21.2% saved)

soundness190.0ms (0.7%)

Algorithm
egg-herbie
Rules
1568×rational.json-simplify-35
1160×rational.json-simplify-1
1114×rational.json-simplify-19
1110×rational.json-simplify-40
976×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01181207
12251207
25451207
313421207
424981207
531431207
633461207
735621207
839521207
952181207
1077941207
Stop Event
node limit
Compiler

Compiled 31 to 25 computations (19.4% saved)

end29.0ms (0.1%)

Compiler

Compiled 30 to 23 computations (23.3% saved)

Profiling

Loading profile data...