Details

Time bar (total: 17.0s)

analyze48.0ms (0.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
56.3%56.2%43.7%0.1%0%0%0%7
65.6%65.6%34.3%0.1%0%0%0%8
76.6%76.5%23.4%0.1%0%0%0%9
82%82%18%0.1%0%0%0%10
87.9%87.8%12.1%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample6.9s (40.9%)

Results
6.9s8256×body256valid
Bogosity

preprocess3.9s (22.7%)

Algorithm
egg-herbie
Rules
24428×rational.json-simplify-41
2328×rational.json-simplify-1
1296×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
11726
22326
33326
45126
59726
622726
760326
877126
977726
1078326
1178926
1279526
1380126
1480726
1581326
1681926
1782526
1883126
1983726
2084326
2184926
2285526
23272626
24273226
25273826
26274426
27275026
28275626
29355826
30356426
31357026
32357626
33358226
34358826
35359426
36360026
37360626
38361226
39361826
40362426
41363026
42363626
43364226
44364826
45365426
46366026
47366626
48367226
49367826
50368426
51369026
52369626
53370226
54370826
55371426
56372026
57372626
58373226
59373826
60374426
61375026
62375626
63376226
64376826
65377426
66378026
67378626
68379226
69379826
70380426
71381026
72381626
73382226
74382826
75383426
76384026
77384626
78385226
79385826
80386426
81387026
82387626
83388226
84388826
85389426
86390026
87390626
88391226
89391826
90392426
91393026
92393626
93394226
94394826
95395426
96396026
97396626
98397226
99397826
100398426
101399026
102399626
103400226
104400826
105401426
106402026
107402626
108403226
109403826
110404426
111405026
112405626
113406226
114406826
115407426
116408026
117408626
118409226
119409826
120410426
121411026
122411626
123412226
124412826
125413426
126414026
127414626
128415226
129415826
130416426
131417026
132417626
133418226
134418826
135419426
136420026
137420626
138421226
139421826
140422426
141423026
142423626
143424226
144424826
145425426
146426026
147426626
148427226
149427826
150428426
151429026
152429626
153430226
154430826
155431426
156432026
157432626
158433226
159433826
160434426
161435026
162435626
163436226
164436826
165437426
166438026
167438626
168439226
169439826
170440426
171441026
172441626
173442226
174442826
175443426
176444026
177444626
178445226
179445826
180446426
181447026
182447626
183448226
184448826
185449426
186450026
187450626
188451226
189451826
190452426
191453026
192453626
193454226
194454826
195455426
196456026
197456626
198457226
199457826
200458426
201459026
202459626
203460226
204460826
205461426
206462026
207462626
208463226
209463826
210464426
211465026
212465626
213466226
214466826
215467426
216468026
217468626
218469226
219469826
220470426
221471026
222471626
223472226
224472826
225473426
226474026
227474626
228475226
229475826
230476426
231477026
232477626
233478226
234478826
235479426
236480026
237480626
238481226
239481826
240482426
241483026
242483626
243484226
244484826
245485426
246486026
247486626
248487226
249487826
250488426
251489026
252489626
253490226
254490826
255491426
256492026
257492626
258493226
259493826
260494426
261495026
262495626
263496226
264496826
265497426
266498026
267498626
268499226
269499826
270500426
271501026
272501626
273502226
274502826
275503426
276504026
277504626
278505226
279505826
280506426
281507026
282507626
283508226
284508826
285509426
286510026
287510626
288511226
289511826
290512426
291513026
292513626
293514226
294514826
295515426
296516026
297516626
298517226
299517826
300518426
301519026
302519626
303520226
304520826
305521426
306522026
307522626
308523226
309523826
310524426
311525026
312525626
313526226
314526826
315527426
316528026
317528626
318529226
319529826
320530426
321531026
322531626
323532226
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 x (/.f64 y 500))
(+.f64 y (/.f64 x 500))
Outputs
(+.f64 x (/.f64 y 500))
(+.f64 y (/.f64 x 500))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify663.0ms (3.9%)

Algorithm
egg-herbie
Rules
10726×rational.json-simplify-41
1106×rational.json-simplify-1
328×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
11213
21613
32213
43213
55713
612013
733813
842213
942613
1043013
1143413
1243813
13130813
14167913
15168313
16168713
17169113
18169513
19169913
20170313
21170713
22171113
23171513
24171913
25172313
26172713
27173113
28173513
29173913
30174313
31174713
32175113
33175513
34175913
35176313
36176713
37177113
38177513
39177913
40178313
41178713
42179113
43179513
44179913
45180313
46180713
47181113
48181513
49181913
50182313
51182713
52183113
53183513
54183913
55184313
56184713
57185113
58185513
59185913
60186313
61186713
62187113
63187513
64187913
65188313
66188713
67189113
68189513
69189913
70190313
71190713
72191113
73191513
74191913
75192313
76192713
77193113
78193513
79193913
80194313
81194713
82195113
83195513
84195913
85196313
86196713
87197113
88197513
89197913
90198313
91198713
92199113
93199513
94199913
95200313
96200713
97201113
98201513
99201913
100202313
101202713
102203113
103203513
104203913
105204313
106204713
107205113
108205513
109205913
110206313
111206713
112207113
113207513
114207913
115208313
116208713
117209113
118209513
119209913
120210313
121210713
122211113
123211513
124211913
125212313
126212713
127213113
128213513
129213913
130214313
131214713
132215113
133215513
134215913
135216313
136216713
137217113
138217513
139217913
140218313
141218713
142219113
143219513
144219913
145220313
146220713
147221113
148221513
149221913
150222313
151222713
152223113
153223513
154223913
155224313
156224713
157225113
158225513
159225913
160226313
161226713
162227113
163227513
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 x (/.f64 y 500))
Outputs
(+.f64 x (/.f64 y 500))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 x (/.f64 y 500))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (/.f64 y 500))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(+.f64 x (/.f64 y 500))
0.0ms
x
@inf
(+.f64 x (/.f64 y 500))
0.0ms
x
@0
(+.f64 x (/.f64 y 500))
0.0ms
y
@0
(+.f64 x (/.f64 y 500))
0.0ms
y
@-inf
(+.f64 x (/.f64 y 500))

rewrite1.5s (8.7%)

Algorithm
batch-egg-rewrite
Rules
1724×bool.json-1
1724×bool.json-2
1646×rational.json-1
1236×rational.json-simplify-35
1074×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17313
222013
347513
499813
5217713
6441013
7700013
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 x (/.f64 y 500))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y 1/500)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y 1/500)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y 1/500)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y 1/1000)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 y 1/500)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y 1/500)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (+.f64 (*.f64 y 1/125) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y 1/500)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 x (*.f64 y 1/500))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 x (*.f64 y 1/500)) (+.f64 x (*.f64 y 1/500)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 x (*.f64 y 1/500)) (+.f64 x (*.f64 y 1/500)))))))

simplify1.2s (7.4%)

