{VERSION 3 0 "IBM INTEL LINUX" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 272 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 279 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 283 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 286 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 287 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "LIST OF FUNCTIONS" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "The code consists of two main programs - \+ " }{TEXT 276 4 "symm" }{TEXT -1 8 " and " }{TEXT 277 9 "matrices " }{TEXT -1 33 " and two auxiliary functions - " }{TEXT 278 6 "simple " }{TEXT -1 7 " and " }{TEXT 279 6 " l_f.\n" }{TEXT -1 13 "The progr am " }{TEXT 280 4 "symm" }{TEXT -1 78 " is the main function. \nThe input consists of a complex-valued polynomial " }{TEXT 281 4 "f(p) " }{TEXT -1 69 " considered as the\nprojective form of homogeneous bi nary polynomial " }{TEXT 282 6 "F(x,y)" }{TEXT -1 17 ", and\nthe degre e " }{TEXT 283 9 " n=deg(F)" }{TEXT -1 40 ". The program computes th e invariants " }{TEXT 284 4 " J " }{TEXT -1 5 "and " }{TEXT 285 1 "K " }{TEXT -1 140 " in reduced form, determines the dimension of the sy mmetry group, and, in the case of a finite symmetry group, applies the \n Maple command " }{TEXT 286 5 "solve" }{TEXT -1 93 " to solve the \+ two polynomial symmetry equations (3,4) to find\nexplicit form of sym metries. " }}{PARA 0 "" 0 "" {TEXT -1 15 "The output of " }{TEXT 287 4 "symm" }{TEXT -1 237 " consists of the projective index of the form and the explicit formulae for its\ndiscrete projective symmetries. \+ The program also notifies the user if the\nsymmetry group is not disc rete, or is in the maximal discrete symmetry class. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 1487 "symm:=proc(form,n)\nglobal tr,err or;\nlocal Q,Qp,Qpp,Qppp,Qpppp,H,T,V,U,J,K,j,k, Eq1,Eq2,i,eqtr,ans;\n \+ tr:='tr':\n Q:=form(p);\n Qp:=diff(Q,p);\n Qpp:=diff(Qp,p);\n Qppp:=di ff(Qpp,p);\n Qpppp:=diff(Qppp,p);\n H:=n*(n-1)*(Q*Qpp-(n-1)/n*Qp^2);\n if H=0 then\n ans:=`Hessian is zero: two-dimensional symmetry group` \n else\n T:=-n^2*(n-1)*(Q^2*Qppp-3*(n-2)/n*Q*Qp*Qpp+2*(n-1)*(n-2)/n^ 2 *Qp^3);\n V:=Q^3*Qpppp-4*(n-3)/n*Q^2*Qp*Qppp+6*(n-2)*(n-3)/n^2* Q*Qp^2 *Qpp-3*(n-1)*(n-2)*(n-3)/n^3*Qp^4;\n U:=n^3*(n-1)*V-3*(n-2)/(n -1)*H^2;\n J:=simple(T^2/H^3);K:=simple(U/H^2);\n j:=subs(p=P,J);k:=su bs(p=P,K);\n Eq1:=simplify(numer(J)*denom(j)-numer(j)*denom(J));\n Eq2 :=simplify(numer(K)*denom(k)-numer(k)*denom(K));\n if Eq1=0 then\n a ns:=`Form has a one-dimensional symmetry group`;\n else\n if Eq2=0 \+ then\n print (` Form has the maximal possible discrete symmetry \+ group`);\n eqtr:= [solve(Eq1,P)];\n tr:=map(radsimp,m ap(allvalues,eqtr));\n else\n eqtr:=[solve(\{Eq1,Eq2\},P)]; \n tr:= [];\n for i from 1 to nops(eqtr) do\n tr :=map(radsimp,[op(tr),allvalues(rhs(eqtr[i][1]))]);\n od\n \+ fi;\n print(`The number of the projective symmetries`=nops(tr));\n ans:=map(l_f,tr);\n if error=1 then\n print(`ERROR: Some of the transformations are not\n linear-fractional`)\n else\n \+ if error=2 then\n print(`WARNING: Some of the transformations ar e not written in the form polynomial over polynomial`)\n fi;\n \+ fi;\n fi;\n fi;\n ans\nend:\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 272 0 "" }{TEXT -1 13 "The program " }{TEXT 289 8 "matrices" }{TEXT -1 361 " determines the matrix\nsymmetry corresponding to a given (li st of) projective symmetries. As discussed in the text, this only\nre quires determining an overall scalar multiple, which can be found by s ubstituting the projective\nsymmetry into the form. The output consis ts of each projective symmetry, the scalar factor $\\mu $,\nand the re sulting matrix symmetry." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 399 "matrices:=proc(form,n,L::list)\n local Q,ks,ksi,i,Sf,M;\n ksi:='k si';\n for i from 1 to nops(L) do\n Sf:=simplify(denom(L[i])^n*form(L [i]));\n ks:=quo(Sf,form(p),p);\n ksi:=simplify(ks^(1/n),radical,sym bolic);\n M[i]:=matrix(2,2,[coeff(numer(L[i]),p)/ksi,\n coeff(numer( L[i]),p,0)/ksi,coeff(denom(L[i]),p)/ksi,\n coeff(denom(L[i]),p,0)/ksi ]);\n print(L[i], mu=ksi, map(simplify,M[i])); \n od;\nend:\n" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "The auxiliary function " } {TEXT 288 5 "l_f " }{TEXT -1 100 "uses polynomial division to\nreduc e rational expressions to linear fractional form (when possible). " }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 544 "l_f:=proc(x)\n local A,B,C ,S,de,nu,r,R;\n global error;error:='error';\n nu:=numer(x); \n de:=d enom(x);\n if type(nu,polynom(anything,p)) and type(de,polynom(any thing,p))\n then\n if degree(nu,p)+1=degree(de,p) then\n A:=quo(de, nu,p,'B');\n S:=1/A;R:=0\n else \n A:=quo(nu,de,p,'B');\n if B= 0 then S:=A;\n R:=0; \n else\n C:=quo(de,B,p,'r');R:=simpl e(r);\n S:=simplify(A+1/C) \n fi;\n fi;\n if R=0 then \n \+ collect(S,p)\n else\n error:=1;x\n fi;\n else\n error:=2;x \+ fi;\nend:" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 23 "The auxiliary function " }{TEXT 290 7 "si mple " }{TEXT -1 147 " helps to simplify rational\n expressions by man ipulating the numerator and denominator separately.\nThe simplified ra tional expression is returned.\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 170 "simple:=proc(x)\nlocal nu,de,num,den;\nnu:=numer(x); \nde:=denom(x);\nnum:=(simplify((nu,radical,symbolic)));\nden:=(simpli fy((de,radical,symbolic)));\nsimplify(num/den);\nend:\n\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "Example:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "f:=p->p^3+1;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"f GR6#%\"pG6\"6$%)operatorG%&arrowGF(,&*$)9$\"\"$\"\"\"\"\"\"F2F2F(F(F( " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "symm(f,3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%^o~Form~has~the~maximal~possible~discrete~symm etry~~~~~~~~~~~~~~groupG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#/%HThe~num ber~of~the~projective~symmetriesG\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7(%\"pG*&\"\"\"F&F$!\"\"*&,&#!\"\"\"\"#\"\"\"*&%\"IGF--%%sqrtG6# \"\"$F&#F-F,F&F$F'*&,&F*F-F.F*F&F$F'*&F)F-F$F-*&F6F-F$F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "matrices(f,3,%);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6%%\"pG/%#muG\"\"\"-%'matrixG6#7$7$F&\"\"!7$F,F&" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%*&\"\"\"F$%\"pG!\"\"/%#muG\"\"\"-%'mat rixG6#7$7$\"\"!F)7$F)F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%*&,&#!\"\" \"\"#\"\"\"*&%\"IGF(-%%sqrtG6#\"\"$\"\"\"#F(F'F/%\"pG!\"\"/%#muGF'-%'m atrixG6#7$7$\"\"!F$7$F(F:" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%*&,&#!\" \"\"\"#\"\"\"*&%\"IGF(-%%sqrtG6#\"\"$\"\"\"F%F/%\"pG!\"\"/%#muGF'-%'ma trixG6#7$7$\"\"!F$7$F(F9" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%*&,&#!\"\" \"\"#\"\"\"*&%\"IGF(-%%sqrtG6#\"\"$\"\"\"#F(F'F(%\"pGF(/%#muGF'-%'matr ixG6#7$7$F$\"\"!7$F9F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%*&,&#!\"\"\" \"#\"\"\"*&%\"IGF(-%%sqrtG6#\"\"$\"\"\"F%F(%\"pGF(/%#muGF'-%'matrixG6# 7$7$F$\"\"!7$F8F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "f:=p-> p^2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fGR6#%\"pG6\"6$%)operatorG %&arrowGF(*$)9$\"\"#\"\"\"F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "symm(f,3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%JForm~ has~a~one-dimensional~symmetry~groupG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "2 0 10" 4 }{VIEWOPTS 1 1 0 1 1 1803 }