Details

Time bar (total: 31.0s)

analyze5.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%49.7%50.3%0%0%0%0
0%0%49.7%50.3%0%0%0%1
0%0%49.7%50.3%0%0%0%2
50%24.8%24.8%50.3%0%0%0%3
75%37.3%12.4%50.3%0%0%0%4
87.5%43.5%6.2%50.3%0%0%0%5
93.8%46.6%3.1%50.3%0%0%0%6
96.9%48.1%1.6%50.3%0%0%0%7
98.4%48.9%0.8%50.3%0%0%0%8
99.2%49.3%0.4%50.3%0%0%0%9
99.6%49.5%0.2%50.3%0%0%0%10
99.8%49.6%0.1%50.3%0%0%0%11
99.9%49.6%0%50.3%0%0%0%12
Compiler

Compiled 16 to 12 computations (25% saved)

sample18.0s (58%)

Results
13.5s4152×body2048valid
3.2s2100×body1024valid
743.0ms770×body256valid
422.0ms1029×body512valid
155.0ms205×body4096valid
Bogosity

preprocess4.6s (14.9%)

Algorithm
egg-herbie
Rules
21912×rational.json-simplify-41
3268×rational.json-simplify-1
1296×rational.json-simplify-35
646×trig.json-simplify-17
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11923
22823
34323
46823
512623
627023
768723
886823
987723
1088623
1189523
1290423
1391323
1492223
1593123
1694023
1794923
1895823
1996723
2097623
2198523
2299423
23100323
24101223
25102123
26103023
27103923
28104823
29105723
30106623
31107523
32108423
33109323
34110223
35111123
36112023
37112923
38113823
39114723
40115623
41116523
42117423
43308523
44309323
45310123
46310923
47311723
48312523
49313323
50314123
51314923
52315723
53316523
54317323
55318123
56318923
57319723
58320523
59415623
60416523
61417423
62418323
63419223
64420123
65421023
66421923
67422823
68423723
69424623
70425523
71426423
72427323
73428223
74429123
75430023
76430923
77431823
78432723
79433623
80434523
81435423
82436323
83437223
84438123
85439023
86439923
87440823
88441723
89442623
90443523
91444423
92445323
93446223
94447123
95448023
96448923
97449823
98450723
99451623
100452523
101453423
102454323
103455223
104456123
105457023
106457923
107458823
108459723
109460623
110461523
111462423
112463323
113464223
114465123
115466023
116466923
117467823
118468723
119469623
120470523
121471423
122472323
123473223
124474123
125475023
126475923
127476823
128477723
129478623
130479523
131480423
132481323
133482223
134483123
135484023
136484923
137485823
138486723
139487623
140488523
141489423
142490323
143491223
144492123
145493023
146493923
147494823
148495723
149496623
150497523
151498423
152499323
153500223
154501123
155502023
156502923
157503823
158504723
159505623
160506523
161507423
162508323
163509223
164510123
165511023
166511923
167512823
168513723
169514623
170515523
171516423
172517323
173518223
174519123
175520023
176520923
177521823
178522723
179523623
180524523
181525423
182526323
183527223
184528123
185529023
186529923
187530823
188531723
189532623
190533523
191534423
192535323
193536223
194537123
195538023
196538923
197539823
198540723
199541623
200542523
201543423
202544323
203545223
204546123
205547023
206547923
207548823
208549723
209550623
210551523
211552423
212553323
213554223
214555123
215556023
216556923
217557823
218558723
219559623
220560523
221561423
222562323
223563223
224564123
225565023
226565923
227566823
228567723
229568623
230569523
231570423
232571323
233572223
234573123
235574023
236574923
237575823
238576723
239577623
240578523
241579423
242580323
243581223
244582123
245583023
246583923
247584823
248585723
249586623
250587523
251588423
252589323
253590223
254591123
255592023
256592923
257593823
258594723
259595623
260596523
261597423
262598323
263599223
264600123
265601023
266601923
267602823
268603723
269604623
270605523
271606423
272607323
273608223
274609123
275610023
276610923
277611823
278612723
279613623
280614523
281615423
282616323
283617223
284618123
285619023
286619923
287620823
288621723
289622623
290623523
291624423
292625323
293626223
294627123
295628023
296628923
297629823
298630723
299631623
300632523
301633423
302634323
303635223
304636123
305637023
306637923
307638823
308639723
309640623
310641523
311642423
312643323
313644223
314645023
315645823
316646623
317647423
318648223
319649023
320649823
321650623
322651423
323652223
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Outputs
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 10 to 8 computations (20% saved)

simplify4.6s (15%)

Algorithm
egg-herbie
Rules
21912×rational.json-simplify-41
3268×rational.json-simplify-1
1296×rational.json-simplify-35
646×trig.json-simplify-17
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
11923
22823
34323
46823
512623
627023
768723
886823
987723
1088623
1189523
1290423
1391323
1492223
1593123
1694023
1794923
1895823
1996723
2097623
2198523
2299423
23100323
24101223
25102123
26103023
27103923
28104823
29105723
30106623
31107523
32108423
33109323
34110223
35111123
36112023
37112923
38113823
39114723
40115623
41116523
42117423
43308523
44309323
45310123
46310923
47311723
48312523
49313323
50314123
51314923
52315723
53316523
54317323
55318123
56318923
57319723
58320523
59415623
60416523
61417423
62418323
63419223
64420123
65421023
66421923
67422823
68423723
69424623
70425523
71426423
72427323
73428223
74429123
75430023
76430923
77431823
78432723
79433623
80434523
81435423
82436323
83437223
84438123
85439023
86439923
87440823
88441723
89442623
90443523
91444423
92445323
93446223
94447123
95448023
96448923
97449823
98450723
99451623
100452523
101453423
102454323
103455223
104456123
105457023
106457923
107458823
108459723
109460623
110461523
111462423
112463323
113464223
114465123
115466023
116466923
117467823
118468723
119469623
120470523
121471423
122472323
123473223
124474123
125475023
126475923
127476823
128477723
129478623
130479523
131480423
132481323
133482223
134483123
135484023
136484923
137485823
138486723
139487623
140488523
141489423
142490323
143491223
144492123
145493023
146493923
147494823
148495723
149496623
150497523
151498423
152499323
153500223
154501123
155502023
156502923
157503823
158504723
159505623
160506523
161507423
162508323
163509223
164510123
165511023
166511923
167512823
168513723
169514623
170515523
171516423
172517323
173518223
174519123
175520023
176520923
177521823
178522723
179523623
180524523
181525423
182526323
183527223
184528123
185529023
186529923
187530823
188531723
189532623
190533523
191534423
192535323
193536223
194537123
195538023
196538923
197539823
198540723
199541623
200542523
201543423
202544323
203545223
204546123
205547023
206547923
207548823
208549723
209550623
210551523
211552423
212553323
213554223
214555123
215556023
216556923
217557823
218558723
219559623
220560523
221561423
222562323
223563223
224564123
225565023
226565923
227566823
228567723
229568623
230569523
231570423
232571323
233572223
234573123
235574023
236574923
237575823
238576723
239577623
240578523
241579423
242580323
243581223
244582123
245583023
246583923
247584823
248585723
249586623
250587523
251588423
252589323
253590223
254591123
255592023
256592923
257593823
258594723
259595623
260596523
261597423
262598323
263599223
264600123
265601023
266601923
267602823
268603723
269604623
270605523
271606423
272607323
273608223
274609123
275610023
276610923
277611823
278612723
279613623
280614523
281615423
282616323
283617223
284618123
285619023
286619923
287620823
288621723
289622623
290623523
291624423
292625323
293626223
294627123
295628023
296628923
297629823
298630723
299631623
300632523
301633423
302634323
303635223
304636123
305637023
306637923
307638823
308639723
309640623
310641523
311642423
312643323
313644223
314645023
315645823
316646623
317647423
318648223
319649023
320649823
321650623
322651423
323652223
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Outputs
(-.f64 (/.f64 1 x) (/.f64 1 (tan.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
59.8b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.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 1 (tan.f64 x))
2.6b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 20 to 12 computations (40% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
1.0ms
x
@-inf
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
1.0ms
x
@0
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
0.0ms
x
@inf
(/.f64 1 (tan.f64 x))
0.0ms
x
@-inf
(/.f64 1 (tan.f64 x))

rewrite83.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1616×rational.json-1
1616×rational.json-2
1616×rational.json-4
1616×rational.json-3
1052×rational.json-simplify-61
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0934
17234
218134
338734
483634
5242434
6664634
Stop Event
node limit
Counts
2 → 57
Calls
Call 1
Inputs
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(/.f64 1 (tan.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (/.f64 1 (tan.f64 x))) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (/.f64 1/2 x) (/.f64 1/2 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (/.f64 2 x) (/.f64 2 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (/.f64 4 x) (/.f64 4 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 (tan.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 (tan.f64 x)) (/.f64 1/2 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (tan.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (tan.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (tan.f64 x) 2) (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (tan.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 4 (tan.f64 x)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 2 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (tan.f64 x) 1/2) (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (/.f64 4 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (tan.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (tan.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (tan.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (tan.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 -1 (tan.f64 x)))))))

simplify106.0ms (0.3%)

Algorithm
egg-herbie
Rules
1582×rational.json-simplify-35
1194×rational.json-simplify-2
758×rational.json-simplify-1
620×rational.json-simplify-51
552×rational.json-simplify-46
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01431979
12811835
26041835
317011835
435081833
563931833
Stop Event
node limit
Counts
81 → 88
Calls
Call 1
Inputs
(*.f64 1/3 x)
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/4725 (pow.f64 x 7)))))
(*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x)))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x)))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(/.f64 1 x)
(+.f64 (*.f64 -1/3 x) (/.f64 1 x))
(+.f64 (*.f64 -1/45 (pow.f64 x 3)) (+.f64 (*.f64 -1/3 x) (/.f64 1 x)))
(+.f64 (*.f64 -2/945 (pow.f64 x 5)) (+.f64 (*.f64 -1/45 (pow.f64 x 3)) (+.f64 (*.f64 -1/3 x) (/.f64 1 x))))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 0)
(+.f64 0 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))
(+.f64 -1 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)))
(+.f64 (neg.f64 (/.f64 1 (tan.f64 x))) (/.f64 1 x))
(+.f64 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)) -1)
(+.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))
(*.f64 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))
(*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))
(*.f64 2 (-.f64 (/.f64 1/2 x) (/.f64 1/2 (tan.f64 x))))
(*.f64 4 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 1/2)
(*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(*.f64 -1 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 1/4)
(*.f64 1/2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2))
(*.f64 1/2 (-.f64 (/.f64 2 x) (/.f64 2 (tan.f64 x))))
(*.f64 1/4 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(*.f64 1/4 (-.f64 (/.f64 4 x) (/.f64 4 (tan.f64 x))))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) 2)
(*.f64 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 2)
(/.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8) 8)
(/.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) 16)
(/.f64 (*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) 4) -4)
(/.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))))) 4)
(pow.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(neg.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))
(+.f64 (/.f64 1 (tan.f64 x)) 0)
(+.f64 0 (/.f64 1 (tan.f64 x)))
(+.f64 (/.f64 1/2 (tan.f64 x)) (/.f64 1/2 (tan.f64 x)))
(-.f64 (/.f64 1 (tan.f64 x)) 0)
(*.f64 1 (/.f64 1 (tan.f64 x)))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 1 (tan.f64 x)) 1)
(*.f64 2 (/.f64 1/2 (tan.f64 x)))
(*.f64 (*.f64 (tan.f64 x) 2) (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 2 (tan.f64 x)) 1/2)
(*.f64 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))
(*.f64 (/.f64 4 (tan.f64 x)) 1/4)
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 (*.f64 (tan.f64 x) 1/2) (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 1/4 (/.f64 4 (tan.f64 x)))
(*.f64 (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (tan.f64 x))
(*.f64 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 1/2))
(*.f64 (/.f64 1/2 (tan.f64 x)) 2)
(*.f64 (/.f64 (/.f64 1 (tan.f64 x)) 4) 4)
(*.f64 (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 2))
(pow.f64 (/.f64 1 (tan.f64 x)) 1)
(neg.f64 (/.f64 -1 (tan.f64 x)))
Outputs
(*.f64 1/3 x)
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 1/3 x) (*.f64 2/945 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/4725 (pow.f64 x 7)))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 1/4725 (pow.f64 x 7)) (*.f64 2/945 (pow.f64 x 5)))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/4725 (pow.f64 x 7)))))
(+.f64 (*.f64 1/4725 (pow.f64 x 7)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 1/3 x) (*.f64 2/945 (pow.f64 x 5)))))
(+.f64 (+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3))) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/4725 (pow.f64 x 7))))
(*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x)))
(neg.f64 (/.f64 (cos.f64 x) (sin.f64 x)))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x)))
(neg.f64 (/.f64 (cos.f64 x) (sin.f64 x)))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (*.f64 -1 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(+.f64 (neg.f64 (/.f64 (cos.f64 x) (sin.f64 x))) (/.f64 1 x))
(/.f64 1 x)
(+.f64 (*.f64 -1/3 x) (/.f64 1 x))
(+.f64 (/.f64 1 x) (*.f64 x -1/3))
(+.f64 (*.f64 -1/45 (pow.f64 x 3)) (+.f64 (*.f64 -1/3 x) (/.f64 1 x)))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (*.f64 (pow.f64 x 3) -1/45))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 x -1/3) (*.f64 (pow.f64 x 3) -1/45)))
(+.f64 (*.f64 -2/945 (pow.f64 x 5)) (+.f64 (*.f64 -1/45 (pow.f64 x 3)) (+.f64 (*.f64 -1/3 x) (/.f64 1 x))))
(+.f64 (*.f64 (pow.f64 x 3) -1/45) (+.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (*.f64 (pow.f64 x 5) -2/945)))
(+.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (+.f64 (*.f64 (pow.f64 x 5) -2/945) (*.f64 (pow.f64 x 3) -1/45)))
(+.f64 (/.f64 1 x) (+.f64 (+.f64 (*.f64 x -1/3) (*.f64 (pow.f64 x 3) -1/45)) (*.f64 (pow.f64 x 5) -2/945)))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 (pow.f64 x 5) -2/945) (+.f64 (*.f64 x -1/3) (*.f64 (pow.f64 x 3) -1/45))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 (pow.f64 x 3) -1/45) (+.f64 (*.f64 x -1/3) (*.f64 (pow.f64 x 5) -2/945))))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(/.f64 (cos.f64 x) (sin.f64 x))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 0)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 0 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 -1 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 (neg.f64 (/.f64 1 (tan.f64 x))) (/.f64 1 x))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 (-.f64 (/.f64 1 x) (+.f64 (/.f64 1 (tan.f64 x)) -1)) -1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 2 (-.f64 (/.f64 1/2 x) (/.f64 1/2 (tan.f64 x))))
(*.f64 4 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 1/2)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 -1 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 1/4)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 1/2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 1/2 (-.f64 (/.f64 2 x) (/.f64 2 (tan.f64 x))))
(*.f64 1/4 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 1/4 (-.f64 (/.f64 4 x) (/.f64 4 (tan.f64 x))))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) 2)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(*.f64 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2) 2)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4) 4)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8) 8)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))) -2)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) 16)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) 4) -4)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) 2)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8)) (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 8))) 32)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(/.f64 (+.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))))) 4)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(pow.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(neg.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))
(+.f64 (/.f64 1 x) (neg.f64 (/.f64 1 (tan.f64 x))))
(+.f64 (/.f64 1 x) (/.f64 -1 (tan.f64 x)))
(+.f64 (/.f64 1 (tan.f64 x)) 0)
(/.f64 1 (tan.f64 x))
(+.f64 0 (/.f64 1 (tan.f64 x)))
(/.f64 1 (tan.f64 x))
(+.f64 (/.f64 1/2 (tan.f64 x)) (/.f64 1/2 (tan.f64 x)))
(/.f64 (/.f64 (tan.f64 x) (tan.f64 x)) (tan.f64 x))
(/.f64 (tan.f64 x) (*.f64 (tan.f64 x) (tan.f64 x)))
(-.f64 (/.f64 1 (tan.f64 x)) 0)
(/.f64 1 (tan.f64 x))
(*.f64 1 (/.f64 1 (tan.f64 x)))
(/.f64 1 (tan.f64 x))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 1 (tan.f64 x)) 1)
(/.f64 1 (tan.f64 x))
(*.f64 2 (/.f64 1/2 (tan.f64 x)))
(*.f64 (*.f64 (tan.f64 x) 2) (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 2 (tan.f64 x)) 1/2)
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))
(/.f64 1 (tan.f64 x))
(*.f64 (/.f64 4 (tan.f64 x)) 1/4)
(*.f64 1/4 (/.f64 4 (tan.f64 x)))
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 (*.f64 (tan.f64 x) 1/2) (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 1/4 (/.f64 4 (tan.f64 x)))
(*.f64 (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))) (tan.f64 x))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 1/2))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.f64 (/.f64 1/2 (tan.f64 x)) 2)
(*.f64 2 (/.f64 1/2 (tan.f64 x)))
(*.f64 (/.f64 (/.f64 1 (tan.f64 x)) 4) 4)
(/.f64 1 (tan.f64 x))
(*.f64 (/.f64 1/2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 2))
(*.f64 (tan.f64 x) (/.f64 1 (*.f64 (tan.f64 x) (tan.f64 x))))
(pow.f64 (/.f64 1 (tan.f64 x)) 1)
(/.f64 1 (tan.f64 x))
(neg.f64 (/.f64 -1 (tan.f64 x)))
(/.f64 1 (tan.f64 x))

eval21.0ms (0.1%)

Compiler

Compiled 1149 to 810 computations (29.5% saved)

prune11.0ms (0%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New84488
Fresh000
Picked011
Done000
Total84589
Error
0.4b
Counts
89 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
59.9b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.4b
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.8b
(*.f64 1/3 x)
Compiler

Compiled 51 to 40 computations (21.6% saved)

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 1/3 x)
Compiler

Compiled 6 to 4 computations (33.3% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 1/3 x)
0.0ms
x
@inf
(*.f64 1/3 x)
0.0ms
x
@0
(*.f64 1/3 x)

rewrite262.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
2326×rational.json-simplify-35
2086×rational.json-simplify-2
1548×rational.json-simplify-1
1360×rational.json-1
1110×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1337
2787
31587
42787
55827
613817
726487
838437
945367
1056517
1164067
1264067
1367887
1473787
1579887
Stop Event
node limit
Counts
1 → 16
Calls
Call 1
Inputs
(*.f64 1/3 x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/6) (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/3 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/3 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/3 x) 1)))))

simplify491.0ms (1.6%)

Algorithm
egg-herbie
Rules
3428×rational.json-simplify-51
2902×rational.json-simplify-2
2046×rational.json-simplify-35
1162×rational.json-simplify-1
748×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048112
1122112
2214112
3537112
41353112
52749112
63574112
73750112
83848112
93920112
103986112
114049112
124109112
134169112
144228112
154287112
164346112
174405112
184464112
194523112
207025112
217106112
227164112
237169112
247169112
Stop Event
node limit
Counts
16 → 17
Calls
Call 1
Inputs
(+.f64 (*.f64 1/3 x) 0)
(+.f64 0 (*.f64 1/3 x))
(+.f64 (*.f64 x 1/6) (*.f64 x 1/6))
(-.f64 (*.f64 1/3 x) 0)
(/.f64 (*.f64 1/3 x) 1)
(/.f64 (*.f64 x 2/3) 2)
(/.f64 (*.f64 x 4/3) 4)
(/.f64 (*.f64 x 8/3) 8)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))))) 1024)
(pow.f64 (*.f64 1/3 x) 1)
Outputs
(+.f64 (*.f64 1/3 x) 0)
(*.f64 1/3 x)
(+.f64 0 (*.f64 1/3 x))
(*.f64 1/3 x)
(+.f64 (*.f64 x 1/6) (*.f64 x 1/6))
(*.f64 1/3 x)
(-.f64 (*.f64 1/3 x) 0)
(*.f64 1/3 x)
(/.f64 (*.f64 1/3 x) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 2/3) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x 4/3) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x 8/3) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(*.f64 1/3 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))))) 1024)
(*.f64 1/3 x)
(pow.f64 (*.f64 1/3 x) 1)
(*.f64 1/3 x)

localize10.0ms (0%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.1b
(*.f64 1/45 (pow.f64 x 3))
0.4b
(*.f64 1/3 x)
Compiler

Compiled 25 to 19 computations (24% saved)

series2.0ms (0%)

Counts
2 → 3
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 1/45 (pow.f64 x 3))
0.0ms
x
@inf
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.0ms
x
@inf
(*.f64 1/45 (pow.f64 x 3))
0.0ms
x
@-inf
(*.f64 1/45 (pow.f64 x 3))
0.0ms
x
@-inf
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))

rewrite178.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
2418×rational.json-simplify-2
1504×rational.json-simplify-35
1458×rational.json-simplify-1
1186×exponential.json-3
1186×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
16538
212538
324338
445038
599838
6264738
7456838
8519738
9632238
10705938
11705938
Stop Event
node limit
Counts
2 → 37
Calls
Call 1
Inputs
(*.f64 1/45 (pow.f64 x 3))
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/45 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/45 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 (pow.f64 x 3) 1/90))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/45 (pow.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/45 (pow.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 2/45) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 4/45) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 3) 8/45) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/45 (pow.f64 x 3)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)))))

simplify217.0ms (0.7%)

Algorithm
egg-herbie
Rules
3870×rational.json-simplify-41
2678×rational.json-simplify-43
2202×rational.json-simplify-35
1134×rational.json-simplify-2
574×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
088802
1197802
2364802
3807802
42036802
52859802
63149802
73318802
83450802
93561802
103666802
113768802
123869802
133970802
144071802
154071802
Stop Event
node limit
Counts
40 → 41
Calls
Call 1
Inputs
(*.f64 1/3 x)
(*.f64 1/45 (pow.f64 x 3))
(*.f64 1/45 (pow.f64 x 3))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) 0)
(+.f64 0 (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 (pow.f64 x 3) 1/90))
(-.f64 (*.f64 1/45 (pow.f64 x 3)) 0)
(/.f64 (*.f64 1/45 (pow.f64 x 3)) 1)
(/.f64 (*.f64 (pow.f64 x 3) 2/45) 2)
(/.f64 (*.f64 (pow.f64 x 3) 4/45) 4)
(/.f64 (*.f64 (pow.f64 x 3) 8/45) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))))) 256)
(pow.f64 (*.f64 1/45 (pow.f64 x 3)) 1)
(-.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 0)
(*.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
(*.f64 1 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)))
(*.f64 2 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)))
(*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8))
(*.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 1/8)
(*.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)))
(*.f64 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)) 2)
(*.f64 1/4 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))))
(*.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))
(/.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
(/.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 2)
(/.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))))) 256)
(pow.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
Outputs
(*.f64 1/3 x)
(*.f64 1/45 (pow.f64 x 3))
(*.f64 1/45 (pow.f64 x 3))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) 0)
(*.f64 1/45 (pow.f64 x 3))
(+.f64 0 (*.f64 1/45 (pow.f64 x 3)))
(*.f64 1/45 (pow.f64 x 3))
(+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 (pow.f64 x 3) 1/90))
(*.f64 1/45 (pow.f64 x 3))
(-.f64 (*.f64 1/45 (pow.f64 x 3)) 0)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 1/45 (pow.f64 x 3)) 1)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 2/45) 2)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 4/45) 4)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 (pow.f64 x 3) 8/45) 8)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)) 16)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) 32)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))))) 128)
(*.f64 1/45 (pow.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))))) 256)
(*.f64 1/45 (pow.f64 x 3))
(pow.f64 (*.f64 1/45 (pow.f64 x 3)) 1)
(*.f64 1/45 (pow.f64 x 3))
(-.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 0)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 1 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 2 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 x 1/6)))
(*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/2)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 1/4)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 1/8)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90)) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 x 1/6)))
(*.f64 1/4 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 1/8) 4)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 2)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45))) 4)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4) 8)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)) 16)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))) 32)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))) 64)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4))))) 128)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 2/3) (*.f64 (pow.f64 x 3) 2/45)) 4)))))) 256)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(pow.f64 (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 x 1/3)) 1)
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.1b
(*.f64 2/945 (pow.f64 x 5))
0.1b
(*.f64 1/45 (pow.f64 x 3))
0.4b
(*.f64 1/3 x)
Compiler

Compiled 52 to 41 computations (21.2% saved)

series2.0ms (0%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 2/945 (pow.f64 x 5))
0.0ms
x
@-inf
(*.f64 2/945 (pow.f64 x 5))
0.0ms
x
@inf
(*.f64 2/945 (pow.f64 x 5))
0.0ms
x
@inf
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.0ms
x
@-inf
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))

rewrite178.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
2760×rational.json-simplify-2
1694×rational.json-simplify-35
1474×exponential.json-3
1474×rational.json-1
1474×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01556
19956
218556
336456
474256
5185356
6388256
7545556
8680056
9784356
10784356
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2/945 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2/945 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 5) 1/945))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2/945 (pow.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2/945 (pow.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 4/945) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 5) 8/945) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2/945 (pow.f64 x 5)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)))))

simplify386.0ms (1.2%)

Algorithm
egg-herbie
Rules
3768×rational.json-simplify-51
2514×rational.json-simplify-35
1344×rational.json-simplify-2
964×rational.json-simplify-1
596×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01041749
12171749
24841749
315581749
434221749
542951749
645021749
745941749
846841749
947721749
1048591749
1149771749
1250611749
1351451749
1451451749
1575141749
1678601749
1779491749
Stop Event
node limit
Counts
51 → 53
Calls
Call 1
Inputs
(*.f64 1/3 x)
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) 0)
(+.f64 0 (*.f64 2/945 (pow.f64 x 5)))
(+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 5) 1/945))
(-.f64 (*.f64 2/945 (pow.f64 x 5)) 0)
(/.f64 (*.f64 2/945 (pow.f64 x 5)) 1)
(/.f64 (*.f64 (pow.f64 x 5) 4/945) 2)
(/.f64 (*.f64 (pow.f64 x 5) 8/945) 4)
(/.f64 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))))) 128)
(pow.f64 (*.f64 2/945 (pow.f64 x 5)) 1)
(-.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 0)
(*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
(*.f64 1 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))))
(*.f64 2 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))))
(*.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2))
(*.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)))
(*.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))))
(*.f64 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)
(*.f64 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)) 1/2)
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)) 1/2)
(*.f64 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))) 1/2)
(/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))))) 128)
(pow.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
Outputs
(*.f64 1/3 x)
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/45 (pow.f64 x 3))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) 0)
(*.f64 2/945 (pow.f64 x 5))
(+.f64 0 (*.f64 2/945 (pow.f64 x 5)))
(*.f64 2/945 (pow.f64 x 5))
(+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 5) 1/945))
(*.f64 2/945 (pow.f64 x 5))
(-.f64 (*.f64 2/945 (pow.f64 x 5)) 0)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 2/945 (pow.f64 x 5)) 1)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 4/945) 2)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 (pow.f64 x 5) 8/945) 4)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8) 8)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)) 16)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))) 32)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8)))) 64)
(*.f64 2/945 (pow.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 2/945 (pow.f64 x 5)) 8))))) 128)
(*.f64 2/945 (pow.f64 x 5))
(pow.f64 (*.f64 2/945 (pow.f64 x 5)) 1)
(*.f64 2/945 (pow.f64 x 5))
(-.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 0)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 1 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 2 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 x 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 5) 1/945))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 x 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90))))
(*.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 1/2)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 4 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 1/4)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x))) (*.f64 (pow.f64 x 3) 2/45)))
(*.f64 1/2 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))))
(*.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))
(*.f64 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) 2)
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (+.f64 (*.f64 (pow.f64 x 3) 1/90) (*.f64 x 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 5) 1/945))))
(*.f64 2 (+.f64 (*.f64 x 1/6) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 3) 1/90) (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 x 1/6))))
(*.f64 2 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (+.f64 (*.f64 x 1/6) (*.f64 (pow.f64 x 3) 1/90))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4))
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 (/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(*.f64 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)) 1/2)
(*.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))
(*.f64 (+.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 x 1/3)) 2) (*.f64 (pow.f64 x 3) 2/45)) 1/2)
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x))) (*.f64 (pow.f64 x 3) 2/45)))
(*.f64 (+.f64 (*.f64 x 2/3) (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90)))) 1/2)
(*.f64 1/2 (+.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 x 5) 1/945) (*.f64 (pow.f64 x 3) 1/90))) (*.f64 x 2/3)))
(/.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 2) 2)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 4) 4)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8) 8)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)) 16)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))) 32)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8)))) 64)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 8))))) 128)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))
(pow.f64 (+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 x 1/3) (*.f64 1/45 (pow.f64 x 3)))) 1)
(+.f64 (*.f64 2/945 (pow.f64 x 5)) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/3 x)))
(+.f64 (*.f64 1/45 (pow.f64 x 3)) (+.f64 (*.f64 2/945 (pow.f64 x 5)) (*.f64 1/3 x)))

localize11.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(*.f64 x -1/3)
2.6b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
Compiler

Compiled 28 to 20 computations (28.6% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.0ms
x
@inf
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.0ms
x
@-inf
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.0ms
x
@-inf
(*.f64 x -1/3)
0.0ms
x
@inf
(*.f64 x -1/3)

rewrite80.0ms (0.3%)

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

Useful iterations: 4 (0.0ms)

IterNodesCost
0938
17138
216138
333018
470814
5185314
6502414
Stop Event
node limit
Counts
2 → 92
Calls
Call 1
Inputs
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(*.f64 x -1/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 x 1/3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (*.f64 x 1/3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 x 1/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 x -1/6)) (neg.f64 (*.f64 x -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1/2 x) (-.f64 (/.f64 1/2 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (+.f64 (/.f64 1 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (/.f64 1 x)) (-.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1 x) -1) (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (-.f64 1 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/3 (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -1/3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (neg.f64 (*.f64 x -1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (/.f64 1/2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x 1/3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -1 (*.f64 x -2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x 1/3) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 -1 (*.f64 x -2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (*.f64 x -2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -2) -1/6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/6 (*.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -1/6) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x -1/6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x 1/3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (/.f64 4 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 x -2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x 1/3) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -1/3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (*.f64 x -2/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2/3) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 1/3) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4/3) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -4/3)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 1/3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x -2/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 x -4/3)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 x -2/3))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 x -4/3))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x -1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (-.f64 (/.f64 -1 x) (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 2 x) (-.f64 (*.f64 x -1/3) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 x -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (neg.f64 (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (-.f64 (/.f64 2 x) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 -1 x) (-.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -1/6) (*.f64 x -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (-.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 x -1/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (/.f64 2 x)) (+.f64 (*.f64 x -1/3) (/.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (+.f64 1 (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x -1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (*.f64 x -2/3)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -4/3)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x -1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x 1/3))))))

simplify81.0ms (0.3%)

Algorithm
egg-herbie
Rules
1402×rational.json-simplify-51
1184×rational.json-simplify-2
1064×rational.json-simplify-35
974×rational.json-simplify-46
972×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01701052
13771052
210711052
326261052
457721052
Stop Event
node limit
Counts
116 → 99
Calls
Call 1
Inputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(*.f64 -1/3 x)
(+.f64 1 (+.f64 (*.f64 x 1/3) -1))
(+.f64 (/.f64 1 x) (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(+.f64 (*.f64 x 1/3) 0)
(+.f64 0 (*.f64 x 1/3))
(+.f64 -1 (+.f64 1 (*.f64 x 1/3)))
(+.f64 -1 (-.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 -1 x)))
(+.f64 -2 (+.f64 (*.f64 x 1/3) 2))
(+.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 1 x))
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(+.f64 (neg.f64 (*.f64 x -1/6)) (neg.f64 (*.f64 x -1/6)))
(+.f64 (/.f64 1/2 x) (-.f64 (/.f64 1/2 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(+.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (+.f64 (/.f64 1 x) -1))
(+.f64 (+.f64 1 (/.f64 1 x)) (-.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) 1))
(+.f64 (+.f64 (/.f64 1 x) -1) (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(+.f64 (+.f64 (*.f64 x 1/3) 2) -2)
(+.f64 (-.f64 -1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (-.f64 1 (/.f64 -1 x)))
(*.f64 1 (*.f64 x 1/3))
(*.f64 x 1/3)
(*.f64 -1/3 (neg.f64 x))
(*.f64 (*.f64 x -1/3) -1)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 2 (neg.f64 (*.f64 x -1/6)))
(*.f64 2 (-.f64 (/.f64 1/2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2)))
(*.f64 4 (/.f64 (*.f64 x 1/3) 4))
(*.f64 (*.f64 -1 (*.f64 x -2/3)) 1/2)
(*.f64 -1 (*.f64 x -1/3))
(*.f64 (neg.f64 x) -1/3)
(*.f64 -2 (*.f64 x -1/6))
(*.f64 (*.f64 (*.f64 x 1/3) 4) 1/4)
(*.f64 1/2 (*.f64 -1 (*.f64 x -2/3)))
(*.f64 1/2 (neg.f64 (*.f64 x -2/3)))
(*.f64 (*.f64 x -2) -1/6)
(*.f64 -1/6 (*.f64 x -2))
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 (*.f64 x -1/6) -2)
(*.f64 (neg.f64 (*.f64 x -1/6)) 2)
(*.f64 1/4 (*.f64 (*.f64 x 1/3) 4))
(*.f64 1/4 (-.f64 (/.f64 4 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 4)))
(*.f64 (neg.f64 (*.f64 x -2/3)) 1/2)
(*.f64 1/3 x)
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 (/.f64 (*.f64 x 1/3) 4) 4)
(/.f64 (*.f64 x -1/3) -1)
(/.f64 (*.f64 x 1/3) 1)
(/.f64 (*.f64 -1 (*.f64 x -2/3)) 2)
(/.f64 (*.f64 x -2/3) -2)
(/.f64 (*.f64 (*.f64 x 1/3) 4) 4)
(/.f64 (*.f64 x -4/3) -4)
(/.f64 (*.f64 2 (*.f64 x -4/3)) -8)
(/.f64 (*.f64 (*.f64 x 1/3) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) -16)
(/.f64 (neg.f64 (*.f64 x -2/3)) 2)
(/.f64 (neg.f64 (*.f64 x -4/3)) 4)
(/.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 x -2/3))) 4)
(/.f64 (*.f64 2 (neg.f64 (*.f64 x -4/3))) 8)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)
(pow.f64 (*.f64 x 1/3) 1)
(neg.f64 (*.f64 x -1/3))
(+.f64 (/.f64 1 x) (-.f64 (/.f64 -1 x) (*.f64 x 1/3)))
(+.f64 (*.f64 x -1/3) 0)
(+.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 -1 x))
(+.f64 0 (*.f64 x -1/3))
(+.f64 (/.f64 2 x) (-.f64 (*.f64 x -1/3) (/.f64 2 x)))
(+.f64 -1 (+.f64 1 (*.f64 x -1/3)))
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (neg.f64 (/.f64 2 x)))
(+.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (/.f64 1 x))
(+.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (-.f64 (/.f64 2 x) (/.f64 1 x)))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(+.f64 (/.f64 -1 x) (-.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 1 x)))
(+.f64 (*.f64 x -1/6) (*.f64 x -1/6))
(+.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (-.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (/.f64 1 x)))
(+.f64 (+.f64 1 (*.f64 x -1/3)) -1)
(+.f64 (-.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 2 x))
(+.f64 (neg.f64 (/.f64 2 x)) (+.f64 (*.f64 x -1/3) (/.f64 2 x)))
(-.f64 1 (+.f64 1 (*.f64 x 1/3)))
(-.f64 (*.f64 x -1/3) 0)
(-.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 1 x))
(-.f64 0 (*.f64 x 1/3))
(-.f64 (+.f64 1 (*.f64 x -1/3)) 1)
(/.f64 (*.f64 x -1/3) 1)
(/.f64 (*.f64 x 1/3) -1)
(/.f64 (*.f64 -1 (*.f64 x -2/3)) -2)
(/.f64 (*.f64 x -2/3) 2)
(/.f64 (*.f64 x -4/3) 4)
(/.f64 (*.f64 2 (*.f64 x -4/3)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)
(pow.f64 (*.f64 x -1/3) 1)
(neg.f64 (*.f64 x 1/3))
Outputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(*.f64 -1/3 x)
(*.f64 x -1/3)
(+.f64 1 (+.f64 (*.f64 x 1/3) -1))
(*.f64 1/3 x)
(+.f64 (/.f64 1 x) (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(*.f64 1/3 x)
(+.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(+.f64 0 (*.f64 x 1/3))
(*.f64 1/3 x)
(+.f64 -1 (+.f64 1 (*.f64 x 1/3)))
(*.f64 1/3 x)
(+.f64 -1 (-.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 -1 x)))
(*.f64 1/3 x)
(+.f64 -2 (+.f64 (*.f64 x 1/3) 2))
(*.f64 1/3 x)
(+.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (/.f64 1 x))
(*.f64 1/3 x)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(*.f64 1/3 x)
(+.f64 (neg.f64 (*.f64 x -1/6)) (neg.f64 (*.f64 x -1/6)))
(*.f64 1/3 x)
(+.f64 (/.f64 1/2 x) (-.f64 (/.f64 1/2 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(+.f64 (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (+.f64 (/.f64 1 x) -1))
(*.f64 1/3 x)
(+.f64 (+.f64 1 (/.f64 1 x)) (-.f64 (neg.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) 1))
(*.f64 1/3 x)
(+.f64 (+.f64 (/.f64 1 x) -1) (-.f64 1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))))
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) 2) -2)
(*.f64 1/3 x)
(+.f64 (-.f64 -1 (+.f64 (/.f64 1 x) (*.f64 x -1/3))) (-.f64 1 (/.f64 -1 x)))
(*.f64 1/3 x)
(*.f64 1 (*.f64 x 1/3))
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 -1/3 (neg.f64 x))
(*.f64 1/3 x)
(*.f64 (*.f64 x -1/3) -1)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(*.f64 2 (neg.f64 (*.f64 x -1/6)))
(*.f64 1/3 x)
(*.f64 2 (-.f64 (/.f64 1/2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2)))
(*.f64 4 (/.f64 (*.f64 x 1/3) 4))
(*.f64 1/3 x)
(*.f64 (*.f64 -1 (*.f64 x -2/3)) 1/2)
(*.f64 1/3 x)
(*.f64 -1 (*.f64 x -1/3))
(*.f64 1/3 x)
(*.f64 (neg.f64 x) -1/3)
(*.f64 1/3 x)
(*.f64 -2 (*.f64 x -1/6))
(*.f64 1/3 x)
(*.f64 (*.f64 (*.f64 x 1/3) 4) 1/4)
(*.f64 1/3 x)
(*.f64 1/2 (*.f64 -1 (*.f64 x -2/3)))
(*.f64 1/3 x)
(*.f64 1/2 (neg.f64 (*.f64 x -2/3)))
(*.f64 1/3 x)
(*.f64 (*.f64 x -2) -1/6)
(*.f64 1/3 x)
(*.f64 -1/6 (*.f64 x -2))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/3 x)
(*.f64 (*.f64 x -1/6) -2)
(*.f64 1/3 x)
(*.f64 (neg.f64 (*.f64 x -1/6)) 2)
(*.f64 1/3 x)
(*.f64 1/4 (*.f64 (*.f64 x 1/3) 4))
(*.f64 1/3 x)
(*.f64 1/4 (-.f64 (/.f64 4 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 4)))
(*.f64 (neg.f64 (*.f64 x -2/3)) 1/2)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 1/3 x)
(*.f64 (/.f64 (*.f64 x 1/3) 4) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x -1/3) -1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 -1 (*.f64 x -2/3)) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x -2/3) -2)
(*.f64 1/3 x)
(/.f64 (*.f64 (*.f64 x 1/3) 4) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x -4/3) -4)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x -4/3)) -8)
(*.f64 1/3 x)
(/.f64 (*.f64 (*.f64 x 1/3) 8) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) -16)
(*.f64 1/3 x)
(/.f64 (neg.f64 (*.f64 x -2/3)) 2)
(*.f64 1/3 x)
(/.f64 (neg.f64 (*.f64 x -4/3)) 4)
(*.f64 1/3 x)
(/.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (neg.f64 (*.f64 x -2/3))) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (neg.f64 (*.f64 x -4/3))) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)
(*.f64 1/3 x)
(pow.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(neg.f64 (*.f64 x -1/3))
(*.f64 1/3 x)
(+.f64 (/.f64 1 x) (-.f64 (/.f64 -1 x) (*.f64 x 1/3)))
(*.f64 x -1/3)
(+.f64 (*.f64 x -1/3) 0)
(*.f64 x -1/3)
(+.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 -1 x))
(*.f64 x -1/3)
(+.f64 0 (*.f64 x -1/3))
(*.f64 x -1/3)
(+.f64 (/.f64 2 x) (-.f64 (*.f64 x -1/3) (/.f64 2 x)))
(*.f64 x -1/3)
(+.f64 -1 (+.f64 1 (*.f64 x -1/3)))
(*.f64 x -1/3)
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (neg.f64 (/.f64 2 x)))
(*.f64 x -1/3)
(+.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (/.f64 1 x))
(*.f64 x -1/3)
(+.f64 (-.f64 (/.f64 -1 x) (*.f64 x 1/3)) (-.f64 (/.f64 2 x) (/.f64 1 x)))
(+.f64 (-.f64 (/.f64 -1 x) (*.f64 1/3 x)) (-.f64 (/.f64 2 x) (/.f64 1 x)))
(+.f64 (-.f64 (/.f64 2 x) (/.f64 1 x)) (+.f64 (*.f64 x -1/3) (/.f64 -1 x)))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(*.f64 x -1/3)
(+.f64 (/.f64 -1 x) (-.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 1 x)))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 2 x) (-.f64 (*.f64 x -1/3) (/.f64 1 x))))
(+.f64 (/.f64 -1 x) (+.f64 (*.f64 x -1/3) (-.f64 (/.f64 2 x) (/.f64 1 x))))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 -1 x) (+.f64 (*.f64 x -1/3) (/.f64 2 x))))
(+.f64 (*.f64 x -1/6) (*.f64 x -1/6))
(*.f64 x -1/3)
(+.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (-.f64 (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 1/2) (/.f64 1 x)))
(+.f64 (+.f64 1 (*.f64 x -1/3)) -1)
(*.f64 x -1/3)
(+.f64 (-.f64 (*.f64 x -1/3) (/.f64 2 x)) (/.f64 2 x))
(*.f64 x -1/3)
(+.f64 (neg.f64 (/.f64 2 x)) (+.f64 (*.f64 x -1/3) (/.f64 2 x)))
(*.f64 x -1/3)
(-.f64 1 (+.f64 1 (*.f64 x 1/3)))
(*.f64 x -1/3)
(-.f64 (*.f64 x -1/3) 0)
(*.f64 x -1/3)
(-.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) (/.f64 1 x))
(*.f64 x -1/3)
(-.f64 0 (*.f64 x 1/3))
(*.f64 x -1/3)
(-.f64 (+.f64 1 (*.f64 x -1/3)) 1)
(*.f64 x -1/3)
(/.f64 (*.f64 x -1/3) 1)
(*.f64 x -1/3)
(/.f64 (*.f64 x 1/3) -1)
(*.f64 x -1/3)
(/.f64 (*.f64 -1 (*.f64 x -2/3)) -2)
(*.f64 x -1/3)
(/.f64 (*.f64 x -2/3) 2)
(*.f64 x -1/3)
(/.f64 (*.f64 x -4/3) 4)
(*.f64 x -1/3)
(/.f64 (*.f64 2 (*.f64 x -4/3)) 8)
(*.f64 x -1/3)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) 16)
(*.f64 x -1/3)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)
(*.f64 x -1/3)
(pow.f64 (*.f64 x -1/3) 1)
(*.f64 x -1/3)
(neg.f64 (*.f64 x 1/3))
(*.f64 x -1/3)

eval74.0ms (0.2%)

Compiler

Compiled 3622 to 2996 computations (17.3% saved)

prune32.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New2571258
Fresh000
Picked011
Done044
Total2576263
Error
0.4b
Counts
263 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
59.9b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
59.1b
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.4b
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.8b
(*.f64 1/3 x)
Compiler

Compiled 59 to 47 computations (20.3% saved)

localize7.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(*.f64 x 1/3)
5.6b
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
Compiler

Compiled 20 to 16 computations (20% saved)

series0.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.0ms
x
@-inf
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.0ms
x
@inf
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.0ms
x
@0
(*.f64 x 1/3)
0.0ms
x
@inf
(*.f64 x 1/3)

rewrite268.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
2248×rational.json-simplify-35
1924×rational.json-simplify-2
1542×rational.json-simplify-1
1292×rational.json-1
1010×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
17214
215314
328414
457114
5126814
6266914
7386914
8459714
9545314
10607014
11623214
12635814
13690714
14731914
15790514
Stop Event
node limit
Counts
2 → 65
Calls
Call 1
Inputs
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(*.f64 x 1/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x 1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 2/3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4/3) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) 1/12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8/3) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/6 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 x 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/12 (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/3) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 x 1/3) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (*.f64 x 1/3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 1 (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (*.f64 x 1/3) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (*.f64 x 1/3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 (*.f64 x 1/3) -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) 3) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x 1/3) -3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/6) (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (+.f64 (*.f64 x 1/3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x 1/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/3) 1)))))

simplify406.0ms (1.3%)

Algorithm
egg-herbie
Rules
2884×rational.json-simplify-48
1756×rational.json-simplify-51
1630×rational.json-simplify-35
1624×rational.json-simplify-2
1418×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
099623
1191623
2613623
31675623
43060623
53577623
63748623
73856623
83970623
94091623
105435623
116472623
126561623
136642623
146726623
156809623
167037623
177140623
187239623
197339623
207439623
217537623
Stop Event
node limit
Counts
89 → 51
Calls
Call 1
Inputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(-.f64 (+.f64 1 (*.f64 x 1/3)) 1)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 1 (*.f64 x 1/3))
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 2 (*.f64 x 1/6))
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 4 (*.f64 x 1/12))
(*.f64 (+.f64 x x) 1/6)
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/6 (+.f64 x x))
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 (*.f64 x 1/12) 4)
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 1/12 (*.f64 x 4))
(/.f64 (*.f64 x 1/3) 1)
(/.f64 (*.f64 x 2/3) 2)
(/.f64 (*.f64 x 4/3) 4)
(/.f64 (*.f64 x 8/3) 8)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(pow.f64 (*.f64 x 1/3) 1)
(+.f64 1 (+.f64 (*.f64 x 1/3) -1))
(+.f64 (*.f64 x 1/3) 0)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(+.f64 -1 (+.f64 1 (*.f64 x 1/3)))
(+.f64 0 (*.f64 x 1/3))
(+.f64 2 (+.f64 (*.f64 x 1/3) -2))
(+.f64 (+.f64 (*.f64 x 1/3) -1) 1)
(+.f64 (+.f64 (*.f64 x 1/3) 2) -2)
(+.f64 (+.f64 (*.f64 x 1/3) -2) 2)
(+.f64 -2 (+.f64 (*.f64 x 1/3) 2))
(+.f64 3 (+.f64 (*.f64 x 1/3) -3))
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
(+.f64 (+.f64 (*.f64 x 1/3) -3) 3)
(+.f64 (*.f64 x 1/6) (*.f64 x 1/6))
(+.f64 -3 (+.f64 (*.f64 x 1/3) 3))
(-.f64 (*.f64 x 1/3) 0)
(-.f64 (+.f64 1 (*.f64 x 1/3)) 1)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(/.f64 (*.f64 x 1/3) 1)
(/.f64 (*.f64 x 2/3) 2)
(/.f64 (*.f64 x 4/3) 4)
(/.f64 (*.f64 x 8/3) 8)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(pow.f64 (*.f64 x 1/3) 1)
Outputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(-.f64 (+.f64 1 (*.f64 x 1/3)) 1)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 1/3 x)
(*.f64 1 (*.f64 x 1/3))
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(*.f64 2 (*.f64 x 1/6))
(*.f64 1/3 x)
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 1/3 x)
(*.f64 4 (*.f64 x 1/12))
(*.f64 1/3 x)
(*.f64 (+.f64 x x) 1/6)
(*.f64 1/3 x)
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 1/3 x)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/3 x)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 1/3 x)
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 1/3 x)
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/3 x)
(*.f64 1/6 (+.f64 x x))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/3 x)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 1/3 x)
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/12) 4)
(*.f64 1/3 x)
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 1/3 x)
(*.f64 1/12 (*.f64 x 4))
(*.f64 1/3 x)
(/.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 2/3) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x 4/3) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x 8/3) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(*.f64 1/3 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(*.f64 1/3 x)
(pow.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(+.f64 1 (+.f64 (*.f64 x 1/3) -1))
(*.f64 1/3 x)
(+.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(*.f64 1/3 x)
(+.f64 -1 (+.f64 1 (*.f64 x 1/3)))
(*.f64 1/3 x)
(+.f64 0 (*.f64 x 1/3))
(*.f64 1/3 x)
(+.f64 2 (+.f64 (*.f64 x 1/3) -2))
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) -1) 1)
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) 2) -2)
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) -2) 2)
(*.f64 1/3 x)
(+.f64 -2 (+.f64 (*.f64 x 1/3) 2))
(*.f64 1/3 x)
(+.f64 3 (+.f64 (*.f64 x 1/3) -3))
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
(*.f64 1/3 x)
(+.f64 (+.f64 (*.f64 x 1/3) -3) 3)
(*.f64 1/3 x)
(+.f64 (*.f64 x 1/6) (*.f64 x 1/6))
(*.f64 1/3 x)
(+.f64 -3 (+.f64 (*.f64 x 1/3) 3))
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(-.f64 (+.f64 1 (*.f64 x 1/3)) 1)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 2/3) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x 4/3) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x 8/3) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(*.f64 1/3 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))))) 512)
(*.f64 1/3 x)
(pow.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)

eval10.0ms (0%)

Compiler

Compiled 396 to 340 computations (14.1% saved)

prune8.0ms (0%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New50151
Fresh000
Picked011
Done055
Total50757
Error
0.4b
Counts
57 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
59.9b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
59.1b
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
59.1b
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.4b
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.8b
(*.f64 1/3 x)
Compiler

Compiled 71 to 58 computations (18.3% saved)

localize20.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.4b
(*.f64 x 1/3)
5.3b
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
5.4b
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
Compiler

Compiled 42 to 36 computations (14.3% saved)

series0.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
0.0ms
x
@-inf
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
0.0ms
x
@inf
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
0.0ms
x
@-inf
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
0.0ms
x
@inf
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)

rewrite208.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
2148×rational.json-simplify-2
1778×rational.json-simplify-35
1680×rational.json-simplify-1
1188×exponential.json-3
1188×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01338
110114
221314
343814
4116714
5230814
6353514
7482114
8555814
9649314
10709214
11716414
12723614
Stop Event
node limit
Counts
2 → 70
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x 1/3) 3) -3)
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 2/3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4/3) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) 1/12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8/3) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/6 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 x 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/12 (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/3) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 1/3) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 2/3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x 1/12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4/3) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) 1/12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2/3 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8/3) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/6 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x 4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4/3 (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 x 8/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/12 (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/3) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 8/3) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 8/3)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 1/3) 1)))))

simplify352.0ms (1.1%)

Algorithm
egg-herbie
Rules
3118×rational.json-simplify-51
1694×rational.json-simplify-1
1432×rational.json-simplify-35
1030×rational.json-simplify-48
986×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074658
1158658
2372658
31013658
42178658
53172658
63748658
74037658
84509658
94654658
104782658
114927658
125382658
135596658
145758658
155856658
165902658
175948658
185994658
196040658
Stop Event
node limit
Counts
94 → 35
Calls
Call 1
Inputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(-.f64 (+.f64 (*.f64 x 1/3) 1) 1)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1 (*.f64 x 1/3))
(*.f64 2 (*.f64 x 1/6))
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 (+.f64 x x) 1/6)
(*.f64 4 (*.f64 x 1/12))
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/6 (+.f64 x x))
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 (*.f64 x 1/12) 4)
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 1/12 (*.f64 x 4))
(/.f64 (*.f64 x 1/3) 1)
(/.f64 (*.f64 x 2/3) 2)
(/.f64 (*.f64 x 4/3) 4)
(/.f64 (*.f64 x 8/3) 8)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(pow.f64 (*.f64 x 1/3) 1)
(-.f64 (*.f64 x 1/3) 0)
(-.f64 (+.f64 (*.f64 x 1/3) 1) 1)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1 (*.f64 x 1/3))
(*.f64 2 (*.f64 x 1/6))
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 (+.f64 x x) 1/6)
(*.f64 4 (*.f64 x 1/12))
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/6 (+.f64 x x))
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 (*.f64 x 1/12) 4)
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 1/12 (*.f64 x 4))
(/.f64 (*.f64 x 1/3) 1)
(/.f64 (*.f64 x 2/3) 2)
(/.f64 (*.f64 x 4/3) 4)
(/.f64 (*.f64 x 8/3) 8)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(pow.f64 (*.f64 x 1/3) 1)
Outputs
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) 1) 1)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(*.f64 1 (*.f64 x 1/3))
(*.f64 1/3 x)
(*.f64 2 (*.f64 x 1/6))
(*.f64 1/3 x)
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 1/3 x)
(*.f64 (+.f64 x x) 1/6)
(*.f64 1/3 x)
(*.f64 4 (*.f64 x 1/12))
(*.f64 1/3 x)
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 1/3 x)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/3 x)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 1/3 x)
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 1/3 x)
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/3 x)
(*.f64 1/6 (+.f64 x x))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/3 x)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 1/3 x)
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 1/3 x)
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/12) 4)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 1/3 x)
(*.f64 1/12 (*.f64 x 4))
(*.f64 1/3 x)
(/.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 2/3) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x 4/3) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x 8/3) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(*.f64 1/3 x)
(pow.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(-.f64 (*.f64 x 1/3) 0)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) 1) 1)
(*.f64 1/3 x)
(-.f64 (+.f64 (*.f64 x 1/3) -1) -1)
(*.f64 1/3 x)
(*.f64 x 1/3)
(*.f64 1/3 x)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(*.f64 1 (*.f64 x 1/3))
(*.f64 1/3 x)
(*.f64 2 (*.f64 x 1/6))
(*.f64 1/3 x)
(*.f64 (*.f64 x 2/3) 1/2)
(*.f64 1/3 x)
(*.f64 (+.f64 x x) 1/6)
(*.f64 1/3 x)
(*.f64 4 (*.f64 x 1/12))
(*.f64 1/3 x)
(*.f64 (*.f64 x 4/3) 1/4)
(*.f64 1/3 x)
(*.f64 (*.f64 x 4) 1/12)
(*.f64 1/3 x)
(*.f64 1/2 (*.f64 x 2/3))
(*.f64 1/3 x)
(*.f64 2/3 (*.f64 x 1/2))
(*.f64 1/3 x)
(*.f64 (*.f64 x 8/3) 1/8)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/2) 2/3)
(*.f64 1/3 x)
(*.f64 1/6 (+.f64 x x))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/6) 2)
(*.f64 1/3 x)
(*.f64 1/4 (*.f64 x 4/3))
(*.f64 1/3 x)
(*.f64 4/3 (*.f64 x 1/4))
(*.f64 1/3 x)
(*.f64 1/8 (*.f64 x 8/3))
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/12) 4)
(*.f64 1/3 x)
(*.f64 (*.f64 x 1/4) 4/3)
(*.f64 1/3 x)
(*.f64 1/12 (*.f64 x 4))
(*.f64 1/3 x)
(/.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)
(/.f64 (*.f64 x 2/3) 2)
(*.f64 1/3 x)
(/.f64 (*.f64 x 4/3) 4)
(*.f64 1/3 x)
(/.f64 (*.f64 x 8/3) 8)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 x 8/3)) 16)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 8/3))) 32)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) 64)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))))) 256)
(*.f64 1/3 x)
(pow.f64 (*.f64 x 1/3) 1)
(*.f64 1/3 x)

eval12.0ms (0%)

Compiler

Compiled 567 to 513 computations (9.5% saved)

prune11.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New49150
Fresh000
Picked011
Done066
Total49857
Error
0.4b
Counts
57 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
59.8b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
59.9b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
59.1b
(+.f64 (+.f64 1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 x 1/3) -2) 2) 3) -3)) -1)
59.1b
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
59.1b
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
0.4b
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.8b
(*.f64 1/3 x)
Compiler

Compiled 87 to 73 computations (16.1% saved)

regimes9.0ms (0%)

Counts
8 → 1
Calls
Call 1
Inputs
(*.f64 1/3 x)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(+.f64 (+.f64 1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 x 1/3) -2) 2) 3) -3)) -1)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
Outputs
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
Calls

2 calls:

5.0ms
x
2.0ms
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 91 to 74 computations (18.7% saved)

regimes9.0ms (0%)

Counts
7 → 1
Calls
Call 1
Inputs
(*.f64 1/3 x)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(+.f64 (+.f64 1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 x 1/3) -2) 2) 3) -3)) -1)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
Outputs
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
Calls

2 calls:

4.0ms
x
3.0ms
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Results
ErrorSegmentsBranch
0.4b1x
0.4b1(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 76 to 62 computations (18.4% saved)

regimes8.0ms (0%)

Accuracy

Total -59.1b remaining (-7482.6%)

Threshold costs -59.1b (-7482.6%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f64 1/3 x)
(+.f64 (+.f64 1 (*.f64 x 1/3)) -1)
(+.f64 (+.f64 1 (+.f64 (+.f64 (*.f64 x 1/3) 3) -3)) -1)
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(+.f64 (+.f64 1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 x 1/3) -2) 2) 3) -3)) -1)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Outputs
(*.f64 1/3 x)
Calls

2 calls:

4.0ms
x
2.0ms
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Results
ErrorSegmentsBranch
0.8b1x
0.8b1(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 67 to 55 computations (17.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01675
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(*.f64 1/3 x)
Outputs
(+.f64 (*.f64 1/3 x) (+.f64 (*.f64 1/45 (pow.f64 x 3)) (*.f64 2/945 (pow.f64 x 5))))
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(*.f64 1/3 x)
Compiler

Compiled 30 to 24 computations (20% saved)

soundness129.0ms (0.4%)

Algorithm
egg-herbie
Rules
1582×rational.json-simplify-35
1194×rational.json-simplify-2
758×rational.json-simplify-1
620×rational.json-simplify-51
552×rational.json-simplify-46
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01431979
12811835
26041835
317011835
435081833
563931833
Stop Event
node limit
Compiler

Compiled 31 to 25 computations (19.4% saved)

end26.0ms (0.1%)

Compiler

Compiled 28 to 22 computations (21.4% saved)

Profiling

Loading profile data...