C Last 1. Left, Right, First and Last option in substitutions. C Last 2. Multiple dummy: string of function arguments as dummy. C Last 3. Production of X/D expressions. Must use name XDexpr.e for output. C Last 4. Use of generated X/D expressions. C Last 5. Superflags. C Last 6. Inverting terms. C Last 7. Expression in brackets as function arguments crossing * lines. C Last 8. Chaining functions on the basis of indices. C Last 9. Reversing order of selected function arguments. C Last 10. Options Commu command. C Last 11. Options Order command. C Last 12. Groups for cyclic command. C Last 13. Name lists in Cyclic, Symme etc. commands. C Last 14. Use of rational numbers as function arguments. *end C Last 1. Left, Right, First and Last option in substitutions. F f1,f2,f3,f4,f5,f10 Z xx=3*f1*aa IF aa=f10 Id,Addfa,f2 Id,Left,Addfa,f3 Id,Right,Addfa,f4 Id,First,Addfa,f5 ENDIF *begin F f1,f2,f3,f4,f5,ff *fix Z xx=f1*f2*f3*f4*f5 Id,Ainbe,f2*f4=ff *begin Z xx=f1*f2*f3*f4*f5 Id,Left,Ainbe,f2*f4=ff *begin Z xx=f1*f2*f3*f4*f5 Id,Right,Ainbe,f2*f4=ff *begin Z xx=f1*f2*f3*f4*f5 Id,First,Ainbe,f2*f4=ff *begin Z xx=f1*f2*f3*f4*f5 Id,Last,Ainbe,f2*f4=ff *end C Last 2. Multiple dummy: string of function arguments as dummy. F f1,f2,f3,ff2 V p,q I mu A a,b,c,d,e,f,ff,a1,a2,a3 Z xx = f1(a1,b,c,d,e,f,ff,b,c,d,e,f)* f3(a1,b) + a1*f1(a1,ff)*p(mu) Id,f1(a~,b?,ff,b?)*f3(a~,b)=f2(f,b,ff,c) Id,f1(a~,b?,ff)=ff2(ff,b) Id,p(mu~)=q(mu) *begin F f1,f2,f3,f4,f5,f6,ff2 V p,q I mu A a,b,c,d,e,f,ff,a1,a2,a3 Z xx = f1(a)*f2(b)*f3(c)*f4(d)*f5(e)*f6(f) + f1(a)*a1*p(mu) Id,First,Ainbe,f2(b)*f4(d)=ff2(a,b) Id,First,a1*p(mu)=ff2(b) *end C Last 3. Production of X/D expressions. Must use name XDexpr.e for output. C File XDexpr.e is used by the next problem. Therefore: C Command line: Schip +3 Last.e XDexpr.e XX Z AB4(a,b)=(a+b)^4 Z AB5(a,b)=(a+b)^5 *begin Z AB6(a,b)=(a+b)^6 *begin DD Z POW(n,a,b,c)=a+b+c DO II=2,5 Z x'II'=(a+b+c)^'II' B a ENDDO *begin XX Z AB7(a,b)=(a+b)^7 *end C Last 4. Use of generated X/D expressions. C The file XDexpr.e must have been generated by the previous problem. Read XDexpr.e A c,d,e Z xyz=POW(3,c,d,e) *end C Last 5. Superflags. Z xx=3 Id,Flag,Set,4 C Default is Flag 0. C Id,Flag,set DO II=0,8 IF Flag,on,'II' Al,Addfa,f'II'on ENDIF IF Flag,off,'II' Al,Addfa,f'II'off ENDIF ENDDO *end C Last 6. Inverting terms. A a,b,c,d,e F f1,f2,f2_,f3,f4 I i1,i2 V p,q Z xx = 3*a^3*pDq^-3*i1^7*f1(b,c) + 1/7*b^3*pDq^-3*i1^7*f2(d,e) + 1/13*c^3*pDq^-3*i1^7*f2_(a,b) Id,Invert *end C Last 7. Expression in brackets as function arguments crossing * lines. Z xx = f1((8.-2E-27),(-3.),(128),(-128)) P output *yep *begin C Here the expression as function argument contains a dummy. A a,b,c,d,e,f Z xx = f1(a,b,c)*f1(d,e,f) Id,f1(a~,b~,c~)=ff(a,(9*a)) P output *yep Id,ff(a~,b~)=b *begin F f,g,h,xpow A x,y,n,n1,n2 Z xx = f(x,3,y,2) + f(x,y,2) + f(x,y,3) Id,f(x,n~,y,n1~) = g(n+n1-3)*f(x,n-3,y,n1+3) Id,f(x,0,y,n~)=f(x,y,n) Id,g(n1~)*f(x,y,n2~) = xpow(n1+n2)*f(x,y,n2-2*n1) Id,f(x~,y~,2)=0 Id,f(x~,y~,3)=h(x,y) *begin Common yy F f1,f2,f3,f4 A a1,a2,a3,a4 I i1,i2,i3,i4 Z yy = f4(a,b) Z xx = f3(4,5,(1/3)) Id,f3(a~,b~,c~)=f2(-(2),-(2*aa1),(a+2*b-c))+aa1 Al,f4(a~,b~)=f2(a,(1.23),b,c)+aa1 P output *yep Keep xx *next Z yz=xx Id,f2(a~,b~,c~)=a*f3 *begin Z yz=yy Id,f2(a,a1~,b,c)=a1*f3(a,b) *end C Last 8. Chaining functions on the basis of indices. I a,b,c,d,a1,b1,c1 A x1,x2,x3 F Tr,St,ff Z xx=ff(x1)*f1(a,b,A)*f1(b,c,C,D)*ff(x2)*f1(d,a,E)*ff(x3) *f2(c1,b1)*f2(b1,a1)*ff(x4) Id,Left,Chain,"S,Tr,St,a,b,c,d,a1,b1,c1 *begin I s1,s2,s3,s4 F Tr,St Z xx =f1(s1,s2,A) *f1(s3,s4,C) *f1(s2,s3,B) Z yy =f1(s1,s2,A) *f1(s3,s1,C) *f1(s2,s3,B) Id,Chain,"S,Tr,St,s1,s2,s3,s4 *end C Last 9. Reversing order of selected function arguments. C The order of the arguments ** not ** mentioned is reversed. F f1 A a,b,c,d,e,f Z xx=f1(a,b,c,d,e)*f2(a,b,c,d,e)*f1(a,b,c,d,e) Id,Revert,f1,2,3,4,f2,1,4 *end C Last 10. Options Commu command. F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Commu,f1,f3 C xx = + f0(a)*f2(a1,a2)*f4(b1,b2)*f3*f1(a,b,c) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,First,Commu,f1,f3 C xx = + f0(a)*f3*f1(a,b,c)*f2(a1,a2)*f4(b1,b2) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Last,Commu,f1,f3 C xx = + f0(a)*f2(a1,a2)*f3*f1(a,b,c)*f4(b1,b2) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Left,Commu,f1,f3 C xx = + f3*f1(a,b,c)*f0(a)*f2(a1,a2)*f4(b1,b2) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Right,Commu,f1,f3 C xx = + f0(a)*f2(a1,a2)*f4(b1,b2)*f3*f1(a,b,c) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Commu,"B,f1,f3 C xx = + f3*f1(a,b,c)*f0(a)*f2(a1,a2)*f4(b1,b2) + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Commu,"N,f1,f3 C xx = + f0(a)*f2(a1,a2)*f4(b1,b2)*f1(a,b,c)*f3 + 0. *begin F f0,f3,f1,f2,f4 Z xx=f0(a)*f1(a,b,c)*f2(a1,a2)*f3*f4(b1,b2) Id,Commu,"N,"B,f1,f3 C xx = + f1(a,b,c)*f3*f0(a)*f2(a1,a2)*f4(b1,b2) + 0. *end C Last 11. Options Order command. I s1,s2,s3,s4 *fix Z xx =f1(s1,s2,A) *f1(s3,s4,C) *f1(s2,s3,B) Id,Order,"C,f1 *begin Z xx = f1(s1,s2,A) *f1(s3,s4,C) *f1(s2,s3,B) *f2(s1,s2,A) *f2(s3,s4,C) *f2(s2,s3,B) Id,Order,"C,"L,f1 *begin Z xx = f1(s1,s2,A) *f1(s3,s4,C) *f1(s2,s3,B) *f2(s1,s2,A) *f2(s3,s4,C) *f2(s2,s3,B) Id,Order,20,"C,"L,f1,f2 *begin Z xx = f1(s1,s2,A) *f1(s3,s4,C) *f1(s2,s3,B) *f2(s1,s2,A) *f2(s3,s4,C) *f2(s2,s3,B) Id,Order,20,"C,f1,f2 *end C Last 12. Groups for cyclic command. A m1,m2,m3 I i1,i2,i3 F f,f1 Z xx= f(m2,i2,m1,i1,m3,i3) Id,Cyclic,f,1,2,3,4,5,6 *begin A m1,m2,m3 I i1,i2,i3 F f,f1 Z xx= f(m2,i2,m1,i1,m3,i3) Id,Cyclic,f:1,2:3,4:5,6 *begin A m1,m2,m3 I i1,i2,i3 Z xx=f(m3,i3,m1,i1,m2,i2) Id,Symme,f:1,2:3,4:5,6: *end C Last 13. Name lists in Cyclic, Symme etc. commands. A m1,m2,m3 F f,f1 Z xx= f(m2,2,-m1,1,m3,3) Id,Cyclic,"L,-m1,m2,f1,"L,f,1,2,3,4,5,6 *begin A m1,m2,m3 Z xx=f(m3,3,m1,1,m2,2) Id,Symme,f:1,2:3,4:5,6: *end C Last 14. Use of rational numbers as function arguments. A a,c,d,e Z xx=f1(a,-17,85,b,(21),(-3.14))*f3(9,2) Id,f3(d~,e~)=f2(b,65,13,b,c,(3*d+e/3),(-511)) *yep Id,Rnum,f1,2,6,f2 *end