Fix the inefficient evaluation of translated predicates
[maxima.git] / demo / ezgcd.dem
blob3b720c13b55c3e568c7ebf865fb4a24b835e282d
1 /* ============================================================== */
2 /* file: ezgcd.dem   */
4 nolabels:true$
5 time:all$
6 /* this is the run for case 1 of ez gcd paper. */
8  d:rat(u+y+1,y)$
9  f:(-2+d)*(u+y+2)$
10  g:d*(u^2-3*u*y^2-1)^2$
11 ezgcdswitch:true$
12  gcdswitch:false$
13  gcd(f,g);
14 ezgcdswitch:false$
15  gcd(f,g);
16  gcdswitch:true$
17  gcd(f,g);
19  d:rat(a+u+y+1,y)$
20  f:(-2+d)*(a+u+y+2)$
21  g:d*(u^2-3*u*y^2-1)^2$
22 ezgcdswitch:true$
23  gcdswitch:false$
24  gcd(f,g);
25 ezgcdswitch:false$
26  gcd(f,g);
27  gcdswitch:true$
28  gcd(f,g);
30  d:rat(b+a+u+y+1,y)$
31  f:(-2+d)*(b+a+u+y+2)$
32  g:d*(u^2-3*u*y^2-1)^2$
33 ezgcdswitch:true$
34  gcdswitch:false$
35  gcd(f,g);
36 ezgcdswitch:false$
37  gcd(f,g);
38  gcdswitch:true$
39  gcd(f,g);
41  d:rat(c+b+a+u+y+1,y)$
42  f:(-2+d)*(c+b+a+u+y+2)$
43  g:d*(u^2-3*u*y^2-1)^2$
44 ezgcdswitch:true$
45  gcdswitch:false$
46  gcd(f,g);
47 ezgcdswitch:false$
48  gcd(f,g);
49  gcdswitch:true$
50  gcd(f,g);
56 /* this is the run for case 2. table 1 of ez gcd paper */
58  n:2$
59  d:z^n+y^n+1$
60  f:rat(d*(z^n+y^n-2))$
61  g:rat(d*(z^n+y^n+2))$
62 ezgcdswitch:true$
63  gcdswitch:false$
64  gcd(f,g);
65 ezgcdswitch:false$
66  gcd(f,g);
67  gcdswitch:true$
68  gcd(f,g);
70  n:3$
71  d:z^n+x^n+y^n+1$
72  f:rat(d*(z^n+x^n+y^n-2))$
73  g:rat((z^n+x^n-y^n+2)*d)$
74 ezgcdswitch:true$
75  gcdswitch:false$
76  gcd(f,g);
77 ezgcdswitch:false$
78  gcd(f,g);
79  gcdswitch:true$
80  gcd(f,g);
82  n:4$
83  d:a^n+z^n+x^n+y^n+1$
84  f:rat(d*(a^n+z^n+x^n+y^n-2))$
85  g:rat((a^n+z^n+x^n-y^n+2)*d)$
86 ezgcdswitch:true$
87  gcdswitch:false$
88  gcd(f,g);
89 ezgcdswitch:false$
90  gcd(f,g);
91  gcdswitch:true$
92  gcd(f,g);
94  n:5$
95  d:b^n+a^n+z^n+x^n+y^n+1$
96  f:rat(d*(b^n+a^n+z^n+x^n+y^n-2))$
97  g:rat((b^n+a^n+z^n+x^n-y^n+2)*d)$
98 ezgcdswitch:true$
99  gcdswitch:false$
100  gcd(f,g);
101 ezgcdswitch:false$
102  gcd(f,g);
104  n:6$
105  d:c^n+b^n+a^n+z^n+x^n+y^n+1$
106  f:rat(d*(c^n+b^n+a^n+z^n+x^n+y^n-2))$
107  g:rat((c^n+b^n+a^n+z^n+x^n-y^n+2)*d)$
108 ezgcdswitch:true$
109  gcdswitch:false$
110  gcd(f,g);
111 ezgcdswitch:false$
112  gcd(f,g);
114  n:7$
115  d:p^n+c^n+b^n+a^n+z^n+x^n+y^n+1$
116  f:rat(d*(p^n+c^n+b^n+a^n+z^n+x^n+y^n-2))$
117  g:rat((p^n+c^n+b^n+a^n+z^n+x^n-y^n+2)*d)$
118 ezgcdswitch:true$
119  gcdswitch:false$
120  gcd(f,g);
121 ezgcdswitch:false$
122  gcd(f,g);
128 /* this is the run for case 2, table 2 of ezgcd paper */
130  n:2$
131  d:z^n+y^n+1$
132  f:rat(d*(z^n+y^n-2))$
133  g:rat(d*(z^(n-1)+y^(n-1)+2))$
134 ezgcdswitch:true$
135  gcdswitch:false$
136  gcd(f,g);
137 ezgcdswitch:false$
138  gcd(f,g);
139  gcdswitch:true$
140  gcd(f,g);
142  n:3$
143  d:z^n+x^n+y^n+1$
144  f:rat(d*(z^n+x^n+y^n-2))$
145  g:rat((z^(n-1)+x^(n-1)-y^(n-1)+2)*d)$
146 ezgcdswitch:true$
147  gcdswitch:false$
148  gcd(f,g);
149 ezgcdswitch:false$
150  gcd(f,g);
151  gcdswitch:true$
152  gcd(f,g);
154  n:4$
155  d:a^n+z^n+x^n+y^n+1$
156  f:rat(d*(a^n+z^n+x^n+y^n-2))$
157  g:rat((a^(n-1)+z^(n-1)+x^(n-1)-y^(n-1)+2)*d)$
158 ezgcdswitch:true$
159  gcdswitch:false$
160  gcd(f,g);
161 ezgcdswitch:false$
162  gcd(f,g);
163  gcdswitch:true$
164  gcd(f,g);
166  n:5$
167  d:b^n+a^n+z^n+x^n+y^n+1$
168  f:rat(d*(b^n+a^n+z^n+x^n+y^n-2))$
169  g:rat((b^(n-1)+a^(n-1)+z^(n-1)+x^(n-1)-y^(n-1)+2)*d)$
170 ezgcdswitch:true$
171  gcdswitch:false$
173 gcd(f,g);
174  n:6$
175  d:c^n+b^n+a^n+z^n+x^n+y^n+1$
176  f:rat(d*(c^n+b^n+a^n+z^n+x^n+y^n-2))$
177  g:rat((c^(n-1)+b^(n-1)+a^(n-1)+z^(n-1)+x^(n-1)-y^(n-1)+2)*d)$
178  gcd(f,g);
180  n:7$
181  d:p^n+c^n+b^n+a^n+z^n+x^n+y^n+1$
182  f:rat(d*(p^n+c^n+b^n+a^n+z^n+x^n+y^n-2))$
183  g:rat((p^(n-1)+c^(n-1)+b^(n-1)+a^(n-1)+z^(n-1)+x^(n-1)-y^(n-1)
184 +2)*d)$
185  gcd(f,g);
187 /* i let the rest of file */
191 /* this is the run for case 3 of the ez gcd paper */
193  d:rat(x^2*y^2+1)$
194  f:d*(x*y+2)^2$
195  g:(x^2-y^2-1)*d$
196 ezgcdswitch:true$
197  gcdswitch:false$
198  gcd(f,g);
199 ezgcdswitch:false$
200  gcd(f,g);
201  gcdswitch:true$
202  gcd(f,g);
204  d:rat(a^2+x^2*y^2+1)$
205  f:d*(x*y+a+2)^2$
206  g:(a^2+x^2-y^2-1)*d$
207 ezgcdswitch:true$
208  gcdswitch:false$
209  gcd(f,g);
210 ezgcdswitch:false$
211  gcd(f,g);
212  gcdswitch:true$
213  gcd(f,g);
215  d:rat(b^2+a^2+x^2*y^2+1)$
216  f:d*(x*y+a+b+2)^2$
217  g:(b^2+a^2+x^2-y^2-1)*d$
218 ezgcdswitch:true$
219  gcdswitch:false$
220  gcd(f,g);
221 ezgcdswitch:false$
222  gcd(f,g);
223  gcdswitch:true$
224  gcd(f,g);
226  d:rat(c^2+b^2+a^2+x^2*y^2+1)$
227  f:d*(x*y+a+b+c+2)^2$
228  g:(c^2+b^2+a^2+x^2-y^2-1)*d$
229 ezgcdswitch:true$
230  gcdswitch:false$
231  gcd(f,g);
232 ezgcdswitch:false$
233  gcd(f,g);
234  gcdswitch:true$
235  gcd(f,g);
241 /* this is the run for case 4 of the ez gcd paper */
243  kill(all)$
244  m:1$
245  n:2$
246  a:z-x*y+1$
247  b:z+3*x-y$
248  f:rat(a^m*b^n)$
249  g:rat(a^n*b^m)$
251 ezgcdswitch:true$
252  gcdswitch:false$
253  gcd(f,g);
254 ezgcdswitch:false$
256  gcd(f,g);
257  gcdswitch:true$
259  gcd(f,g);
260 ezgcdswitch:true$
261  gcdswitch:false$
263  kill(all)$
264  m:1$
265  n:3$
266  a:z-x*y+1$
267  b:z+3*x-y$
268  f:rat(a^m*b^n)$
269  g:rat(a^n*b^m)$
271  gcd(f,g);
272 ezgcdswitch:false$
274  gcd(f,g);
275  gcdswitch:true$
277  gcd(f,g);
278 ezgcdswitch:true$
279  gcdswitch:false$
281  kill(all)$
282  m:1$
283  n:4$
284  a:z-x*y+1$
285  b:z+3*x-y$
286  f:rat(a^m*b^n)$
287  g:rat(a^n*b^m)$
289  gcd(f,g);
290 ezgcdswitch:false$
292  gcd(f,g);
293  gcdswitch:true$
294  gcd(f,g);
295 ezgcdswitch:true$
296  gcdswitch:false$
298  kill(all)$
299  m:2$
300  n:4$
301  a:z-x*y+1$
302  b:z+3*x-y$
303  f:rat(a^m*b^n)$
304  g:rat(a^n*b^m)$
306  gcd(f,g);
307 ezgcdswitch:false$
309  gcd(f,g);
310  gcdswitch:true$
312  gcd(f,g);
313 ezgcdswitch:true$
314  gcdswitch:false$
318 /* this is the run for case 5 of the ez gcd paper */
319  kill(all)$
320  d:rat((z+1)*(y+1)-3)$
321  f:d*(z-2)*(y-2)$
322  g:d*(z+2)*(y+2)$
324  gcd(f,g);
325 ezgcdswitch:false$
327  gcd(f,g);
328  gcdswitch:true$
330  gcd(f,g);
331 ezgcdswitch:true$
332  gcdswitch:false$
333  kill(all)$
334  d:rat((z+1)*(y+1)*(x+1)-3)$
335  f:d*(z-2)*(y-2)*(x-2)$
336  g:d*(z+2)*(y+2)*(x+2)$
338  gcd(f,g);
339 ezgcdswitch:false$
341  gcd(f,g);
342  gcdswitch:true$
344  gcd(f,g);
345 ezgcdswitch:true$
346  gcdswitch:false$
347  kill(all)$
348  d:rat((z+1)*(y+1)*(x+1)*(a+1)-3)$
349  f:d*(z-2)*(y-2)*(x-2)*(a-2)$
350  g:d*(z+2)*(y+2)*(x+2)*(a+2)$
352  gcd(f,g);
353 ezgcdswitch:false$
355  gcd(f,g);
356  gcdswitch:true$
358  gcd(f,g);
359 ezgcdswitch:true$
360  gcdswitch:false$
361  kill(all)$
362  d:rat((z+1)*(y+1)*(x+1)*(a+1)*(b+1)-3)$
363  f:d*(z-2)*(y-2)*(x-2)*(a-2)*(b-2)$
364  g:d*(z+2)*(y+2)*(x+2)*(a+2)*(b+2)$
366  gcd(f,g);
367 ezgcdswitch:false$
369  gcd(f,g);
370  gcdswitch:true$
372  gcd(f,g);
373 ezgcdswitch:true$
374  gcdswitch:false$