{VERSION 5 0 "SUN SPARC SOLARIS" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 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 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 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 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "MONDEGREE :=proc(f,v ariables,weights) local deg, i;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 " if not type(f,polynom) then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "ERRO R(`First argument must be a monomial.`);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "elif type(f,`+`) then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "ERROR(`First argument must be a monomial.`);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "if nops (variables) <> nops(weights) then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "ERROR(`Must have the same number of weights as variables.`); fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "i := 0; deg := 0;" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 25 "while i < nops(variables)" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "deg := deg \+ + degree(f,variables[i+1])*weights[i+1];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "deg;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%*MONDEGREEGf*6%%\"fG% *variablesG%(weightsG6$%$degG%\"iG6\"F-C(@&4-%%typeG6$9$%(polynomG-%&E RRORG6#%CFirst~argument~must~be~a~monomial.G-F26$F4%\"+GF6@$0-%%nopsG6 #9%-F@6#9&-F76#%SMust~have~the~same~number~of~weights~as~variables.G>8 %\"\"!>8$FK?(F-\"\"\"FOF-2FJF?C$>FM,&FMFO*&-%'degreeG6$F4&FB6#,&FJFOFO FOFO&FEFYFOFO>FJFZFMF-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "DEGREECOMP := proc(m1,L1,m2,L2) local i, best, notbestfound;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "if nops(L1) <> nops(L2) then " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "ERROR(`Your weight score vectors mu st be of the same length`) fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "i := 1; best := m1; notbestfound := true;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "while notbestfound" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "if L1[i] > L2[i] then best := m1; notbestfound := false;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "e lif L1[i] < L2[i] then best := m2; notbestfound := false;" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 3 "fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "if i > nops(L1) then notbe stfound := false fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "best;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%+DEGREECOMPGf*6&%#m1G %#L1G%#m2G%#L2G6%%\"iG%%bestG%-notbestfoundG6\"F/C(@$0-%%nopsG6#9%-F46 #9'-%&ERRORG6#%UYour~weight~score~vectors~must~be~of~the~same~lengthG> 8$\"\"\">8%9$>8&%%trueG?(F/F@F@F/FEC%@&2&F96#F?&F6FLC$>FBFC>FE%&falseG 2FMFKC$>FB9&>FEFQ>F?,&F?F@F@F@@$2F3F?>FEFQFBF/F/F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "CALCWEIGHTS := proc(f,variables,weights) lo cal scores, i;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "i := 1; scores := array(1..nops(weights));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "while \+ i < nops(weights) + 1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "scores[i] := MONDEGREE(f,variables, weights[i]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 " [f,eval(scores)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%,CALCWEIGHTSGf*6%%\"fG%*variablesG%(weight sG6$%'scoresG%\"iG6\"F-C&>8%\"\"\">8$-%&arrayG6#;F1-%%nopsG6#9&?(F-F1F 1F-2F0,&F8F1F1F1C$>&F36#F0-%*MONDEGREEG6%9$9%&F;FB>F0,&F0F1F1F17$FF-%% evalG6#F3F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "LT := pr oc(f,variables,weights) local i, leadterm;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "if not type(f,polynom) then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "ERROR(`First argument must be a polynomial.`);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "elif not type(f,`+`) then leadterm \+ := f;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "else" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "i := 2;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "leadterm := op(1,f);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "while i < nops(f) + 1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "leadterm" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 117 ":= DEG REECOMP(leadterm,CALCWEIGHTS(leadterm,variables,weights)[2],op(i,f),CA LCWEIGHTS(op(i,f),variables,weights)[2]);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "leadterm;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#>%#LTGf*6%%\"fG%*variablesG%(weightsG6$%\"iG%)le adtermG6\"F-C$@'4-%%typeG6$9$%(polynomG-%&ERRORG6#%EFirst~argument~mus t~be~a~polynomial.G4-F26$F4%\"+G>8%F4C%>8$\"\"#>F?-%#opG6$\"\"\"F4?(F- FHFHF-2FB,&-%%nopsG6#F4FHFHFHC$>F?-%+DEGREECOMPG6&F?&-%,CALCWEIGHTSG6% F?9%9&6#FC-FF6$FBF4&-FV6%FenFXFYFZ>FB,&FBFHFHFHF?F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "MULTIDIV := proc(f,divisors,variabl es,weights)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "local a, r, i, p, di visionoccurred;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "a := array(1..no ps(divisors));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "i := 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "while i < nops(divisors) + 1" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "a[i] := 0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "r := 0; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "p := f;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "while p <> 0" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "i := 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "divisionoccurred := false;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "while i < nops(divisors) + 1 and divisionoccurred = f alse" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "if divide(LT(p,variables,weights),LT(divisors[i],vari ables,weights))" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "then" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 30 "a[i] := expand(simplify(a[i] +" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "LT(p,variables,weights)/LT(divisors[i],variab les,weights)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "p :=" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 79 "expand(simplify(p - (LT(p,variables,weights) /LT(divisors[i],variables,weights))" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "*divisors[i]));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "divisionoccu rred := true;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "else" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 " fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "if divisionoccurred = false" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "r:= expand( simplify(r + LT(p,variables,weights)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "p := expand(simplify(p-LT(p,variables,weights)));" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 3 "fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od; " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "[eval(a),r];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)MULTIDIV Gf*6&%\"fG%)divisorsG%*variablesG%(weightsG6'%\"aG%\"rG%\"iG%\"pG%1div isionoccurredG6\"F1C)>8$-%&arrayG6#;\"\"\"-%%nopsG6#9%>8&F9?(F1F9F9F12 F?,&F:F9F9F9C$>&F46#F?\"\"!>F?,&F?F9F9F9>8%FG>8'9$?(F1F9F9F10FMFGC&>F? F9>8(%&falseG?(F1F9F9F13FA/FTFU@%-%'divideG6$-%#LTG6%FM9&9'-Fhn6%&F=FF FjnF[oC%>FE-%'expandG6#-%)simplifyG6#,&FEF9*&FgnF9F\\o!\"\"F9>FM-Fbo6# -Feo6#,&FMF9*(FgnF9F\\oFioF^oF9Fio>FT%%trueG>F?FI@$FXC$>FK-Fbo6#-Feo6# ,&FKF9FgnF9>FM-Fbo6#-Feo6#,&FMF9FgnFio7$-%%evalG6#F4FKF1F1F1" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "MONLCM := proc(f,g,variables ) local i, lcom;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "i := 1;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "lcom := 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "while i < nops(variables) + 1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "lcom := lcom \+ *" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "variables[i]^(max(degree(f,var iables[i]),degree(g,variables[i])));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "i := i+1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 23 "expand(simplify(lcom));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'MONLCMGf*6%%\"fG%\"gG%*variablesG6$%\"iG% %lcomG6\"F-C&>8$\"\"\">8%F1?(F-F1F1F-2F0,&-%%nopsG6#9&F1F1F1C$>F3*&F3F 1)&F:6#F0-%$maxG6$-%'degreeG6$9$F?-FE6$9%F?F1>F0,&F0F1F1F1-%'expandG6# -%)simplifyG6#F3F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "S POLY := proc(f,g,variables,weights)" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "expand(simplify(MONLCM(LT(f,variables,weights)," }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "LT(g,variables,weights),variables)*" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 62 "(1/LT(f,variables,weights)*f-(1/LT(g,variables ,weights))*g)));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&SPOLYGf*6&%\"fG%\"gG%*variablesG%(weights G6\"F+F+-%'expandG6#-%)simplifyG6#*&-%'MONLCMG6%-%#LTG6%9$9&9'-F76%9%F :F;F:\"\"\",&*&F6!\"\"F9F?F?*&FF?FBF?F+F+F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "GroebBasis := proc(F,variables,weights) local G, Gprime, i, j, S;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "G := F;" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "Gprime := 0;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "while G <> Gprime" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "Gprime := G;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "i := 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "j := 2;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "while i < nops(Gprime)+1 " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "while j < nops(Gprime)+1" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "do" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "S := MULTIDIV (SPOLY(Gprime[i],Gprime[j],variables,weights)," }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Gprime,variables,weights)[2];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "if S <> 0 then" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 " G := [op(G),S];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "fi;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "j := j + 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "i := i + 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "j := i + 1;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 3 "od;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "G;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "end;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%+GroebBasisGf*6%%\"FG%*variablesG%(w eightsG6'%\"GG%'GprimeG%\"iG%\"jG%\"SG6\"F0C&>8$9$>8%\"\"!?(F0\"\"\"F9 F00F3F6C&>F6F3>8&F9>8'\"\"#?(F0F9F9F02F>,&-%%nopsG6#F6F9F9F9C%?(F0F9F9 F02F@FDC%>8(&-%)MULTIDIVG6&-%&SPOLYG6&&F66#F>&F66#F@9%9&F6FYFZ6#FA@$0F MF7>F37$-%#opG6#F3FM>F@,&F@F9F9F9>F>,&F>F9F9F9>F@F`oF3F0F0F0" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "8 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }