1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048 |
- Tue Feb 10 12:28:24 2004 run on Linux
- % Test SCOPE Package.
- % ==================
- % NOTE: The SCOPE, GHORNER, GSTRUCTR and GENTRAN packages must be loaded
- % to run these tests.
- % Further reading: SCOPE 1.5 manual Section 3, example 1;
- scope_switches$
- ON : evallhseqp exp ftch nat period
- OFF : acinfo again double fort gentranopt inputc intern prefix
- priall primat roundbf rounded sidrel vectorc
- % Further reading: SCOPE 1.5 manual Section 3.1, examples 2,3,4 and 5.
- on priall$
- optimize z:=a^2*b^2+10*a^2*m^6+a^2*m^2+2*a*b*m^4+2*b^2*m^6+b^2*m^2
- iname s;
- 2 2 2 6 2 2 4 2 6 2 2
- z := a *b + 10*a *m + a *m + 2*a*b*m + 2*b *m + b *m
- Sumscheme :
- || EC|Far
- ------------
- 0|| 1| z
- ------------
- Productscheme :
- | 0 1 2| EC|Far
- ---------------------
- 1| 2 2| 1| 0
- 2| 6 2| 10| 0
- 3| 2 2| 1| 0
- 4| 4 1 1| 2| 0
- 5| 6 2 | 2| 0
- 6| 2 2 | 1| 0
- ---------------------
- 0 : m
- 1 : b
- 2 : a
- Number of operations in the input is:
- Number of (+/-) operations : 5
- Number of unary - operations : 0
- Number of * operations : 10
- Number of integer ^ operations : 11
- Number of / operations : 0
- Number of function applications : 0
- s0 := b*a
- s4 := m*m
- s1 := s4*b*b
- s2 := s4*a*a
- s3 := s4*s4
- z := s1 + s2 + s0*(2*s3 + s0) + s3*(2*s1 + 10*s2)
- Number of operations after optimization is:
- Number of (+/-) operations : 5
- Number of unary - operations : 0
- Number of * operations : 12
- Number of integer ^ operations : 0
- Number of / operations : 0
- Number of function applications : 0
- Sumscheme :
- | 0 3 4 5| EC|Far
- ------------------------
- 0| 1 1| 1| z
- 15| 2 10| 1| 14
- 17| 2 1 | 1| 16
- ------------------------
- 0 : s3
- 3 : s0
- 4 : s1
- 5 : s2
- Productscheme :
- | 8 9 10 11 17 18 19 20| EC|Far
- ------------------------------------
- 7| 1 1| 1| s0
- 8| 1 2 | 1| s1
- 9| 1 2| 1| s2
- 10| 2 | 1| s3
- 11| 2 | 1| s4
- 14| 1 | 1| 0
- 16| 1 | 1| 0
- ------------------------------------
- 8 : s4
- 9 : s3
- 10 : s2
- 11 : s1
- 17 : s0
- 18 : m
- 19 : b
- 20 : a
- off priall$
- on primat,acinfo$
- optimize
- ghorner <<z:=a^2*b^2+10*a^2*m^6+a^2*m^2+2*a*b*m^4+2*b^2*m^6+b^2*m^2>>
- vorder m
- iname s;
- Sumscheme :
- || EC|Far
- ------------
- 0|| 1| z
- 3|| 1| 2
- 7|| 1| 6
- 10|| 1| 9
- ------------
- Productscheme :
- | 0 1 2| EC|Far
- ---------------------
- 1| 2 2| 1| 0
- 2| 2 | 1| 0
- 4| 2| 1| 3
- 5| 2 | 1| 3
- 6| 2 | 1| 3
- 8| 1 1| 2| 7
- 9| 2 | 1| 7
- 11| 2| 10| 10
- 12| 2 | 2| 10
- ---------------------
- 0 : m
- 1 : b
- 2 : a
- Number of operations in the input is:
- Number of (+/-) operations : 5
- Number of unary - operations : 0
- Number of * operations : 8
- Number of integer ^ operations : 9
- Number of / operations : 0
- Number of function applications : 0
- s0 := b*a
- s1 := b*b
- s2 := a*a
- s3 := m*m
- z := s0*s0 + s3*(s1 + s2 + s3*(2*s0 + s3*(2*s1 + 10*s2)))
- Number of operations after optimization is:
- Number of (+/-) operations : 5
- Number of unary - operations : 0
- Number of * operations : 11
- Number of integer ^ operations : 0
- Number of / operations : 0
- Number of function applications : 0
- Sumscheme :
- | 0 1 2| EC|Far
- ---------------------
- 0| | 1| z
- 3| 1 1| 1| 2
- 7| 2 | 1| 6
- 10| 2 10| 1| 9
- ---------------------
- 0 : s0
- 1 : s1
- 2 : s2
- Productscheme :
- | 3 4 5 9 10 11 12| EC|Far
- ---------------------------------
- 1| 2 | 1| 0
- 2| 1 | 1| 0
- 6| 1 | 1| 3
- 9| 1 | 1| 7
- 13| 1 1| 1| s0
- 14| 2 | 1| s1
- 15| 2| 1| s2
- 16| 2 | 1| s3
- ---------------------------------
- 3 : s3
- 4 : s2
- 5 : s1
- 9 : s0
- 10 : m
- 11 : b
- 12 : a
- off exp,primat,acinfo$
-
- q:=a+b$
- r:=q+a+b$
- optimize x:=a+b,q:=:q^2,p(q)::=:r iname s;
- x := a + b
- q := x*x
- p(x) := 2*x
- on exp$
- clear q,r$
- % A similar example follows.
- % operator a$% Not necessary. Some differences between REDUCE 3.5 and REDUCE 3.6
- % when dealing with indices.
- on inputc$
- k:=j:=1$
- u:=c*x+d$
- v:=sin(u)$
- optimize {a(k,j):=v*(v^2*cos(u)^2+u),
- a(k,j)::=:v*(v^2*cos(u)^2+u)} iname s;
- 2 2
- a(1,1) := v*(v *cos(u) + u)
- 2 3
- a(1,1) := cos(c*x + d) *sin(c*x + d) + sin(c*x + d)*c*x + sin(c*x + d)*d
- s9 := cos(u)*v
- a(1,1) := v*(u + s9*s9)
- s6 := x*c + d
- s5 := sin(s6)
- s10 := s5*cos(s6)
- a(1,1) := s5*(s6 + s10*s10)
- off exp$
- optimize {a(k,j):=v*(v^2*cos(u)^2+u),
- a(k,j)::=:v*(v^2*cos(u)^2+u)} iname s;
- 2 2
- a(1,1) := v*(v *cos(u) + u)
- 2 2
- a(1,1) := (c*x + d + cos(c*x + d) *sin(c*x + d) )*sin(c*x + d)
- s9 := cos(u)*v
- a(1,1) := v*(u + s9*s9)
- s6 := x*c + d
- s5 := sin(s6)
- s10 := s5*cos(s6)
- a(1,1) := s5*(s6 + s10*s10)
- off inputc,period$
- optlang fortran$
- optimize z:=(6*a+18*b+9*c+3*d+6*j+18*f+6*g+5*h+5*k+3)^13 iname s;
- s0=5*(h+k)+3*(3*c+d+1+6*(b+f)+2*(a+j+g))
- s3=s0*s0*s0
- s2=s3*s3
- z=s0*s2*s2
- off ftch$
- optimize z:=(6*a+18*b+9*c+3*d+6*j+18*f+6*g+5*h+5*k+3)^13 iname s;
- z=(5*(h+k)+3*(3*c+d+1+6*(b+f)+2*(a+j+g)))**13
- optlang c$
- optimize z:=(6*a+18*b+9*c+3*d+6*j+18*f+6*g+5*h+5*k+3)^13 iname s;
- {
- s0=5*(h+k)+3*(3*c+d+1+6*(b+f)+2*(a+j+g));
- s3=s0*s0*s0;
- s2=s3*s3;
- z=s0*s2*s2;
- }
- % Note: C code never contains exponentiations.
- on ftch$
- optimize {x:=3*a*p,y:=3*a*q,z:=6*a*r+2*b*p,u:=6*a*d+2*b*q,
- v:=9*a*c+4*b*d,w:=4*b} iname s;
- {
- s2=3*a;
- x=s2*p;
- y=s2*q;
- s0=2*b;
- s3=6*a;
- z=s0*p+s3*r;
- u=s0*q+s3*d;
- w=4*b;
- v=w*d+9*c*a;
- }
- off ftch$
- optlang fortran$
- optimize {x:=3*a*p,y:=3*a*q,z:=6*a*r+2*b*p,u:=6*a*d+2*b*q,
- v:=9*a*c+4*b*d,w:=4*b} iname s;
- x=3*p*a
- y=3*q*a
- z=2*b*p+6*r*a
- u=2*b*q+6*d*a
- v=4*d*b+9*c*a
- w=4*b
- on ftch$
- setlength 2$
- optimize {x:=3*a*p,y:=3*a*q,z:=6*a*r+2*b*p,u:=6*a*d+2*b*q,
- v:=9*a*c+4*b*d,w:=4*b} iname s;
- x=3*p*a
- y=3*q*a
- z=2*b*p+6*r*a
- u=2*b*q+6*d*a
- v=4*d*b+9*c*a
- w=4*b
- resetlength$
- optlang nil$
- % Further reading: SCOPE 1.5 manual section 3.1, example 9 and section 3.2.
- u:=a*x+2*b$
- v:=sin(u)$
- w:=cos(u)$
- f:=v^2*w;
- 2
- f := cos(a*x + 2*b)*sin(a*x + 2*b)
- off exp$
- optimize f:=:f,g:=:f^2+f iname s$
- s3 := x*a + 2*b
- s2 := sin(s3)
- f := s2*s2*cos(s3)
- g := f*(f + 1)
- alst:=aresults;
- alst := {s3=a*x + 2*b,
- s2=sin(s3),
- 2
- f=cos(s3)*s2 ,
- g=(f + 1)*f}
- restorables;
- {f}
- f;
- f
- arestore f;
- f;
- 2
- cos(a*x + 2*b)*sin(a*x + 2*b)
- alst;
- {s3=a*x + 2*b,
- s2=sin(s3),
- 2 2
- cos(a*x + 2*b)*sin(a*x + 2*b) =cos(s3)*s2 ,
- 2 2
- g=(cos(a*x + 2*b)*sin(a*x + 2*b) + 1)*cos(a*x + 2*b)*sin(a*x + 2*b) }
- optimize f:=:f,g:=:f^2+f iname s$
- s3 := x*a + 2*b
- s2 := sin(s3)
- f := s2*s2*cos(s3)
- g := f*(f + 1)
- alst:=aresults$
- optimize f:=:f,g:=:f^2+f iname s$
- g := f*(f + 1)
- restoreall$
- f;
- f
- % Further reading: SCOPE 1.5 manual section 3.1, example 8.
- % See also section 5.
- % Also recommended: section 9.
- clear a$
- matrix a(2,2)$
- a(1,1):=x+y+z$
- a(1,2):=x*y$
- a(2,1):=(x+y)*x*y$
- a(2,2):=(x+2*y+3)^3-x$
- on exp$
- off fort,nat$
- optimize detexp:=:det(a) out "expfile" iname s$
- off exp$
- optimize detnexp:=:det(a) out "nexpfile" iname t$
- in expfile$
- in nexpfile$
- on nat$
- detexp-detnexp;
- 0
- system "rm expfile nexpfile"$
- % Further reading: SCOPE 1.5 manual section 4.2, example 15.
- % Although the output is similar, it is in general equivalent and
- % not identical when using REDUCE 3.6 in stead of REDUCE 3.5. This
- % is due to improvements in the simplification strategy.
- on acinfo$
- optimize
- gstructr<<a;aa:=(x+y)^2;b:=(x+y)*(y+z);c:=(x+2*y)*(y+z)*(z+x)^2>>
- name v iname s;
- Number of operations in the input is:
- Number of (+/-) operations : 8
- Number of unary - operations : 0
- Number of * operations : 8
- Number of integer ^ operations : 3
- Number of / operations : 0
- Number of function applications : 0
- v1 := y + z
- a(1,1) := v1 + x
- a(1,2) := y*x
- v3 := y + x
- a(2,1) := a(1,2)*v3
- s6 := 2*y + x
- s4 := s6 + 3
- a(2,2) := s4*s4*s4 - x
- aa := v3*v3
- b := v1*v3
- s5 := z + x
- c := s6*s5*s5*v1
- Number of operations after optimization is:
- Number of (+/-) operations : 7
- Number of unary - operations : 0
- Number of * operations : 10
- Number of integer ^ operations : 0
- Number of / operations : 0
- Number of function applications : 5
- alst:=
- algopt(algstructr({a,b=(x+y)^2,c=(x+y)*(y+z),d=(x+2*y)*(y+z)*(z+x)^2},v),s);
- Number of operations in the input is:
- Number of (+/-) operations : 8
- Number of unary - operations : 0
- Number of * operations : 8
- Number of integer ^ operations : 3
- Number of / operations : 0
- Number of function applications : 0
- Number of operations after optimization is:
- Number of (+/-) operations : 7
- Number of unary - operations : 0
- Number of * operations : 10
- Number of integer ^ operations : 0
- Number of / operations : 0
- Number of function applications : 5
- *** a declared operator
- alst := {v1=y + z,
- a(1,1)=v1 + x,
- a(1,2)=x*y,
- v3=x + y,
- a(2,1)=a(1,2)*v3,
- s6=x + 2*y,
- s4=s6 + 3,
- 3
- a(2,2)=s4 - x,
- 2
- b=v3 ,
- c=v1*v3,
- s5=x + z,
- 2
- d=s5 *s6*v1}
- off acinfo$
- % Further reading: SCOPE 1.5 manual section 4.3, example 16.
- clear a$
- procedure taylor(fx,x,x0,n);
- sub(x=x0,fx)+(for k:=1:n sum(sub(x=x0,df(fx,x,k))*(x-x0)^k/factorial(k)))$
- hlst:={f1=taylor(e^x,x,0,4),f2=taylor(cos x,x,0,6)}$
- on rounded$
- hlst:=hlst;
- 3 2
- hlst := {f1=0.0416666666667*(x + 4*x + 12*x + 24)*x + 1,
- 4 2 2
- f2= - 0.00138888888889*(x - 30*x + 360)*x + 1}
- optimize alghorner(hlst,{x}) iname g$
- g1 := x*x
- g0 := g1*x
- f1 := 1 + x*(0.166666666667*g1 + 0.0416666666667*g0 + 1 + 0.5*x)
- f2 := 1 + g1*(0.0416666666667*g1 - 0.5 - 0.00138888888889*g0*x)
- off rounded$
- % Further reading: SCOPE 1.5 manual section 3.1, examples 6 and 7.
- optimize z:=:for j:=2:6 sum a^(1/j) iname s$
- 1/60
- s0 := a
- s8 := s0*s0
- s7 := s8*s0
- s5 := s8*s7
- s3 := s5*s5
- s2 := s8*s3
- s1 := s7*s2
- s4 := s5*s1
- z := s3 + s2 + s1 + s4 + s4*s3
- optimize z1:=a+sqrt(sin(a^2+b^2)), z2:=b+sqrt(sin(a^2+b^2)),
- z3:=a+b+(a^2+b^2)^(1/2), z4:=sqroot(a^2+b^2)+(a^2+b^2)^3,
- z5:=a^2+b^2+cos(a^2+b^2), z6:=(a^2+b^2)^(1/3)+(a^2+b^2)^(1/6)
- iname s;
- s6 := b*b + a*a
- s8 := sqrt(sin(s6))
- z1 := s8 + a
- z2 := s8 + b
- 1/6
- s7 := s6
- s9 := s7*s7
- z3 := a + b + s9*s7
- z4 := sqroot(s6) + s6*s6*s6
- z5 := s6 + cos(s6)
- z6 := s7 + s9
- % Further reading: SCOPE 1.5 manual section 6, examples 18 and 19.
- optlang fortran$
- optimize {x(i+1,i-1):=a(i+1,i-1)+b(i),y(i-1):=a(i-1,i+1)-b(i)} iname s
- declare <<x(4),a(4,4),y(5):real;b(5):integer>>;
- integer b(5),i,s10,s9
- real a(4,4),x(4),y(5)
- s10=i+1
- s9=i-1
- x(s10,s9)=a(s10,s9)+b(i)
- y(s9)=a(s9,s10)-b(i)
- optlang c$
- optimize {x(i+1,i-1):=a(i+1,i-1)+b(i),y(i-1):=a(i-1,i+1)-b(i)} iname s
- declare <<x(4),a(4,4),y(5):real;b(5):integer>>;
- int b[6],i,s10,s9;
- float a[5][5],x[5],y[6];
- {
- s10=i+1;
- s9=i-1;
- x[s10][s9]=a[s10][s9]+b[i];
- y[s9]=a[s9][s10]-b[i];
- }
- optlang pascal$
- optimize {x(i+1,i-1):=a(i+1,i-1)+b(i),y(i-1):=a(i-1,i+1)-b(i)} iname s
- declare <<x(4),a(4,4),y(5):real;b(5):integer>>;
- var
- s9,s10,i: integer;
- b: array[0..5] of integer;
- y: array[0..5] of real;
- x: array[0..4] of real;
- a: array[0..4,0..4] of real;
- begin
- s10:=i+1;
- s9:=i-1;
- x[s10,s9]:=a[s10,s9]+b[i];
- y[s9]:=a[s9,s10]-b[i]
- end;
- optlang ratfor$
- optimize {x(i+1,i-1):=a(i+1,i-1)+b(i),y(i-1):=a(i-1,i+1)-b(i)} iname s
- declare <<x(4),a(4,4),y(5):real;b(5):integer>>;
- integer b(5),i,s10,s9
- real a(4,4),x(4),y(5)
- {
- s10=i+1
- s9=i-1
- x(s10,s9)=a(s10,s9)+b(i)
- y(s9)=a(s9,s10)-b(i)
- }
- precision 7$
- on rounded, double$
- optlang fortran$
- optimize x1:=2 *a + 10 *b,
- x2:=2.00001 *a + 10 *b,
- x3:=2 *a + 10.00001 *b,
- x4:=6 *a + 10 *b,
- x5:=2.0000001 *a + 10.000001 *b
- iname s
- declare << x1,x2,x3,x4,x5,a,b:real>>$
- double precision a,b,s1,s2,x1,x2,x3,x4,x5
- s1=2*a
- s2=10*b
- x1=s2+s1
- x2=s2+2.00001d0*a
- x3=s1+1.000001d1*b
- x4=s2+6*a
- x5=x1
- % Further reading: SCOPE 1.5 manual section 7, example 20.
- % Notice the double role of e: In the lhs as identifier. In the rhs as
- % exponential function.
- % Further notice that a is expected to be declared operator. This is
- % due to lower level scope activities.
- optimize a(1,x+1) := g + h*r^f,
- b(y+1) := a(1,2*x+1)*(g+h*r^f),
- c1 := (h*r)/g*a(2,1+x),
- c2 := c1*a(1,x+1) + sin(d),
- a(1,x+1) := c1^(5/2),
- d := b(y+1)*a(1,x+1),
- a(1,1+2*x):= (a(1,x+1)*b(y+1)*c)/(d*g^2),
- b(y+1) := a(1,1+x)+b(y+1) + sin(d),
- a(1,x+1) := b(y+1)*c + h/(g + sin(d)),
- d := k*e + d*(a(1,1+x) + 3),
- e := d*(a(1,1+x) + 3) + sin(d),
- f := d*(3 + a(1,1+x)) + sin(d),
- g := d*(3 + a(1,1+x)) + f
- iname s
- declare << a(5,5),b(7),c,c1,d,e,f,g,h,r:real*8; x,y:integer>>$
- *** a declared operator
- integer x,y,s0,s2,s6
- double precision c,h,r,s34,s3,c1,c2,s4,s24,b(7),a(5,5),s29,k,d,s33
- . ,e,f,g
- s0=x+1
- s34=r**f*h+g
- s2=1+y
- s6=2*x+1
- s3=s34*a(1,s6)
- c1=a(2,s0)*((r*h)/g)
- c2=dsin(d)+s34*c1
- s4=dsqrt(c1)*c1*c1
- d=s4*s3
- a(1,s6)=(d*c)/(g*g*d)
- s24=dsin(d)
- b(s2)=s4+s3+s24
- a(1,s0)=h/(g+s24)+b(s2)*c
- s29=3+a(1,s0)
- d=s29*d+dexp(1.0d0)*k
- s33=s29*d
- e=s33+dsin(d)
- f=dexp(1.0d0)
- g=s33+f
- % Further reading: SCOPE 1.5 manual section 8, examples 21 and 22.
- % Also recommended: section 9.
- optlang nil$
- delaydecs$
- gentran declare <<a,b,c,d,q,w: real>>$
- gentran a:=b+c$
- gentran d:=b+c$
- gentran <<q:=b+c;w:=b+c>>$
- makedecs$
- double precision a,b,c,d,q,w
- a=b+c
- d=b+c
- q=b+c
- w=b+c
- on gentranopt$
- delaydecs$
- gentran declare <<a,b,c,d,q,w: real>>$
- gentran a:=b+c$
- gentran d:=b+c$
- gentran <<q:=b+c;w:=b+c>>$
- makedecs$
- double precision b,c,a,d,q,w
- a=b+c
- d=b+c
- q=b+c
- w=q
- off gentranopt$
- delayopts$
- gentran declare <<a,b,c,d,q,w: real>>$
- gentran a:=b+c$
- gentran d:=b+c$
- gentran <<q:=b+c;w:=b+c>>$
- makeopts$
- a=b+c
- d=a
- q=a
- w=a
- delaydecs$
- gentran declare <<a,b,c,d,q,w: real>>$
- delayopts$
- gentran a:=b+c$
- gentran d:=b+c$
- gentran <<q:=b+c;w:=b+c>>$
- makeopts$
- makedecs$
- double precision b,c,a,d,q,w
- a=b+c
- d=a
- q=a
- w=a
- clear a,b,c,d,q,w$
- matrix a(2,2)$
- a:=mat(((b+c)*(c+d),(b+c+2)*(c+d-3)),((c+b-3)*(d+b),(c+b)*(d+b+4)));
- [ (b + c)*(c + d) (c + 2 + b)*(d - 3 + c)]
- a := [ ]
- [(c - 3 + b)*(b + d) (d + 4 + b)*(b + c) ]
- gentranlang!*:='c$
- delayopts$
- gentran aa:=:a$
- makeopts$
- {
- {
- g17=b+c;
- g18=c+d;
- aa[1][1]=g18*g17;
- aa[1][2]=(g18-3)*(g17+2);
- g16=b+d;
- aa[2][1]=g16*(g17-3);
- aa[2][2]=g17*(g16+4);
- }
- }
- end;
- Time for test: 100 ms
|