Details

Time bar (total: 27.8s)

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)

sample16.7s (60%)

Results
13.0s4166×body2048valid
2.5s2023×body1024valid
676.0ms213×body4096valid
286.0ms1056×body512valid
166.0ms798×body256valid
Bogosity

preprocess4.5s (16.2%)

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.5s (16.2%)

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
60.1b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
60.1b
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (tan.f64 x))
2.9b
(-.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))

rewrite69.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
1464×rational.json-simplify-35
1322×bool.json-1
1322×bool.json-2
1286×rational.json-1
1286×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0934
110034
231434
369534
4152234
5404334
Stop Event
node limit
Counts
2 → 52
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 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))))))) (#(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 1 (-.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))) 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 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/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))) 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 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))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) 16)))) (#(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 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4)))) 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 neg.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) (-.f64 (/.f64 1 x) (/.f64 1 (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 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 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (tan.f64 x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (tan.f64 x)) 4) 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 1/2 (tan.f64 x)) 2)))) (#(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 1/4 (*.f64 (/.f64 1 (tan.f64 x)) 4))))) (#(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 (/.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 neg.f64 (/.f64 -1 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (/.f64 1 (tan.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (/.f64 1 (tan.f64 x)) (/.f64 1 (tan.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (/.f64 1 (tan.f64 x)) (/.f64 1 (tan.f64 x)))))))

simplify107.0ms (0.4%)

Algorithm
egg-herbie
Rules
1520×rational.json-simplify-35
996×rational.json-simplify-2
812×rational.json-simplify-1
662×rational.json-simplify-46
616×rational.json-simplify-19
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01311738
12651714
25861714
315551714
432991712
569311712
Stop Event
node limit
Counts
76 → 85
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 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))))
(+.f64 (neg.f64 (/.f64 1 (tan.f64 x))) (/.f64 1 x))
(+.f64 (+.f64 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))) -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 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/4 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(*.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 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) -4)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) 16)
(/.f64 (neg.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) 2)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4)))) 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)
(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 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))
(*.f64 (/.f64 2 (tan.f64 x)) 1/2)
(*.f64 (*.f64 (/.f64 1 (tan.f64 x)) 4) 1/4)
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 (/.f64 1/2 (tan.f64 x)) 2)
(*.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 1/4 (*.f64 (/.f64 1 (tan.f64 x)) 4))
(*.f64 (*.f64 (tan.f64 x) 1/2) (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))))
(*.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))
(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/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/4725 (pow.f64 x 7)) (+.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 (*.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 x -1/3) (+.f64 (/.f64 1 x) (*.f64 (pow.f64 x 3) -1/45)))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 (pow.f64 x 3) -1/45) (*.f64 x -1/3)))
(+.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 x -1/3) (+.f64 (+.f64 (/.f64 1 x) (*.f64 (pow.f64 x 3) -1/45)) (*.f64 (pow.f64 x 5) -2/945)))
(+.f64 (*.f64 x -1/3) (+.f64 (*.f64 (pow.f64 x 5) -2/945) (+.f64 (/.f64 1 x) (*.f64 (pow.f64 x 3) -1/45))))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 x -1/3) (+.f64 (*.f64 (pow.f64 x 3) -1/45) (*.f64 (pow.f64 x 5) -2/945))))
(+.f64 (+.f64 (*.f64 x -1/3) (*.f64 (pow.f64 x 3) -1/45)) (+.f64 (/.f64 1 x) (*.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) (/.f64 1 (tan.f64 x)))
(+.f64 0 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))))
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(+.f64 -1 (+.f64 1 (-.f64 (/.f64 1 x) (/.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 1 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))) -1)
(-.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) (/.f64 1 (tan.f64 x)))
(*.f64 1 (-.f64 (/.f64 1 x) (/.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) (/.f64 1 (tan.f64 x)))
(*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2))
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(*.f64 4 (/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(-.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) (/.f64 1 (tan.f64 x)))
(*.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(*.f64 -1 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 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) (/.f64 1 (tan.f64 x)))
(*.f64 1/2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 2))
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(*.f64 1/4 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(*.f64 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1/2) 2)
(-.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) (/.f64 1 (tan.f64 x)))
(/.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 1)
(-.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) (/.f64 1 (tan.f64 x)))
(/.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)) -1)
(-.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) (/.f64 1 (tan.f64 x)))
(/.f64 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x))) -2)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4)) 8)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 x)))) -4)
(-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) 16)
(-.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) (/.f64 1 (tan.f64 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 (/.f64 1 x) (/.f64 1 (tan.f64 x))) 4)))) 32)
(-.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) (/.f64 1 (tan.f64 x)))
(neg.f64 (-.f64 (/.f64 1 (tan.f64 x)) (/.f64 1 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 4 (/.f64 (/.f64 1 (tan.f64 x)) 4))
(/.f64 1 (tan.f64 x))
(*.f64 (/.f64 2 (tan.f64 x)) 1/2)
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 (*.f64 (/.f64 1 (tan.f64 x)) 4) 1/4)
(/.f64 1 (tan.f64 x))
(*.f64 1/2 (/.f64 2 (tan.f64 x)))
(*.f64 (/.f64 1/2 (tan.f64 x)) 2)
(*.f64 2 (/.f64 1/2 (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/2 (/.f64 (/.f64 2 (tan.f64 x)) (tan.f64 x))))
(*.f64 (tan.f64 x) (*.f64 1/2 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x)))))
(*.f64 1/4 (*.f64 (/.f64 1 (tan.f64 x)) 4))
(/.f64 1 (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/2 (/.f64 (/.f64 2 (tan.f64 x)) (tan.f64 x))))
(*.f64 (tan.f64 x) (*.f64 1/2 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x)))))
(*.f64 (/.f64 2 (*.f64 (tan.f64 x) (tan.f64 x))) (*.f64 (tan.f64 x) 1/2))
(*.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))))
(neg.f64 (/.f64 -1 (tan.f64 x)))
(/.f64 1 (tan.f64 x))

eval20.0ms (0.1%)

Compiler

Compiled 1134 to 795 computations (29.9% saved)

prune52.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New82385
Fresh000
Picked101
Done000
Total83386
Error
0.4b
Counts
86 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
60.1b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.6b
(*.f64 1/3 x)
Compiler

Compiled 26 to 20 computations (23.1% 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)

rewrite85.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1606×rational.json-simplify-35
1368×bool.json-1
1368×bool.json-2
1308×rational.json-1
1308×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1517
21547
33267
46517
513617
631777
758407
Stop Event
node limit
Counts
1 → 12
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 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/3 x) (*.f64 1/3 x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/3 x) (*.f64 1/3 x))))))

simplify691.0ms (2.5%)

Algorithm
egg-herbie
Rules
9238×rational.json-simplify-41
2252×rational.json-simplify-35
1312×rational.json-simplify-2
860×rational.json-simplify-1
652×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03884
18884
215884
336284
486784
5275084
6356384
7366384
8371384
9375884
10380084
11384084
12391884
13395784
14399684
15403584
16407484
17411384
18415284
19419184
20423084
21426984
22430884
23434784
24438684
25442584
26446484
27450384
28454284
29458184
30462084
31462084
32465984
33469884
34473784
35477684
Stop Event
node limit
Counts
12 → 13
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 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
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 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 8/3))))) 128)
(*.f64 1/3 x)

localize10.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 19 computations (24% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.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))

rewrite87.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1590×bool.json-1
1590×bool.json-2
1532×rational.json-1
1532×rational.json-2
1532×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16913
218813
338113
475813
5158813
6367713
7636913
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.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 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/45 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/45 (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/45 (pow.f64 x 3)) (*.f64 1/45 (pow.f64 x 3)))))))

simplify642.0ms (2.3%)

Algorithm
egg-herbie
Rules
7938×rational.json-simplify-41
3836×rational.json-simplify-35
2394×rational.json-simplify-49
2124×rational.json-simplify-2
774×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037143
180143
2145143
3324143
4758143
52240143
62972143
73127143
83186143
93231143
103271143
113309143
123347143
133385143
143423143
153461143
163499143
173537143
183575143
193613143
203651143
215176143
225378143
235395143
245396143
255396143
266074143
276242143
286410143
296578143
306746143
316914143
327082143
337082143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.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 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)
Outputs
(+.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 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 3) 8/45)))) 64)
(*.f64 1/45 (pow.f64 x 3))

localize11.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(*.f64 x -1/3)
2.9b
(-.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
@inf
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
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
@0
(*.f64 x -1/3)
0.0ms
x
@-inf
(*.f64 x -1/3)

rewrite82.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
1062×rational.json-simplify-35
1034×bool.json-1
1034×bool.json-2
984×rational.json-1
984×rational.json-2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0938
19938
229138
361318
4133814
5329014
Stop Event
node limit
Counts
2 → 75
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 (/.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 (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 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 (*.f64 x -1/3) -2) 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 (*.f64 (*.f64 x 1/3) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x -1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (*.f64 x -1/3) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (neg.f64 (*.f64 x -2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (/.f64 2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 2)))))) (#(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 (*.f64 x -1/3) -2) 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 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 x -2/3)) (neg.f64 (*.f64 x -2/3))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 x -4/3)) (neg.f64 (*.f64 x -4/3))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x 1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x 1/3) (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x 1/3) (*.f64 x 1/3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) (+.f64 (*.f64 x -1/3) (/.f64 -1 x)))))) (#(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 (/.f64 1 x) -2)))))) (#(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)) (*.f64 (/.f64 1 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 x -1/3) (/.f64 -1 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 x -1/6) (*.f64 x -1/6))))) (#(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) 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 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 (*.f64 x -1/3) -2) -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 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x -1/3)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x -1/3) (*.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x -1/3) (*.f64 x -1/3))))))

simplify92.0ms (0.3%)

Algorithm
egg-herbie
Rules
1528×rational.json-simplify-35
1248×rational.json-simplify-1
1090×rational.json-simplify-52
966×rational.json-simplify-43
818×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0142861
1295861
2810861
32721861
43958861
56181861
Stop Event
node limit
Counts
99 → 79
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 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 (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 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 (*.f64 x -1/3) -2) 1/2)
(*.f64 -1 (*.f64 x -1/3))
(*.f64 (neg.f64 x) -1/3)
(*.f64 (*.f64 (*.f64 x 1/3) 4) 1/4)
(*.f64 -2 (*.f64 x -1/6))
(*.f64 1/2 (*.f64 (*.f64 x -1/3) -2))
(*.f64 1/2 (neg.f64 (*.f64 x -2/3)))
(*.f64 1/2 (-.f64 (/.f64 2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 2)))
(*.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 (*.f64 x -1/3) -2) 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 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)
(/.f64 (+.f64 (neg.f64 (*.f64 x -2/3)) (neg.f64 (*.f64 x -2/3))) 4)
(/.f64 (+.f64 (neg.f64 (*.f64 x -4/3)) (neg.f64 (*.f64 x -4/3))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)
(neg.f64 (*.f64 x -1/3))
(+.f64 (/.f64 1 x) (+.f64 (*.f64 x -1/3) (/.f64 -1 x)))
(+.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 (/.f64 1 x) -2)))
(+.f64 -1 (-.f64 1 (*.f64 x 1/3)))
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (*.f64 (/.f64 1 x) -2))
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 -1 x)) (/.f64 1 x))
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(+.f64 (*.f64 x -1/6) (*.f64 x -1/6))
(+.f64 (-.f64 1 (*.f64 x 1/3)) -1)
(-.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 x -1/3) 1)
(/.f64 (*.f64 x 1/3) -1)
(/.f64 (*.f64 (*.f64 x -1/3) -2) -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 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)
(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 (/.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 (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 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 (*.f64 x -1/3) -2) 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 (*.f64 (*.f64 x 1/3) 4) 1/4)
(*.f64 1/3 x)
(*.f64 -2 (*.f64 x -1/6))
(*.f64 1/3 x)
(*.f64 1/2 (*.f64 (*.f64 x -1/3) -2))
(*.f64 1/3 x)
(*.f64 1/2 (neg.f64 (*.f64 x -2/3)))
(*.f64 1/3 x)
(*.f64 1/2 (-.f64 (/.f64 2 x) (*.f64 (+.f64 (/.f64 1 x) (*.f64 x -1/3)) 2)))
(*.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 (*.f64 x -1/3) -2) 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 (*.f64 2 (*.f64 (*.f64 x 1/3) 8)) (*.f64 2 (*.f64 (*.f64 x 1/3) 8))) 32)
(*.f64 1/3 x)
(/.f64 (+.f64 (neg.f64 (*.f64 x -2/3)) (neg.f64 (*.f64 x -2/3))) 4)
(*.f64 1/3 x)
(/.f64 (+.f64 (neg.f64 (*.f64 x -4/3)) (neg.f64 (*.f64 x -4/3))) 8)
(*.f64 1/3 x)
(/.f64 (+.f64 (neg.f64 (*.f64 2 (*.f64 x -4/3))) (neg.f64 (*.f64 2 (*.f64 x -4/3)))) 16)
(*.f64 1/3 x)
(neg.f64 (*.f64 x -1/3))
(*.f64 1/3 x)
(+.f64 (/.f64 1 x) (+.f64 (*.f64 x -1/3) (/.f64 -1 x)))
(*.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 (/.f64 1 x) -2)))
(+.f64 (*.f64 x -1/3) (+.f64 (*.f64 (/.f64 1 x) -2) (/.f64 2 x)))
(+.f64 (*.f64 x -1/3) (+.f64 (/.f64 2 x) (*.f64 (/.f64 1 x) -2)))
(+.f64 -1 (-.f64 1 (*.f64 x 1/3)))
(*.f64 x -1/3)
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 2 x)) (*.f64 (/.f64 1 x) -2))
(+.f64 (*.f64 x -1/3) (+.f64 (*.f64 (/.f64 1 x) -2) (/.f64 2 x)))
(+.f64 (/.f64 2 x) (+.f64 (*.f64 x -1/3) (*.f64 (/.f64 1 x) -2)))
(+.f64 (*.f64 x -1/3) (+.f64 (/.f64 2 x) (*.f64 (/.f64 1 x) -2)))
(+.f64 (+.f64 (*.f64 x -1/3) (/.f64 -1 x)) (/.f64 1 x))
(*.f64 x -1/3)
(+.f64 (/.f64 -1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(*.f64 x -1/3)
(+.f64 (*.f64 x -1/6) (*.f64 x -1/6))
(*.f64 x -1/3)
(+.f64 (-.f64 1 (*.f64 x 1/3)) -1)
(*.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 x -1/3) 1)
(*.f64 x -1/3)
(/.f64 (*.f64 x 1/3) -1)
(*.f64 x -1/3)
(/.f64 (*.f64 (*.f64 x -1/3) -2) -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 (*.f64 2 (*.f64 2 (*.f64 x -4/3))) (*.f64 2 (*.f64 2 (*.f64 x -4/3)))) 32)
(*.f64 x -1/3)
(neg.f64 (*.f64 x 1/3))
(*.f64 x -1/3)

eval26.0ms (0.1%)

Compiler

Compiled 1229 to 991 computations (19.4% saved)

prune81.0ms (0.3%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1170117
Fresh000
Picked011
Done022
Total1173120
Error
0.4b
Counts
120 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
60.1b
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
0.4b
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
0.6b
(*.f64 1/3 x)
Compiler

Compiled 26 to 20 computations (23.1% saved)

regimes7.0ms (0%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 1/3 x)
(-.f64 (/.f64 1 x) (+.f64 (/.f64 1 x) (*.f64 x -1/3)))
(-.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:

3.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 43 to 32 computations (25.6% saved)

regimes7.0ms (0%)

Accuracy

Total -59.5b remaining (-9920.4%)

Threshold costs -59.5b (-9920.4%)

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

2 calls:

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

Compiled 34 to 25 computations (26.5% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01032
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(*.f64 1/3 x)
Outputs
(+.f64 (*.f64 1/3 x) (*.f64 1/45 (pow.f64 x 3)))
(*.f64 1/3 x)
Compiler

Compiled 14 to 11 computations (21.4% saved)

soundness0.0ms (0%)

end16.0ms (0.1%)

Compiler

Compiled 13 to 10 computations (23.1% saved)

Profiling

Loading profile data...