]> www.ginac.de Git - ginac.git/blob - cint/dummies.h
several more workarounds to make cint work with ginac
[ginac.git] / cint / dummies.h
1 /*  dummies.h
2  *
3  *  Dummies and wrappers to overcome certain deficiencies of Cint.
4  *  This file was generated automatically by dummies.pl.
5  *  Please do not modify it directly, edit the perl script instead!
6  */
7
8 // fixes for function sin(x)
9 inline function sin(symbol const & x) { return sin(ex(x)); }
10 inline function sin(function const & x) { return sin(ex(x)); }
11 inline function sin(constant const & x) { return sin(ex(x)); }
12 inline function sin(idx const & x) { return sin(ex(x)); }
13 inline function sin(lorentzidx const & x) { return sin(ex(x)); }
14 inline function sin(coloridx const & x) { return sin(ex(x)); }
15
16 // fixes for function cos(x)
17 inline function cos(symbol const & x) { return cos(ex(x)); }
18 inline function cos(function const & x) { return cos(ex(x)); }
19 inline function cos(constant const & x) { return cos(ex(x)); }
20 inline function cos(idx const & x) { return cos(ex(x)); }
21 inline function cos(lorentzidx const & x) { return cos(ex(x)); }
22 inline function cos(coloridx const & x) { return cos(ex(x)); }
23
24 // fixes for function tan(x)
25 inline function tan(symbol const & x) { return tan(ex(x)); }
26 inline function tan(function const & x) { return tan(ex(x)); }
27 inline function tan(constant const & x) { return tan(ex(x)); }
28 inline function tan(idx const & x) { return tan(ex(x)); }
29 inline function tan(lorentzidx const & x) { return tan(ex(x)); }
30 inline function tan(coloridx const & x) { return tan(ex(x)); }
31
32 // fixes for function asin(x)
33 inline function asin(symbol const & x) { return asin(ex(x)); }
34 inline function asin(function const & x) { return asin(ex(x)); }
35 inline function asin(constant const & x) { return asin(ex(x)); }
36 inline function asin(idx const & x) { return asin(ex(x)); }
37 inline function asin(lorentzidx const & x) { return asin(ex(x)); }
38 inline function asin(coloridx const & x) { return asin(ex(x)); }
39
40 // fixes for function acos(x)
41 inline function acos(symbol const & x) { return acos(ex(x)); }
42 inline function acos(function const & x) { return acos(ex(x)); }
43 inline function acos(constant const & x) { return acos(ex(x)); }
44 inline function acos(idx const & x) { return acos(ex(x)); }
45 inline function acos(lorentzidx const & x) { return acos(ex(x)); }
46 inline function acos(coloridx const & x) { return acos(ex(x)); }
47
48 // fixes for function atan(x)
49 inline function atan(symbol const & x) { return atan(ex(x)); }
50 inline function atan(function const & x) { return atan(ex(x)); }
51 inline function atan(constant const & x) { return atan(ex(x)); }
52 inline function atan(idx const & x) { return atan(ex(x)); }
53 inline function atan(lorentzidx const & x) { return atan(ex(x)); }
54 inline function atan(coloridx const & x) { return atan(ex(x)); }
55
56 // fixes for function exp(x)
57 inline function exp(symbol const & x) { return exp(ex(x)); }
58 inline function exp(function const & x) { return exp(ex(x)); }
59 inline function exp(constant const & x) { return exp(ex(x)); }
60 inline function exp(idx const & x) { return exp(ex(x)); }
61 inline function exp(lorentzidx const & x) { return exp(ex(x)); }
62 inline function exp(coloridx const & x) { return exp(ex(x)); }
63
64 // fixes for function log(x)
65 inline function log(symbol const & x) { return log(ex(x)); }
66 inline function log(function const & x) { return log(ex(x)); }
67 inline function log(constant const & x) { return log(ex(x)); }
68 inline function log(idx const & x) { return log(ex(x)); }
69 inline function log(lorentzidx const & x) { return log(ex(x)); }
70 inline function log(coloridx const & x) { return log(ex(x)); }
71
72 // fixes for function sinh(x)
73 inline function sinh(symbol const & x) { return sinh(ex(x)); }
74 inline function sinh(function const & x) { return sinh(ex(x)); }
75 inline function sinh(constant const & x) { return sinh(ex(x)); }
76 inline function sinh(idx const & x) { return sinh(ex(x)); }
77 inline function sinh(lorentzidx const & x) { return sinh(ex(x)); }
78 inline function sinh(coloridx const & x) { return sinh(ex(x)); }
79
80 // fixes for function cosh(x)
81 inline function cosh(symbol const & x) { return cosh(ex(x)); }
82 inline function cosh(function const & x) { return cosh(ex(x)); }
83 inline function cosh(constant const & x) { return cosh(ex(x)); }
84 inline function cosh(idx const & x) { return cosh(ex(x)); }
85 inline function cosh(lorentzidx const & x) { return cosh(ex(x)); }
86 inline function cosh(coloridx const & x) { return cosh(ex(x)); }
87
88 // fixes for function tanh(x)
89 inline function tanh(symbol const & x) { return tanh(ex(x)); }
90 inline function tanh(function const & x) { return tanh(ex(x)); }
91 inline function tanh(constant const & x) { return tanh(ex(x)); }
92 inline function tanh(idx const & x) { return tanh(ex(x)); }
93 inline function tanh(lorentzidx const & x) { return tanh(ex(x)); }
94 inline function tanh(coloridx const & x) { return tanh(ex(x)); }
95
96 // fixes for function abs(x)
97 inline function abs(symbol const & x) { return abs(ex(x)); }
98 inline function abs(function const & x) { return abs(ex(x)); }
99 inline function abs(constant const & x) { return abs(ex(x)); }
100 inline function abs(idx const & x) { return abs(ex(x)); }
101 inline function abs(lorentzidx const & x) { return abs(ex(x)); }
102 inline function abs(coloridx const & x) { return abs(ex(x)); }
103
104 // fixes for ex sqrt(x)
105 inline ex sqrt(symbol const & x) { return sqrt(ex(x)); }
106 inline ex sqrt(function const & x) { return sqrt(ex(x)); }
107 inline ex sqrt(constant const & x) { return sqrt(ex(x)); }
108 inline ex sqrt(idx const & x) { return sqrt(ex(x)); }
109 inline ex sqrt(lorentzidx const & x) { return sqrt(ex(x)); }
110 inline ex sqrt(coloridx const & x) { return sqrt(ex(x)); }
111
112 // fixes for function atan2(x,y)
113 inline function atan2(symbol const & x,symbol const & y) {
114     return atan2(ex(x),ex(y));
115 }
116 inline function atan2(symbol const & x,function const & y) {
117     return atan2(ex(x),ex(y));
118 }
119 inline function atan2(symbol const & x,constant const & y) {
120     return atan2(ex(x),ex(y));
121 }
122 inline function atan2(symbol const & x,idx const & y) {
123     return atan2(ex(x),ex(y));
124 }
125 inline function atan2(symbol const & x,lorentzidx const & y) {
126     return atan2(ex(x),ex(y));
127 }
128 inline function atan2(symbol const & x,coloridx const & y) {
129     return atan2(ex(x),ex(y));
130 }
131 inline function atan2(function const & x,symbol const & y) {
132     return atan2(ex(x),ex(y));
133 }
134 inline function atan2(function const & x,function const & y) {
135     return atan2(ex(x),ex(y));
136 }
137 inline function atan2(function const & x,constant const & y) {
138     return atan2(ex(x),ex(y));
139 }
140 inline function atan2(function const & x,idx const & y) {
141     return atan2(ex(x),ex(y));
142 }
143 inline function atan2(function const & x,lorentzidx const & y) {
144     return atan2(ex(x),ex(y));
145 }
146 inline function atan2(function const & x,coloridx const & y) {
147     return atan2(ex(x),ex(y));
148 }
149 inline function atan2(constant const & x,symbol const & y) {
150     return atan2(ex(x),ex(y));
151 }
152 inline function atan2(constant const & x,function const & y) {
153     return atan2(ex(x),ex(y));
154 }
155 inline function atan2(constant const & x,constant const & y) {
156     return atan2(ex(x),ex(y));
157 }
158 inline function atan2(constant const & x,idx const & y) {
159     return atan2(ex(x),ex(y));
160 }
161 inline function atan2(constant const & x,lorentzidx const & y) {
162     return atan2(ex(x),ex(y));
163 }
164 inline function atan2(constant const & x,coloridx const & y) {
165     return atan2(ex(x),ex(y));
166 }
167 inline function atan2(idx const & x,symbol const & y) {
168     return atan2(ex(x),ex(y));
169 }
170 inline function atan2(idx const & x,function const & y) {
171     return atan2(ex(x),ex(y));
172 }
173 inline function atan2(idx const & x,constant const & y) {
174     return atan2(ex(x),ex(y));
175 }
176 inline function atan2(idx const & x,idx const & y) {
177     return atan2(ex(x),ex(y));
178 }
179 inline function atan2(idx const & x,lorentzidx const & y) {
180     return atan2(ex(x),ex(y));
181 }
182 inline function atan2(idx const & x,coloridx const & y) {
183     return atan2(ex(x),ex(y));
184 }
185 inline function atan2(lorentzidx const & x,symbol const & y) {
186     return atan2(ex(x),ex(y));
187 }
188 inline function atan2(lorentzidx const & x,function const & y) {
189     return atan2(ex(x),ex(y));
190 }
191 inline function atan2(lorentzidx const & x,constant const & y) {
192     return atan2(ex(x),ex(y));
193 }
194 inline function atan2(lorentzidx const & x,idx const & y) {
195     return atan2(ex(x),ex(y));
196 }
197 inline function atan2(lorentzidx const & x,lorentzidx const & y) {
198     return atan2(ex(x),ex(y));
199 }
200 inline function atan2(lorentzidx const & x,coloridx const & y) {
201     return atan2(ex(x),ex(y));
202 }
203 inline function atan2(coloridx const & x,symbol const & y) {
204     return atan2(ex(x),ex(y));
205 }
206 inline function atan2(coloridx const & x,function const & y) {
207     return atan2(ex(x),ex(y));
208 }
209 inline function atan2(coloridx const & x,constant const & y) {
210     return atan2(ex(x),ex(y));
211 }
212 inline function atan2(coloridx const & x,idx const & y) {
213     return atan2(ex(x),ex(y));
214 }
215 inline function atan2(coloridx const & x,lorentzidx const & y) {
216     return atan2(ex(x),ex(y));
217 }
218 inline function atan2(coloridx const & x,coloridx const & y) {
219     return atan2(ex(x),ex(y));
220 }
221 inline function atan2(symbol const & x,numeric const & y) {
222     return atan2(ex(x),ex(y));
223 }
224 inline function atan2(symbol const & x,int const & y) {
225     return atan2(ex(x),ex(y));
226 }
227 inline function atan2(symbol const & x,double const & y) {
228     return atan2(ex(x),ex(y));
229 }
230 inline function atan2(function const & x,numeric const & y) {
231     return atan2(ex(x),ex(y));
232 }
233 inline function atan2(function const & x,int const & y) {
234     return atan2(ex(x),ex(y));
235 }
236 inline function atan2(function const & x,double const & y) {
237     return atan2(ex(x),ex(y));
238 }
239 inline function atan2(constant const & x,numeric const & y) {
240     return atan2(ex(x),ex(y));
241 }
242 inline function atan2(constant const & x,int const & y) {
243     return atan2(ex(x),ex(y));
244 }
245 inline function atan2(constant const & x,double const & y) {
246     return atan2(ex(x),ex(y));
247 }
248 inline function atan2(idx const & x,numeric const & y) {
249     return atan2(ex(x),ex(y));
250 }
251 inline function atan2(idx const & x,int const & y) {
252     return atan2(ex(x),ex(y));
253 }
254 inline function atan2(idx const & x,double const & y) {
255     return atan2(ex(x),ex(y));
256 }
257 inline function atan2(lorentzidx const & x,numeric const & y) {
258     return atan2(ex(x),ex(y));
259 }
260 inline function atan2(lorentzidx const & x,int const & y) {
261     return atan2(ex(x),ex(y));
262 }
263 inline function atan2(lorentzidx const & x,double const & y) {
264     return atan2(ex(x),ex(y));
265 }
266 inline function atan2(coloridx const & x,numeric const & y) {
267     return atan2(ex(x),ex(y));
268 }
269 inline function atan2(coloridx const & x,int const & y) {
270     return atan2(ex(x),ex(y));
271 }
272 inline function atan2(coloridx const & x,double const & y) {
273     return atan2(ex(x),ex(y));
274 }
275 inline function atan2(numeric const & x,symbol const & y) {
276     return atan2(ex(x),ex(y));
277 }
278 inline function atan2(numeric const & x,function const & y) {
279     return atan2(ex(x),ex(y));
280 }
281 inline function atan2(numeric const & x,constant const & y) {
282     return atan2(ex(x),ex(y));
283 }
284 inline function atan2(numeric const & x,idx const & y) {
285     return atan2(ex(x),ex(y));
286 }
287 inline function atan2(numeric const & x,lorentzidx const & y) {
288     return atan2(ex(x),ex(y));
289 }
290 inline function atan2(numeric const & x,coloridx const & y) {
291     return atan2(ex(x),ex(y));
292 }
293 inline function atan2(int const & x,symbol const & y) {
294     return atan2(ex(x),ex(y));
295 }
296 inline function atan2(int const & x,function const & y) {
297     return atan2(ex(x),ex(y));
298 }
299 inline function atan2(int const & x,constant const & y) {
300     return atan2(ex(x),ex(y));
301 }
302 inline function atan2(int const & x,idx const & y) {
303     return atan2(ex(x),ex(y));
304 }
305 inline function atan2(int const & x,lorentzidx const & y) {
306     return atan2(ex(x),ex(y));
307 }
308 inline function atan2(int const & x,coloridx const & y) {
309     return atan2(ex(x),ex(y));
310 }
311 inline function atan2(double const & x,symbol const & y) {
312     return atan2(ex(x),ex(y));
313 }
314 inline function atan2(double const & x,function const & y) {
315     return atan2(ex(x),ex(y));
316 }
317 inline function atan2(double const & x,constant const & y) {
318     return atan2(ex(x),ex(y));
319 }
320 inline function atan2(double const & x,idx const & y) {
321     return atan2(ex(x),ex(y));
322 }
323 inline function atan2(double const & x,lorentzidx const & y) {
324     return atan2(ex(x),ex(y));
325 }
326 inline function atan2(double const & x,coloridx const & y) {
327     return atan2(ex(x),ex(y));
328 }
329 inline function atan2(ex const & x,numeric const & y) {
330     return atan2(ex(x),ex(y));
331 }
332 inline function atan2(ex const & x,int const & y) {
333     return atan2(ex(x),ex(y));
334 }
335 inline function atan2(ex const & x,double const & y) {
336     return atan2(ex(x),ex(y));
337 }
338 inline function atan2(numeric const & x,ex const & y) {
339     return atan2(ex(x),ex(y));
340 }
341 inline function atan2(int const & x,ex const & y) {
342     return atan2(ex(x),ex(y));
343 }
344 inline function atan2(double const & x,ex const & y) {
345     return atan2(ex(x),ex(y));
346 }
347
348 // fixes for ex pow(x,y)
349 inline ex pow(symbol const & x,symbol const & y) {
350     return pow(ex(x),ex(y));
351 }
352 inline ex pow(symbol const & x,function const & y) {
353     return pow(ex(x),ex(y));
354 }
355 inline ex pow(symbol const & x,constant const & y) {
356     return pow(ex(x),ex(y));
357 }
358 inline ex pow(symbol const & x,idx const & y) {
359     return pow(ex(x),ex(y));
360 }
361 inline ex pow(symbol const & x,lorentzidx const & y) {
362     return pow(ex(x),ex(y));
363 }
364 inline ex pow(symbol const & x,coloridx const & y) {
365     return pow(ex(x),ex(y));
366 }
367 inline ex pow(function const & x,symbol const & y) {
368     return pow(ex(x),ex(y));
369 }
370 inline ex pow(function const & x,function const & y) {
371     return pow(ex(x),ex(y));
372 }
373 inline ex pow(function const & x,constant const & y) {
374     return pow(ex(x),ex(y));
375 }
376 inline ex pow(function const & x,idx const & y) {
377     return pow(ex(x),ex(y));
378 }
379 inline ex pow(function const & x,lorentzidx const & y) {
380     return pow(ex(x),ex(y));
381 }
382 inline ex pow(function const & x,coloridx const & y) {
383     return pow(ex(x),ex(y));
384 }
385 inline ex pow(constant const & x,symbol const & y) {
386     return pow(ex(x),ex(y));
387 }
388 inline ex pow(constant const & x,function const & y) {
389     return pow(ex(x),ex(y));
390 }
391 inline ex pow(constant const & x,constant const & y) {
392     return pow(ex(x),ex(y));
393 }
394 inline ex pow(constant const & x,idx const & y) {
395     return pow(ex(x),ex(y));
396 }
397 inline ex pow(constant const & x,lorentzidx const & y) {
398     return pow(ex(x),ex(y));
399 }
400 inline ex pow(constant const & x,coloridx const & y) {
401     return pow(ex(x),ex(y));
402 }
403 inline ex pow(idx const & x,symbol const & y) {
404     return pow(ex(x),ex(y));
405 }
406 inline ex pow(idx const & x,function const & y) {
407     return pow(ex(x),ex(y));
408 }
409 inline ex pow(idx const & x,constant const & y) {
410     return pow(ex(x),ex(y));
411 }
412 inline ex pow(idx const & x,idx const & y) {
413     return pow(ex(x),ex(y));
414 }
415 inline ex pow(idx const & x,lorentzidx const & y) {
416     return pow(ex(x),ex(y));
417 }
418 inline ex pow(idx const & x,coloridx const & y) {
419     return pow(ex(x),ex(y));
420 }
421 inline ex pow(lorentzidx const & x,symbol const & y) {
422     return pow(ex(x),ex(y));
423 }
424 inline ex pow(lorentzidx const & x,function const & y) {
425     return pow(ex(x),ex(y));
426 }
427 inline ex pow(lorentzidx const & x,constant const & y) {
428     return pow(ex(x),ex(y));
429 }
430 inline ex pow(lorentzidx const & x,idx const & y) {
431     return pow(ex(x),ex(y));
432 }
433 inline ex pow(lorentzidx const & x,lorentzidx const & y) {
434     return pow(ex(x),ex(y));
435 }
436 inline ex pow(lorentzidx const & x,coloridx const & y) {
437     return pow(ex(x),ex(y));
438 }
439 inline ex pow(coloridx const & x,symbol const & y) {
440     return pow(ex(x),ex(y));
441 }
442 inline ex pow(coloridx const & x,function const & y) {
443     return pow(ex(x),ex(y));
444 }
445 inline ex pow(coloridx const & x,constant const & y) {
446     return pow(ex(x),ex(y));
447 }
448 inline ex pow(coloridx const & x,idx const & y) {
449     return pow(ex(x),ex(y));
450 }
451 inline ex pow(coloridx const & x,lorentzidx const & y) {
452     return pow(ex(x),ex(y));
453 }
454 inline ex pow(coloridx const & x,coloridx const & y) {
455     return pow(ex(x),ex(y));
456 }
457 inline ex pow(symbol const & x,numeric const & y) {
458     return pow(ex(x),ex(y));
459 }
460 inline ex pow(symbol const & x,int const & y) {
461     return pow(ex(x),ex(y));
462 }
463 inline ex pow(symbol const & x,double const & y) {
464     return pow(ex(x),ex(y));
465 }
466 inline ex pow(function const & x,numeric const & y) {
467     return pow(ex(x),ex(y));
468 }
469 inline ex pow(function const & x,int const & y) {
470     return pow(ex(x),ex(y));
471 }
472 inline ex pow(function const & x,double const & y) {
473     return pow(ex(x),ex(y));
474 }
475 inline ex pow(constant const & x,numeric const & y) {
476     return pow(ex(x),ex(y));
477 }
478 inline ex pow(constant const & x,int const & y) {
479     return pow(ex(x),ex(y));
480 }
481 inline ex pow(constant const & x,double const & y) {
482     return pow(ex(x),ex(y));
483 }
484 inline ex pow(idx const & x,numeric const & y) {
485     return pow(ex(x),ex(y));
486 }
487 inline ex pow(idx const & x,int const & y) {
488     return pow(ex(x),ex(y));
489 }
490 inline ex pow(idx const & x,double const & y) {
491     return pow(ex(x),ex(y));
492 }
493 inline ex pow(lorentzidx const & x,numeric const & y) {
494     return pow(ex(x),ex(y));
495 }
496 inline ex pow(lorentzidx const & x,int const & y) {
497     return pow(ex(x),ex(y));
498 }
499 inline ex pow(lorentzidx const & x,double const & y) {
500     return pow(ex(x),ex(y));
501 }
502 inline ex pow(coloridx const & x,numeric const & y) {
503     return pow(ex(x),ex(y));
504 }
505 inline ex pow(coloridx const & x,int const & y) {
506     return pow(ex(x),ex(y));
507 }
508 inline ex pow(coloridx const & x,double const & y) {
509     return pow(ex(x),ex(y));
510 }
511 inline ex pow(numeric const & x,symbol const & y) {
512     return pow(ex(x),ex(y));
513 }
514 inline ex pow(numeric const & x,function const & y) {
515     return pow(ex(x),ex(y));
516 }
517 inline ex pow(numeric const & x,constant const & y) {
518     return pow(ex(x),ex(y));
519 }
520 inline ex pow(numeric const & x,idx const & y) {
521     return pow(ex(x),ex(y));
522 }
523 inline ex pow(numeric const & x,lorentzidx const & y) {
524     return pow(ex(x),ex(y));
525 }
526 inline ex pow(numeric const & x,coloridx const & y) {
527     return pow(ex(x),ex(y));
528 }
529 inline ex pow(int const & x,symbol const & y) {
530     return pow(ex(x),ex(y));
531 }
532 inline ex pow(int const & x,function const & y) {
533     return pow(ex(x),ex(y));
534 }
535 inline ex pow(int const & x,constant const & y) {
536     return pow(ex(x),ex(y));
537 }
538 inline ex pow(int const & x,idx const & y) {
539     return pow(ex(x),ex(y));
540 }
541 inline ex pow(int const & x,lorentzidx const & y) {
542     return pow(ex(x),ex(y));
543 }
544 inline ex pow(int const & x,coloridx const & y) {
545     return pow(ex(x),ex(y));
546 }
547 inline ex pow(double const & x,symbol const & y) {
548     return pow(ex(x),ex(y));
549 }
550 inline ex pow(double const & x,function const & y) {
551     return pow(ex(x),ex(y));
552 }
553 inline ex pow(double const & x,constant const & y) {
554     return pow(ex(x),ex(y));
555 }
556 inline ex pow(double const & x,idx const & y) {
557     return pow(ex(x),ex(y));
558 }
559 inline ex pow(double const & x,lorentzidx const & y) {
560     return pow(ex(x),ex(y));
561 }
562 inline ex pow(double const & x,coloridx const & y) {
563     return pow(ex(x),ex(y));
564 }
565 inline ex pow(ex const & x,numeric const & y) {
566     return pow(ex(x),ex(y));
567 }
568 inline ex pow(ex const & x,int const & y) {
569     return pow(ex(x),ex(y));
570 }
571 inline ex pow(ex const & x,double const & y) {
572     return pow(ex(x),ex(y));
573 }
574 inline ex pow(numeric const & x,ex const & y) {
575     return pow(ex(x),ex(y));
576 }
577 inline ex pow(int const & x,ex const & y) {
578     return pow(ex(x),ex(y));
579 }
580 inline ex pow(double const & x,ex const & y) {
581     return pow(ex(x),ex(y));
582 }
583
584 // fixes for ex operator+(x,y)
585 inline ex operator+(ex const & x, basic const & y) {
586     return operator+((x),ex(y));
587 }
588 inline ex operator+(basic const & x, ex const & y) {
589     return operator+(ex(x),(y));
590 }
591 inline ex operator+(basic const & x, basic const & y) {
592     return operator+(ex(x),ex(y));
593 }
594
595 // fixes for ex operator-(x,y)
596 inline ex operator-(ex const & x, basic const & y) {
597     return operator-((x),ex(y));
598 }
599 inline ex operator-(basic const & x, ex const & y) {
600     return operator-(ex(x),(y));
601 }
602 inline ex operator-(basic const & x, basic const & y) {
603     return operator-(ex(x),ex(y));
604 }
605
606 // fixes for ex operator*(x,y)
607 inline ex operator*(ex const & x, basic const & y) {
608     return operator*((x),ex(y));
609 }
610 inline ex operator*(basic const & x, ex const & y) {
611     return operator*(ex(x),(y));
612 }
613 inline ex operator*(basic const & x, basic const & y) {
614     return operator*(ex(x),ex(y));
615 }
616
617 // fixes for ex operator/(x,y)
618 inline ex operator/(ex const & x, basic const & y) {
619     return operator/((x),ex(y));
620 }
621 inline ex operator/(basic const & x, ex const & y) {
622     return operator/(ex(x),(y));
623 }
624 inline ex operator/(basic const & x, basic const & y) {
625     return operator/(ex(x),ex(y));
626 }
627
628 // fixes for ex operator%(x,y)
629 inline ex operator%(ex const & x, basic const & y) {
630     return operator%((x),ex(y));
631 }
632 inline ex operator%(basic const & x, ex const & y) {
633     return operator%(ex(x),(y));
634 }
635 inline ex operator%(basic const & x, basic const & y) {
636     return operator%(ex(x),ex(y));
637 }
638
639 // fixes for relational operator==(x,y)
640 inline relational operator==(ex const & x, basic const & y) {
641     return operator==((x),ex(y));
642 }
643 inline relational operator==(basic const & x, ex const & y) {
644     return operator==(ex(x),(y));
645 }
646 inline relational operator==(basic const & x, basic const & y) {
647     return operator==(ex(x),ex(y));
648 }
649
650 // fixes for relational operator!=(x,y)
651 inline relational operator!=(ex const & x, basic const & y) {
652     return operator!=((x),ex(y));
653 }
654 inline relational operator!=(basic const & x, ex const & y) {
655     return operator!=(ex(x),(y));
656 }
657 inline relational operator!=(basic const & x, basic const & y) {
658     return operator!=(ex(x),ex(y));
659 }
660
661 // fixes for relational operator<(x,y)
662 inline relational operator<(ex const & x, basic const & y) {
663     return operator<((x),ex(y));
664 }
665 inline relational operator<(basic const & x, ex const & y) {
666     return operator<(ex(x),(y));
667 }
668 inline relational operator<(basic const & x, basic const & y) {
669     return operator<(ex(x),ex(y));
670 }
671
672 // fixes for relational operator<=(x,y)
673 inline relational operator<=(ex const & x, basic const & y) {
674     return operator<=((x),ex(y));
675 }
676 inline relational operator<=(basic const & x, ex const & y) {
677     return operator<=(ex(x),(y));
678 }
679 inline relational operator<=(basic const & x, basic const & y) {
680     return operator<=(ex(x),ex(y));
681 }
682
683 // fixes for relational operator>(x,y)
684 inline relational operator>(ex const & x, basic const & y) {
685     return operator>((x),ex(y));
686 }
687 inline relational operator>(basic const & x, ex const & y) {
688     return operator>(ex(x),(y));
689 }
690 inline relational operator>(basic const & x, basic const & y) {
691     return operator>(ex(x),ex(y));
692 }
693
694 // fixes for relational operator>=(x,y)
695 inline relational operator>=(ex const & x, basic const & y) {
696     return operator>=((x),ex(y));
697 }
698 inline relational operator>=(basic const & x, ex const & y) {
699     return operator>=(ex(x),(y));
700 }
701 inline relational operator>=(basic const & x, basic const & y) {
702     return operator>=(ex(x),ex(y));
703 }
704
705 // fixes for ex const & operator+=(x,y)
706 inline ex const & operator+=(ex & x, basic const & y) {
707     return operator+=((x),ex(y));
708 }
709 // fixes for ex const & operator-=(x,y)
710 inline ex const & operator-=(ex & x, basic const & y) {
711     return operator-=((x),ex(y));
712 }
713 // fixes for ex const & operator*=(x,y)
714 inline ex const & operator*=(ex & x, basic const & y) {
715     return operator*=((x),ex(y));
716 }
717 // fixes for ex const & operator/=(x,y)
718 inline ex const & operator/=(ex & x, basic const & y) {
719     return operator/=((x),ex(y));
720 }
721 // fixes for other operators
722 inline ex operator+(basic const & x) {
723     return operator+(ex(x));
724 }
725 inline ex operator-(basic const & x) {
726     return operator-(ex(x));
727 }
728 inline ostream & operator<<(ostream & os, basic const & x) {
729     return operator<<(os,ex(x));
730 }
731 // fixes for functions
732 // fixes for bool are_ex_trivially_equal(x,y)
733 inline bool are_ex_trivially_equal(ex const & x, basic const & y) {
734     return are_ex_trivially_equal((x),ex(y));
735 }
736 inline bool are_ex_trivially_equal(basic const & x, ex const & y) {
737     return are_ex_trivially_equal(ex(x),(y));
738 }
739 inline bool are_ex_trivially_equal(basic const & x, basic const & y) {
740     return are_ex_trivially_equal(ex(x),ex(y));
741 }
742
743 inline unsigned nops(basic const & x) {
744     return nops(ex(x));
745 }
746 inline ex expand(basic const & x) {
747     return expand(ex(x));
748 }
749 // fixes for bool has(x,y)
750 inline bool has(ex const & x, basic const & y) {
751     return has((x),ex(y));
752 }
753 inline bool has(basic const & x, ex const & y) {
754     return has(ex(x),(y));
755 }
756 inline bool has(basic const & x, basic const & y) {
757     return has(ex(x),ex(y));
758 }
759
760 inline int degree(basic const & x, symbol const & y) {
761     return degree(ex(x),(y));
762 }
763 inline int ldegree(basic const & x, symbol const & y) {
764     return ldegree(ex(x),(y));
765 }
766 inline ex coeff(basic const & x, symbol const & y, int z=1) {
767     return coeff(ex(x),(y),z);
768 }
769 inline ex numer(basic const & x) {
770     return numer(ex(x));
771 }
772 inline ex denom(basic const & x) {
773     return denom(ex(x));
774 }
775 inline ex normal(basic const & x, int y=0) {
776     return normal(ex(x),y);
777 }
778 inline ex collect(basic const & x, symbol const & y) {
779     return collect(ex(x),(y));
780 }
781 inline ex eval(basic const & x, int y=0) {
782     return eval(ex(x),y);
783 }
784 inline ex evalf(basic const & x, int y=0) {
785     return evalf(ex(x),y);
786 }
787 inline ex diff(basic const & x, symbol const & y, int z=1) {
788     return diff(ex(x),(y),z);
789 }
790 inline ex series(basic const & x, symbol const & y, ex const & z, int zz=6) {
791     return series(ex(x),(y),(z),zz);
792 }
793 inline ex series(ex const & x, symbol const & y, basic const & z, int zz=6) {
794     return series(ex(x),(y),ex(z),zz);
795 }
796 inline ex series(basic const & x, symbol const & y, basic const & z, int zz=6) {
797     return series(ex(x),(y),ex(z),zz);
798 }
799 // fixes for ex subs(x,y)
800 inline ex subs(ex const & x, basic const & y) {
801     return subs((x),ex(y));
802 }
803 inline ex subs(basic const & x, ex const & y) {
804     return subs(ex(x),(y));
805 }
806 inline ex subs(basic const & x, basic const & y) {
807     return subs(ex(x),ex(y));
808 }
809
810 inline ex subs(basic const & x, lst const & y, lst const & z) {
811     return subs(ex(x),(y),(z));
812 }
813 inline ex op(basic const & x, int y) {
814     return op(ex(x),(y));
815 }
816 inline ex lhs(basic const & x) {
817     return lhs(ex(x));
818 }
819 inline ex rhs(basic const & x) {
820     return rhs(ex(x));
821 }
822 inline bool is_zero(basic const & x) {
823     return is_zero(ex(x));
824 }
825 // fixes for simp_lor lor_g(x,y)
826 inline simp_lor lor_g(ex const & x, basic const & y) {
827     return lor_g((x),ex(y));
828 }
829 inline simp_lor lor_g(basic const & x, ex const & y) {
830     return lor_g(ex(x),(y));
831 }
832 inline simp_lor lor_g(basic const & x, basic const & y) {
833     return lor_g(ex(x),ex(y));
834 }
835
836 inline simp_lor lor_vec(const string & x, const basic & y) {
837     return lor_vec((x),ex(y));
838 }