Algorithm
egg-herbie
Rules
3448×rational.json-simplify-1
2812×rational.json-simplify-41
1948×rational.json-simplify-35
1424×rational.json-simplify-2
1392×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058542
1111542
2247542
3716542
41328542
52036542
62368542
72407542
82439542
92467542
104939542
115138542
125210542
135279542
145327542
155373542
165416542
175457542
185498542
196483542
206528542
216568542
226602542
236636542
246670542
256935542
Stop Event
node limit
Counts
44 → 24
Calls
Call 1
Inputs
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(+.f64 (*.f64 1/500 y) x)
(-.f64 (+.f64 x (*.f64 y 1/500)) 0)
(*.f64 (+.f64 x (*.f64 y 1/500)) 1)
(*.f64 1 (+.f64 x (*.f64 y 1/500)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y 1/1000)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)
(*.f64 4 (/.f64 (+.f64 x (*.f64 y 1/500)) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 1/4)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y 1/500)) 4))
(*.f64 1/4 (+.f64 (*.f64 y 1/125) (*.f64 x 4)))
(*.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2) 2)
(*.f64 (/.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)
(/.f64 (+.f64 x (*.f64 y 1/500)) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)))) 64)
Outputs
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
x
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(*.f64 1/500 y)
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(+.f64 (*.f64 1/500 y) x)
(+.f64 x (*.f64 1/500 y))
(-.f64 (+.f64 x (*.f64 y 1/500)) 0)
(+.f64 x (*.f64 1/500 y))
(*.f64 (+.f64 x (*.f64 y 1/500)) 1)
(+.f64 x (*.f64 1/500 y))
(*.f64 1 (+.f64 x (*.f64 y 1/500)))
(+.f64 x (*.f64 1/500 y))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2))
(+.f64 x (*.f64 1/500 y))
(*.f64 2 (+.f64 (*.f64 x 1/2) (*.f64 y 1/1000)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)
(+.f64 x (*.f64 1/500 y))
(*.f64 4 (/.f64 (+.f64 x (*.f64 y 1/500)) 4))
(+.f64 x (*.f64 1/500 y))
(*.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 1/4)
(+.f64 x (*.f64 1/500 y))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))
(+.f64 x (*.f64 1/500 y))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y 1/500)) 4))
(+.f64 x (*.f64 1/500 y))
(*.f64 1/4 (+.f64 (*.f64 y 1/125) (*.f64 x 4)))
(*.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 1/2) 2)
(+.f64 x (*.f64 1/500 y))
(*.f64 (/.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 x (*.f64 y 1/500)) 1)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 4) 4)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 (+.f64 x (*.f64 y 1/500)) 8) 8)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)) 16)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) 32)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y 1/500)) 8)))) 64)
(+.f64 x (*.f64 1/500 y))

eval229.0ms (1.3%)

Compiler

Compiled 210 to 159 computations (24.3% saved)

prune4.0ms (0%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New21324
Fresh000
Picked011
Done000
Total21425
Error
0b
Counts
25 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 1/500 y) x)
0.0b
(+.f64 x (/.f64 y 500))
34.8b
(*.f64 1/500 y)
28.4b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/500 y)
Compiler

Compiled 7 to 5 computations (28.6% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(*.f64 1/500 y)
0.0ms
y
@-inf
(*.f64 1/500 y)
0.0ms
y
@0
(*.f64 1/500 y)

rewrite85.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1622×rational.json-simplify-35
1348×bool.json-1
1348×bool.json-2
1290×rational.json-1
1290×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1517
21547
33267
46517
513627
631497
757517
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 1/500 y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/500 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/500 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 1/1000) (*.f64 y 1/1000))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/500 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/500 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 1/250) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 1/125) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 2/125) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y 2/125)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y 2/125))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/500 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/500 y) (*.f64 1/500 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/500 y) (*.f64 1/500 y))))))

simplify624.0ms (3.7%)

Algorithm
egg-herbie
Rules
8912×rational.json-simplify-41
2270×rational.json-simplify-35
1370×rational.json-simplify-2
866×rational.json-simplify-1
646×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03884
18884
215884
336284
486484
5261484
6350084
7360184
8365184
9369684
10373884
11377884
12385084
13388984
14392884
15396784
16400684
17404584
18408484
19412384
20416284
21420184
22424084
23427984
24431884
25435784
26439684
27443584
28447484
29451384
30455284
31455284
32459184
33463084
34466984
35470884
Stop Event
node limit
Counts
12 → 13
Calls
Call 1
Inputs
(+.f64 (*.f64 1/500 y) 0)
(+.f64 0 (*.f64 1/500 y))
(+.f64 (*.f64 y 1/1000) (*.f64 y 1/1000))
(-.f64 (*.f64 1/500 y) 0)
(/.f64 (*.f64 1/500 y) 1)
(/.f64 (*.f64 y 1/250) 2)
(/.f64 (*.f64 y 1/125) 4)
(/.f64 (*.f64 y 2/125) 8)
(/.f64 (*.f64 2 (*.f64 y 2/125)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 2/125))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125))))) 128)
Outputs
(+.f64 (*.f64 1/500 y) 0)
(*.f64 1/500 y)
(+.f64 0 (*.f64 1/500 y))
(*.f64 1/500 y)
(+.f64 (*.f64 y 1/1000) (*.f64 y 1/1000))
(*.f64 1/500 y)
(-.f64 (*.f64 1/500 y) 0)
(*.f64 1/500 y)
(/.f64 (*.f64 1/500 y) 1)
(*.f64 1/500 y)
(/.f64 (*.f64 y 1/250) 2)
(*.f64 1/500 y)
(/.f64 (*.f64 y 1/125) 4)
(*.f64 1/500 y)
(/.f64 (*.f64 y 2/125) 8)
(*.f64 1/500 y)
(/.f64 (*.f64 2 (*.f64 y 2/125)) 16)
(*.f64 1/500 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 2/125))) 32)
(*.f64 1/500 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) 64)
(*.f64 1/500 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 2/125))))) 128)
(*.f64 1/500 y)

localize611.0ms (3.6%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/500 y) x)
0.1b
(*.f64 1/500 y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series0.0ms (0%)

Counts
1 → 6
Calls

6 calls:

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

rewrite93.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
1684×bool.json-1
1684×bool.json-2
1628×rational.json-1
1628×rational.json-2
1110×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219313
340313
483413
5181013
6410813
7683113
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(+.f64 (*.f64 1/500 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 1/500 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/500 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/500 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/1000) (/.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y 1/250)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 1/500 y) x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/500 y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 1/500 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 1/500 y) x) (+.f64 (*.f64 1/500 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/500 y) x) (+.f64 (*.f64 1/500 y) x))))))

simplify959.0ms (5.6%)

Algorithm
egg-herbie
Rules
3840×rational.json-simplify-1
3180×rational.json-simplify-41
2440×rational.json-simplify-35
1436×rational.json-simplify-2
1296×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056309
1109309
2272309
3748309
41377309
52102309
62433309
72476309
82507309
92535309
102994309
113136309
123195309
133254309
143297309
153340309
163383309
173426309
183469309
194378309
206734309
216789309
226846309
236897309
246942309
257217309
267256309
277294309
287330309
297366309
307402309
317438309
327474309
337474309
Stop Event
node limit
Counts
27 → 24
Calls
Call 1
Inputs
x
(*.f64 1/500 y)
(*.f64 1/500 y)
(*.f64 1/500 y)
x
x
(-.f64 (+.f64 (*.f64 1/500 y) x) 0)
(*.f64 (+.f64 (*.f64 1/500 y) x) 1)
(*.f64 1 (+.f64 (*.f64 1/500 y) x))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2))
(*.f64 2 (+.f64 (*.f64 y 1/1000) (/.f64 x 2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y 1/250)))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/500 y) x) 4))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4) 4)
(/.f64 (+.f64 (*.f64 1/500 y) x) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)))) 64)
Outputs
x
(*.f64 1/500 y)
(*.f64 1/500 y)
(*.f64 1/500 y)
x
x
(-.f64 (+.f64 (*.f64 1/500 y) x) 0)
(+.f64 x (*.f64 1/500 y))
(*.f64 (+.f64 (*.f64 1/500 y) x) 1)
(+.f64 x (*.f64 1/500 y))
(*.f64 1 (+.f64 (*.f64 1/500 y) x))
(+.f64 x (*.f64 1/500 y))
(*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2))
(+.f64 x (*.f64 1/500 y))
(*.f64 2 (+.f64 (*.f64 y 1/1000) (/.f64 x 2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 1/2)
(+.f64 x (*.f64 1/500 y))
(*.f64 4 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4))
(+.f64 x (*.f64 1/500 y))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 1/4)
(+.f64 x (*.f64 1/500 y))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 1/8)
(+.f64 x (*.f64 1/500 y))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 1/250))))
(+.f64 x (*.f64 1/500 y))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y 1/250)))
(+.f64 x (*.f64 1/500 y))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/2) 2)
(+.f64 x (*.f64 1/500 y))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 1/500 y) x) 4))
(+.f64 x (*.f64 1/500 y))
(*.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 1/4) 4)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 (*.f64 1/500 y) x) 1)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 x (+.f64 x (*.f64 y 1/250))) 2)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 4) 4)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 (+.f64 (*.f64 1/500 y) x) 8) 8)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)) 16)
(+.f64 x (*.f64 1/500 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) 32)
(+.f64 x (*.f64 1/500 y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 1/500 y) x) 8)))) 64)
(+.f64 x (*.f64 1/500 y))

eval10.0ms (0.1%)

Compiler

Compiled 426 to 331 computations (22.3% saved)

prune7.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New50050
Fresh011
Picked011
Done022
Total50454
Error
0b
Counts
54 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 1/500 y) x)
0.0b
(+.f64 x (/.f64 y 500))
34.8b
(*.f64 1/500 y)
28.4b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 1/500 y) x)
0.0b
(+.f64 x (/.f64 y 500))
34.8b
(*.f64 1/500 y)
28.4b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 1/500 y) x)
0.0b
(+.f64 x (/.f64 y 500))
34.8b
(*.f64 1/500 y)
28.4b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes17.0ms (0.1%)

Counts
4 → 1
Calls
Call 1
Inputs
x
(*.f64 1/500 y)
(+.f64 x (/.f64 y 500))
(+.f64 (*.f64 1/500 y) x)
Outputs
(+.f64 x (/.f64 y 500))
Calls

4 calls:

4.0ms
(+.f64 x (/.f64 y 500))
4.0ms
x
4.0ms
(/.f64 y 500)
4.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 x (/.f64 y 500))
0.0b1(/.f64 y 500)
Compiler

Compiled 34 to 23 computations (32.4% saved)

regimes29.0ms (0.2%)

Accuracy

Total -48.4b remaining (-360.8%)

Threshold costs -48.4b (-360.8%)

Counts
2 → 5
Calls
Call 1
Inputs
x
(*.f64 1/500 y)
Outputs
(*.f64 1/500 y)
x
(*.f64 1/500 y)
x
(*.f64 1/500 y)
Calls

2 calls:

17.0ms
y
11.0ms
x
Results
ErrorSegmentsBranch
13.9b3x
13.4b5y
Compiler

Compiled 12 to 8 computations (33.3% saved)

bsearch50.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
3.2803769601793356e+67
4.6605012384058716e+75
12.0ms
-4.146507341578303e-24
-8.042826642433648e-29
13.0ms
-3.1026054089976976e+27
-1.0107523240575134e+25
10.0ms
-2.0120334142945284e+134
-1.8059139946292353e+132
Results
42.0ms512×body256valid
Compiler

Compiled 332 to 265 computations (20.2% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02473
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (/.f64 y 500))
(if (<=.f64 y -1850000000000000053958310847878424224922498552726101936314101305895491932888287454614228616570081005729443427168133621493160887713792) (*.f64 1/500 y) (if (<=.f64 y -289999999999999998355832832) x (if (<=.f64 y -1080192345553827/348449143727040986586495598010130648530944) (*.f64 1/500 y) (if (<=.f64 y 45999999999999997110682938782671328722500425045608951502709983281152) x (*.f64 1/500 y)))))
x
Outputs
(+.f64 x (/.f64 y 500))
(if (<=.f64 y -1850000000000000053958310847878424224922498552726101936314101305895491932888287454614228616570081005729443427168133621493160887713792) (*.f64 1/500 y) (if (<=.f64 y -289999999999999998355832832) x (if (<=.f64 y -1080192345553827/348449143727040986586495598010130648530944) (*.f64 1/500 y) (if (<=.f64 y 45999999999999997110682938782671328722500425045608951502709983281152) x (*.f64 1/500 y)))))
x
Compiler

Compiled 39 to 27 computations (30.8% saved)

soundness0.0ms (0%)

end26.0ms (0.2%)

Compiler

Compiled 35 to 23 computations (34.3% saved)

Profiling

Loading profile data...