{VERSION 6 0 "IBM INTEL NT" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{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 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT -1 273 "These procedures were use d to create a Maple input file to to read into future worksheets.\nThe procedures are used to generate the Cayley table for an Alexander qua ndle. No primality testing is performed. These procedures may produce \+ output for the non prime case; however " }}{PARA 0 "" 0 "" {TEXT -1 78 "the Cayley table may be incorrect. Therefore, use only prime modul us.\n\n7/29/05" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 871 "AlexQuandle:=proc(polym, prim)\n#Input: (1) A polynomial in t from the Alexander quandle Z_pr im[t^-1,t]/(polym)\n# (2) A prime number prim is from the abov e Alexander Quandle.\n#Output: The output is a two dimensional zero i ndexed array representing \n# the Cayley table for the Alexand er quandle. The elements of the \n# Cayley table are in the se t \{0..n\} where n is the order of the quandle.\n#Example input: Ale xQuandle(t+1,3);\n\noption remember;\nlocal i,j,temp,Quandle,f,rrespol ;\nrrespol:=rres(polym,prim);\nQuandle:=array(0..nops(rrespol)-1,0..no ps(rrespol)-1);\nfor i from 1 to nops(rrespol) do\n for j from 1 to n ops(rrespol) do\n f:=Alexmult(rrespol[i],rrespol[j],polym,prim);\n \+ temp:=findelt(rrespol,f);\n #Quandle[i-1,j-1]:=f;#comment out abo ve and below lines for elmts in poly form \n Quandle[i-1,j-1]:=temp- 1;\n od;\nod;\nQuandle;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 659 "findelt:=proc(L,pol)\n#Input: (1) A list that contains the re duced residues of the Alexander \n# quandle in polynomial(in t) form. This list is generated from \n# the procedure rres ().\n# (2) A polynomial from the list L.\n#Output: This procedur e is used to map the Alexander quandle whose \n# elements are i n polynomial form to the set \{0..n\} where n is the \n# order \+ of the quandle. This procedure returns the position that \n# po l occupies in the list L. \n#Exapmle Input: findelt(rres(t+1,3),2);\nl ocal i;\nfor i from 1 to nops(L) do\n if L[i]=pol then return(i);fi; \nod;\nprintf(\"%s\", \"ERROR in Procedure findelt\");\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 859 "rres:=proc(polym,m)\n#Input : (1) A polynomial in t from Z_m[t^-1,t]/(polym). \n# (2) The \+ modulus, m, from above.\n#Output: A list containing the reduced resid ues from Z_m[t^-1,t]/(polym). \n#Example Input: rres(t+1,3);\n\n\nloc al L,i,num,deg,C,prep,j,Cof,temp;\nCof:=[];\nL:=[];\nif type(polym,pol ynom) then \n deg:=degree(polym,t);\nelse \n printf(\"%s\\n\",ERR OR);\n return;\nfi;\nCof:=PolynomialTools[CoefficientList](polym,t); \ntemp:=1; \n while Cof[temp]=0 do\n temp:=temp+1;\n od;\ni f gcd(Cof[temp],m)=1 and gcd(Cof[nops(Cof)],m)=1 then\n continue;\nel se\n printf(\"%s\",\"ERROR, Not a finite ring.\");\n return;\nfi;\nn um:=m^deg;\nfor i from 0 to num-1 do\n C:=convert(i,base,m);\n if C= [] then prep:=0;\n else\n prep:=0;\n for j from nops(C) to 1 \+ by -1 do \n prep:=prep+C[j]*t^(j-1);\n od;\n fi;\nL:=[op( L),prep];\nod;\nreturn(L);\nend: \n " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 862 "Alexmult:=proc(a,b,polym,m)\n#Input: (1) a is a pol ynomial in t from the Alexander quandle \n# that will be mu ltiplied by b using the defind Alexander multiplication.\n# (2) b is a polynomial in t from the Alexander quandle that \n# \+ will multiply a using the defined Alexander multiplication.\n# \+ (3) The polynomial polym is a polynomial in t from the Alexander \n# \+ quandleZ_m[t^-1,t]/(polym).\n# (4) The modulus m fro m the Alexander quandle Z_m[t^-1,t]/(polym).\n#Output: A polynomial in t that results after the Alexander multiplication \n# defined \+ as t*a+(1-t)*b is reduced in Z_m[t^-1,t]/(polym).\n#Note: Rem says it \+ needs a prime modulus, \n# but also Maple says it will work for a ny finite field (??)\n#Example Input: Alexmult(t+1,2*t-1,t^2-t+1,3);\n \nlocal i,j,f;\nf:=Rem(t*a+(1-t)*b,polym,t) mod m;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 516 "quandlesize:=proc(Quandle)\n#Proce dure to determine how many elements are in the quandle\n#Input: A zero indexed two dimensional array representing the \n# the multipli cation table for the quandle.\n#Output: A positive integer. Representi ng the number of elements in the set.\nlocal T;\noption remember; #cre ate table to avoid multiple function calls\nT:=convert(Quandle,matrix) ;\nif linalg[rowdim](T)<>linalg[coldim](T) then \n prinf(\"%s %s %s \\n\",ERROR, quandle, dimensions);\nelse return(linalg[rowdim](T));\nf i;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "save quandlesiz e,Alexmult,rres,findelt,AlexQuandle, \"J:\\\\SaitoGood_7_22_05\\\\alex Quanpkg.m\";" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "?save" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 1 0" 69 } {VIEWOPTS 1 1 0 3 4 1802 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }