{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 12 0 0 255 1 0 2 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 1 14 128 0 0 1 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Output" 2 20 "" 1 14 0 0 128 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 1 16 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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 6 6 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 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 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 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 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "Arial Black" 1 24 5 28 176 0 2 1 2 0 0 2 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Courier" 0 9 0 0 0 1 2 2 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Fo nt 2" -1 257 1 {CSTYLE "" -1 -1 "" 0 10 128 0 0 1 2 2 2 0 0 0 0 0 0 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 " " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 0 259 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 260 1 {CSTYLE "" -1 -1 " " 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 0 261 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } 3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 18 "" 0 "" {TEXT -1 27 "maplemint revisited (V5.08)" }}}{EXCHG {PARA 260 "" 0 "" {TEXT -1 63 "Copyright (c) 1997 by Waterloo Maple Inc.\npour l e code original" }}{PARA 258 "" 0 "" {TEXT -1 75 "Copyright (c) Pierre L. Douillet \npour les modifications\n" }}{PARA 259 "" 0 "" {TEXT -1 212 "libre utilisation de ces modifications pour \+ un usage universitaire sous reserve d'une copie compl\350te,\navec rep roduction du programme source dont, en particulier, la pr\351sente men tion\n \naucune garantie de fiabilit\351" }}{PARA 261 "" 0 "" {TEXT -1 87 "en particulier, toute utilisation dans un contexte industriel e st vivement d\351conseill\351e" }}}{EXCHG {PARA 256 "" 0 "" {TEXT -1 81 "\nd\351j\340 fait : affichage du nom, gestion de typematch\n\n\340 faire : gestion de seq\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "mmint:= pr oc(P::procedure) global T;\n T := table(); `mmint/mmrecurse`(P, 'T')\n end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "readlib (maplemint) :" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 7 " Typage" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 301 "[NINT, PINT, FRAC, REAL, TEXT, NAME, INDX, T YPE, JOIN, POWR, MULT, DEVL, CLIN, FUNC, UNEV, EQUA, NEQU, LEQU, LESS, AND_, NOT_, OREL, SEQU, LIST, LOC_, ARGS, LEXI, PROC, RANG, SET_, TAB L, HFTB, LOAD, LOOP, COND, READ, SAVE, CODE, QUIT, ITEM, HACH, GARB]: \+ \nANAMAX:= nops(%): ANA:=table(%%): ANA[0]:=0 : " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "naa:='naa': assign(seq(naa(ANA[k])=k, k=1..42)); \nan a:='ana': assign(seq(ana(k)=ANA[k], k=1..42)); " }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 70 " `mmint/FindProtected`:= proc(Set); select(type, Set, protected); end; \+ " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "`mmint/FindConstants`:= proc(Se t); select(type, Set, constant); end;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 125 "`mmint/FindNumber`:= proc(Set); select(type, Set, numeric); end ;\n`mmint/GetType`:= proc(z) disassemble(addressof(z))[1]; end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%4mmint/FindProtectedGR6#%$SetG6\"F(F (-%'selectG6%%%typeG9$%*protectedGF(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%4mmint/FindConstantsGR6#%$SetG6\"F(F(-%'selectG6%%%typeG9$%)co nstantGF(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%1mmint/FindNumberGR 6#%$SetG6\"F(F(-%'selectG6%%%typeG9$%(numericGF(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.mmint/GetTypeGR6#%\"zG6\"F(F(&-%,disassembleG6#-% *addressofG6#9$6#\"\"\"F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 226 "`mmint/FindGlobal`:= proc(T, nLevs, gToFind) local c;\n option \+ `Copyright (c) 1997 by Waterloo Maple Inc. All rights reserved.`;\n fo r c to nops(T) do if member(gToFind, T[c]['Globals']) then RETURN(c) f i od; \nRETURN(nLevs) end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%1mmint /FindGlobalGR6%%\"TG%&nLevsG%(gToFindG6#%\"cG6#%inCopyright~(c)~1997~b y~Waterloo~Maple~Inc.~All~rights~reserved.G6\"C$?(8$\"\"\"F2-%%nopsG6# 9$%%trueG@$-%'memberG6$9&&&F66#F16#.%(GlobalsG-%'RETURNGF?-FD6#9%F.F.F ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 477 "`mmint/FindLexical`:= proc(T, nLev, lToFind) \+ global LOC_, ARGS, LEXI; \nlocal a, b, c, d, e;\noption `Copyright (c) 1997 by Waterloo Maple Inc. All rights reserved.`;\n a := abs(lToFind ); b := op(2*a, eval(T[nLev]['Lexicals'], 1));\n c := disassemble(addr essof(b))[1];\n if c = naa(LOC_) or c = naa(ARGS) \n then d := nLev - 1\n elif c = naa(LEXI) \n then e := disassemble(addressof(b))[2]; d := procname('T', nLev - 1, e)\n else ERROR(\"invalid lexical type\", c)\n fi;\nRETURN(d) end;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%2mmint/ FindLexicalGR6%%\"TG%%nLevG%(lToFindG6'%\"aG%\"bG%\"cG%\"dG%\"eG6#%inC opyright~(c)~1997~by~Waterloo~Maple~Inc.~All~rights~reserved.G6\"C'>8$ -%$absG6#9&>8%-%#opG6$,$F5\"\"#-%%evalG6$&&9$6#9%6#.%)LexicalsG\"\"\"> 8&&-%,disassembleG6#-%*addressofG6#F;6#FL@'5/FN-%$naaG6#%%LOC_G/FN-Fen 6#%%ARGSG>8',&FHFL!\"\"FL/FN-Fen6#%%LEXIGC$>8(&FP6#F@>F]o-9!6%.FFF^oFf o-%&ERRORG6$Q5invalid~lexical~typeF2FN-%'RETURNG6#F]oF26%FgnF[oFcoF2" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 17 "entr\351es - sorties" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2156 "`mmint/mmrecurse`:= proc(P::procedure, T) global TY PE; \nlocal disa, Temp, i, j, k;\n k := nops(op(op(T))); k := k + 1;\n userinfo(2, maplemint, NoName, printf(\"Now at level %d\", k));\nif t ype(P, name) then T[k]['Name_']:= \" \".P.\" \" else T[k]['Name_']:= \+ \" \"; fi;\n\ndisa:= disassemble(disassemble(addressof(P))[2]);\n T[k] ['Break'] := false; T[k]['LoopDepth'] := 0;\n T[k]['AssignedParams'] : = \{\}; T[k]['AssignedLocs'] := \{\};\n T[k]['AssignedGlobs'] := \{\}; T[k]['UsedBeforeAssigned'] := \{\};\n T[k]['UsedParams'] := \{\}; T[k ]['UsedLocals'] := \{\};\n T[k]['UsedGlobals'] := \{\}; T[k]['DupLoop' ] := \{\};\n T[k]['LoopVar'] := []; T[k]['GlobalUnder'] := \{\};\n T[k ]['DeclaredProcNames'] := \{\}; T[k]['UnDecLocFunctions'] := \{\};\n T [k]['Message'] := NULL; T[k]['TypeMatch'] := false;\n Temp := pointto( disa[3]); T[k]['Locals'] := [Temp];\n Temp := pointto(disa[8]); T[k][' Globals'] := [Temp];\n for i to nops(T[k]['Globals']) do\n if subst ring(op(i, T[k]['Globals']), 1) = _ then\n T[k]['GlobalUnder'] := T [k]['GlobalUnder'] union op(i, T[k]['Globals'])\n fi\n od;\n Temp : = pointto(disa[2]); T[k]['Params'] := [];\n for i to nops([Temp]) do \n if disassemble(addressof(op(i, [Temp])))[1] = naa(TYPE) \n then j := pointto(disassemble(addressof(op(i, [Temp])))[2]); \n T[k]['P arams'] := [op(T[k]['Params']), j]\n else T[k]['Params'] := [op(T[k ]['Params']), op(i, [Temp])]\n fi\n od;\n Temp := pointto(disa[9]); T[k]['Lexicals'] := [Temp];\n Temp := pointto(disa[6]); `mmint/Statem ents`('T', Temp);\n\n T[k]['Locals'] := \{op(T[k]['Locals'])\};\n T[k] ['Params'] := \{op(T[k]['Params'])\};\n T[k]['Globals'] := \{op(T[k][' Globals'])\};\n Temp := `mmint/FindConstants`(T[k]['UsedGlobals'] minu s T[k]['Globals']);\n T[k]['UsedGlobals'] := T[k]['UsedGlobals'] minus Temp;\n Temp := `mmint/FindProtected`(T[k]['UsedGlobals'] minus T[k][ 'Globals']);\n T[k]['UsedGlobals'] := T[k]['UsedGlobals'] minus Temp; \n Temp := `mmint/FindNumber`(T[k]['UsedGlobals']);\n T[k]['UsedGlobal s'] := T[k]['UsedGlobals'] minus Temp;\n `mmint/report`('T');\n T[k] : = 'T'[k];\n if k - 1 = 0 then userinfo(2, maplemint, NoName, printf(\" Done\"))\n else userinfo(2, maplemint, NoName, printf(\"Back at level \+ %d\", k - 1))\n fi\nend:\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3304 "`mmint/report`:=proc(T) local k, Temp, printff, Er; \nk := nops( op(op(T))); Er:= T[k]['Name_']; \nprintff:=proc(msg, Set, Er) local i, len, Indent; Indent := '` : `'; \nif eval(Er) <> true \n then print(\"--------------\".(eval(Er)).\"--------------\"); Er:= true; f i; \n printf('`%s%s%a`', substring(cat(msg, '` \+ `'),1..50),\n '` : `', op(1, Set));\n len := l ength(Indent) + length(sprintf('`%a`', op(1, Set)));\n if 1 < nops(Se t) then printf('`, `'); len := len + 2 fi;\n for i from 2 to nops(Set ) do\n if interface('screenwidth') < len + length(sprintf('`%a`', o p(i, Set))) + 3 \n then printf('`\\n%s`',Indent); len := length(I ndent) fi;\n printf('`%a`', op(i, Set)); len := len + length(sprint f('`%a`', op(i, Set)));\n if i <> nops(Set) then printf('`, `'); le n := len + 2 fi\n od; printf('`\\n`')\nend;\n\nTemp := `mmint/FindPro tected`(T[k]['Params']) minus `mmint/FindConstants`(T[k]['Params']);\n if Temp <> \{\} then printff(\"Parameters with same name as system na mes: \", Temp, 'Er') fi;\nTemp := `mmint/FindProtected`(T[k]['Locals'] ) minus `mmint/FindConstants`(T[k]['Locals']);\n if Temp <> \{\} then \+ printff(\"Local variables with same name as system names: \", Temp, 'E r') fi;\nTemp := `mmint/FindProtected`(T[k]['Globals']) minus `mmint/F indConstants`(T[k]['Globals']);\n if Temp <> \{\} then printff(\"Globa l variables with same name as system names: \", Temp, 'Er') fi;\nTemp \+ := `mmint/FindConstants`(T[k]['Params']);\n if Temp <> \{\} then print ff(\"Parameters with the same name as constants: \", Temp, 'Er') fi;\n Temp := `mmint/FindConstants`(T[k]['Locals']);\n if Temp <> \{\} then \+ printff(\"Local variables with the same name as constants: \", Temp, ' Er') fi;\nTemp := `mmint/FindConstants`(T[k]['Globals']);\n if Temp <> \{\} then printff(\"Global variables with the same name as constants: \", Temp, Er) fi;\nTemp := `mmint/FindConstants`(T[k]['AssignedGlobs' ]);\n if Temp <> \{\} then printff(\"These constants cannot be assigne d a value: \", Temp, 'Er') fi;\nTemp := T[k]['GlobalUnder'];\n if Temp <> \{\} then printff(\"These global variables start with an '_': \", \+ Temp, 'Er')fi;\nTemp := T[k]['Globals'] minus (T[k]['UsedGlobals'] uni on T[k]['AssignedGlobs']);\n if Temp <> \{\} then printff(\"Declared \+ global variables, but never used: \", Temp, 'Er') fi;\nTemp := (T[k][' UsedGlobals'] union T[k]['AssignedGlobs']) minus T[k]['Globals'];\n i f Temp <> \{\} then printff(\"Names used as global names, but not decl ared: \", Temp, 'Er') fi;\nTemp := T[k]['Locals'] minus (T[k]['Assigne dLocs'] union T[k]['UsedLocals']);\n if Temp<>\{\} then printff(\"The se local variables were never used: \", Temp, 'Er') fi;\nTemp := T[k][ 'AssignedLocs'] minus T[k]['UsedLocals'];\n if Temp<>\{\} then printf f(\"Assigned local variables, but otherwise unused: \", Temp, 'Er')fi; \nTemp:= T[k]['UsedBeforeAssigned'];\n if Temp <> \{\} then printff( \"Local variables used before assigned : \", Temp, 'Er')fi;\nTemp := T [k]['Params'] minus (T[k]['AssignedParams'] union T[k]['UsedParams']); \n if Temp <> \{\} then printff(\"Parameters never used explicitly: \+ \", Temp, 'Er') fi;\nTemp:= T[k]['DupLoop']; \n if Temp <> \{\} then printff(\"Loop variables used for nested loops: \", Temp, 'Er') fi;\n Temp := [T[k]['Message']] ; while Temp <> [] \n do printff( Temp[1], \+ Temp[2], 'Er'); Temp:= subsop(1=NULL, 2=NULL, Temp) ; od;\nEr; end:" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "" 0 " " {MPLTEXT 0 21 61 "xprint(`maplemint/UpdUsed`); xprint(`maplemint/Upd Assigned`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 776 "`mmint/Statements`:= proc(T) globa l CODE; local a, b, c, i, k, Stat;\noption `Copyright (c) 1995 by Wate rloo Maple Inc. All rights reserved.`;\n k := nops(op(op(T))); if narg s < 2 then RETURN() fi;\n Stat := args[2 .. nargs];\n if `mmint/GetTyp e`(Stat) = naa(CODE) then\n a := nops([disassemble(addressof(Stat))]) ;\n for i from 2 to a do\n `mmint/Statement`('T', pointto(disassemb le(addressof(Stat))[i]));\n if T[k]['Break'] = true and i <> a then \n `maplemint/DoIndents`(\"This code is unreachable:\\n\", k);\n \+ for c from i + 1 to a do\n b := pointto(disassemble(addressof(Sta t))[c]); \n `maplemint/DoIndents`(\" %a\\n\", k, `maplemint/Map`( 'T', b))\n od;\n break\n fi\n od;\n T[k]['Break'] := false\n else `mmint/Statement`('T', Stat); T[k]['Break'] := false\n fi\nend; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%1mmint/StatementsGR6#%\"TG6(%\"a G%\"bG%\"cG%\"iG%\"kG%%StatG6#%inCopyright~(c)~1995~by~Waterloo~Maple~ Inc.~All~rights~reserved.G6\"C&>8(-%%nopsG6#-%#opG6#-F96#9$@$29#\"\"#- %'RETURNGF1>8)&9\"6#;FAF@@%/-%.mmint/GetTypeG6#FE-%$naaG6#%%CODEGC%>8$ -F66#7#-%,disassembleG6#-%*addressofGFN?(8'FA\"\"\"FU%%trueGC$-%0mmint /StatementG6$.F=-%(pointtoG6#&FY6#Fin@$3/&&F=6#F46#.%&BreakGF[o0FinFUC %-%4maplemint/DoIndentsG6$Q;This~code~is~unreachable:|+6\"F4?(8&,&FinF jnFjnFjnFjnFUF[oC$>8%-Fbo6#&FY6#Fgp-Fbp6%Q&~~%a|+FepF4-%.maplemint/Map G6$F`oF[q%&breakG>Fio%&falseGC$-F^o6$F`oFE>FioFhqF1FQF1" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4267 "`mmint/Statement`:= proc(T) global EQUA, SEQU, LOAD , LOOP, COND ; \nlocal a, b, c, d, e, k, typ, disa, Stat;\n# . ERROR p our [HFTB, QUIT] et les codes > HACH \noption `Copyright (c) 1995 by W aterloo Maple Inc. All rights reserved.`;\n k := nops(op(op(T))); if n args < 2 then RETURN() fi;\n Stat := args[2 .. nargs]; disa:= disassem ble(addressof(Stat));\n if 2 < nargs then typ := naa(SEQU) else typ := disa[1] fi;\n if member(typ, \{1, 2, 3, 4, 5, 15\}) then \n# [NINT, P INT, FRAC, REAL, TEXT, UNEV]\n\nelif member(typ,\n \{19, 20, 21, 22, 2 3, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 40, 41, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18\}) then\n# [NAME, INDX, TYPE, JOIN, POWR, MULT, DE VL, CLIN, FUNC, NEQU, LEQU, LESS, AND_, NOT_, \n# OREL, SEQU, LIST, L OC_, ARGS, LEXI, PROC, RANG, SET_, TABL, READ, SAVE, ITEM, HACH]\n a \+ := `mmint/Expression`('T', args[2 .. nargs]); `maplemint/UpdUsed`('T', a)\n elif typ = naa(EQUA) then\n a := `mmint/Expression`('T', Stat); `maplemint/UpdUsed`('T', a);\n T[k]['Message'] := T[k]['Message'], \+ \"This equation was used as a statement: \", \n \{`maplemint/Map`( 'T', Stat)\} ;\n elif typ = naa(LOAD) then\n a := `mmint/Expression`( 'T', pointto(disa[3])); `maplemint/UpdUsed`('T', a);\n b := `mmint/Ex pression`('T', pointto(disa[2])); `maplemint/UpdAssigned`('T', b)\n el if typ = naa(LOOP) then\n a := nops([disa]);\n if a = 5 then\n c : = `mmint/Expression`('T', pointto(disa[2]));\n `maplemint/UpdAssigne d`('T', c); `maplemint/UpdUsed`('T', c);\n d := \{seq(map(op, b)[], \+ b = c)\};\n if 1 < nops(d) then ERROR(\"Too many loop variables in f or in loop (5)\") fi;\n if d <> \{\} then\n if (member(op(1, d), \+ T[k]['Locals']) or \n member(op(1, d), T[k]['Params'])) and me mber(op(1, d), T[k]['LoopVar'])\n then T[k]['DupLoop'] := T[k]['Dup Loop'] union d\n elif not (member(op(1, d), T[k]['Locals']) or memb er(op(1, d), T[k]['Params'])) \n then for b from k - 1 by -1 to 1 \n do if member(op(1, d), T[b]['LoopVar']) \n then T[k]['Du pLoop'] := T[k]['DupLoop'] union d; break \n fi od\n fi;\n T [k]['LoopVar'] := [op(T[k]['LoopVar']), op(1, d)]\n fi;\n T[k]['Lo opDepth'] := T[k]['LoopDepth'] + 1;\n c := `mmint/Expression`('T', p ointto(disa[3])); `maplemint/UpdUsed`('T', c);\n c := `mmint/Express ion`('T', pointto(disa[4])); `maplemint/UpdUsed`('T', c);\n d := \{ seq(map(op, b)[], b = c)\};\n `mmint/Statements`('T', pointto(disa[5 ]));\n T[k]['LoopVar'] := [op(1 .. nops(T[k]['LoopVar']) - 1, T[k][' LoopVar'])];\n T[k]['LoopDepth'] := T[k]['LoopDepth'] - 1\n elif a \+ = 7 then\n c := `mmint/Expression`('T', pointto(disa[2]));\n `mapl emint/UpdAssigned`('T', c); `maplemint/UpdUsed`('T', c);\n d := \{se q(map(op, b)[], b = c)\};\n if 1 < nops(d) then ERROR(\"Too many loo p variables in full for loop (7)\") fi;\n if d <> \{\} then\n if \+ (member(op(1, d), T[k]['Locals']) \n or member(op(1, d), T[k]['P arams'])) and member(op(1, d), T[k]['LoopVar'])\n then T[k]['DupLoo p'] := T[k]['DupLoop'] union d\n elif not (member(op(1, d), T[k]['L ocals']) or member(op(1, d), T[k]['Params'])) \n then for b from k \+ - 1 by -1 to 1\n do if member(op(1, d), T[b]['LoopVar']) then T[k] ['DupLoop'] := T[k]['DupLoop'] union d fi\n od\n fi;\n T[k][ 'LoopVar'] := [op(T[k]['LoopVar']), op(1, d)]\n fi;\n T[k]['LoopDe pth'] := T[k]['LoopDepth'] + 1;\n c := `mmint/Expression`('T', point to(disa[3])); `maplemint/UpdUsed`('T', c);\n c := `mmint/Expression` ('T', pointto(disa[4])); `maplemint/UpdUsed`('T', c);\n c := `mmint/ Expression`('T', pointto(disa[5])); `maplemint/UpdUsed`('T', c);\n c := `mmint/Expression`('T', pointto(disa[6])); `maplemint/UpdUsed`('T' , c);\n d := \{seq(map(op, b)[], b = c)\};\n `mmint/Statements`('T ', pointto(disa[7]));\n T[k]['LoopVar'] := [op(1 .. nops(T[k]['LoopV ar']) - 1, T[k]['LoopVar'])];\n T[k]['LoopDepth'] := T[k]['LoopDepth '] - 1\n else ERROR(\"unrecognized kind of LOOP structure\")\n fi\n \+ elif typ = naa(COND) then\n b := nops([disa]);\n for c from 2 by 2 t o b - 1 do\n e := pointto(disa[c]); d := `mmint/Expression`('T', e); `maplemint/UpdUsed`('T', d)\n od;\n for c from 3 by 2 to b do `mmin t/Statements`('T', pointto(disa[c])) od;\n if b mod 2 = 0 then `mmint /Statements`('T', pointto(disa[b])) fi\n else typ := kernelopts(dagtag = typ); ERROR(\"unrecognized token type\", typ)\n fi\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%0mmint/StatementGR6#%\"TG6+%\"aG%\"bG%\"cG %\"dG%\"eG%\"kG%$typG%%disaG%%StatG6#%inCopyright~(c)~1995~by~Waterloo ~Maple~Inc.~All~rights~reserved.G6\"C(>8)-%%nopsG6#-%#opG6#-F<6#9$@$29 #\"\"#-%'RETURNGF4>8,&9\"6#;FDFC>8+-%,disassembleG6#-%*addressofG6#FH@ %2FDFC>8*-%$naaG6#%%SEQUG>FX&FN6#\"\"\"@/-%'memberG6$FX<(FjnFD\"\"$\" \"%\"\"&\"#:F4-F]o6$FX<>\"#G\"#H\"#I\"#J\"#O\"#P\"#S\"#T\"\"'\"\"(\"\" )\"\"*\"#5\"#6\"#7\"#8\"#9\"#<\"#=\"#>\"#?\"#@\"#A\"#B\"#C\"#D\"#E\"#F C$>8$-%1mmint/ExpressionG6$.F@FI-%2maplemint/UpdUsedG6$FiqFeq/FX-FZ6#% %EQUAGC%>Feq-Fgq6$FiqFHFjq>&&F@6#F76#.%(MessageG6%FfrQHThis~equation~w as~used~as~a~statement:~F4<#-%.maplemint/MapGFdr/FX-FZ6#%%LOADGC&>Feq- Fgq6$Fiq-%(pointtoG6#&FN6#F`oFjq>8%-Fgq6$Fiq-Fjs6#&FN6#FD-%6maplemint/ UpdAssignedG6$FiqF_t/FX-FZ6#%%LOOPGC$>Feq-F96#7#FN@'/FeqFboC1>8&F`t-Fg t6$FiqFfu-F[rFhu>8'<#-%$seqG6$&-%$mapG6$F&Fgr6#.%(DupLoopG-%&unionG6$FixF[v4Fcw?(F_t,&F7Fjn!\"\" FjnFcyFjn%%trueG@$-F]o6$Ffw&&F@6#F_tFexC$>FixF]y%&breakG>Fdx7$-F<6#Fdx Ffw>&Fgr6#.%*LoopDepthG,&FczFjnFjnFjn>FfuFgsFiu>Ffu-Fgq6$Fiq-Fjs6#&FN6 #FaoFiu>F[vF\\v-%1mmint/StatementsG6$Fiq-Fjs6#&FN6#Fbo>Fdx7#-F<6$;Fjn, &-F9FazFjnFcyFjnFdx>Fcz,&FczFjnFcyFjn/FeqF`pC5>FfuF`tFguFiu>F[vF\\v@$F fv-Fjv6#QMToo~many~loop~variables~in~full~for~loop~(7)F4@$F^wC$@&Fbw>F ixF]yF`y?(F_tFbyFcyFjnFdy@$Ffy>FixF]y>FdxF_z>FczFgz>FfuFgsFiu>FfuFjzFi u>Ffu-FgqFc[lFiu>Ffu-Fgq6$Fiq-Fjs6#&FN6#F_pFiu>F[vF\\v-Fb[l6$Fiq-Fjs6# &FN6#F`p>FdxFi[l>FczF`\\l-Fjv6#QDunrecognized~kind~of~LOOP~structureF4 /FX-FZ6#%%CONDGC&>F_tF_u?(FfuFDFD,&F_tFjnFcyFjnFdyC%>8(-Fjs6#&FN6#Ffu> F[v-Fgq6$FiqFc_l-F[r6$FiqF[v?(FfuF`oFDF_tFdy-Fb[l6$FiqFd_l@$/-%$modG6$ F_tFD\"\"!-Fb[l6$Fiq-Fjs6#&FNFjyC$>FX-%+kerneloptsG6#/%'dagtagGFX-Fjv6 $Q8unrecognized~token~typeF4FXF46'F`rFfnFdsF\\uF\\_lF4" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 529 "`mmint/BuildList`:= proc(nLevs, listVals) local i, \+ j, L;\noption `Copyright (c) 1997 by Waterloo Maple Inc. All rights re served.`;\n L := [seq([seq(\{\}, j = 1 .. nLevs)], i = 1 .. 3)];\n for i by 3 to nops(listVals) do\n L[listVals[i]][listVals[i + 1]] := L[l istVals[i]][listVals[i + 1]] union listVals[i + 2]\n od;\n RETURN(L)\n end;\n`mmint/CombList`:=proc(A, B) \noption `Copyright (c) 1997 Waterl oo Maple Inc. All rights reserved.`;\n[zip(`union`, op(1,A),op(1,B)), \+ zip(`union`, op(2,A),op(2, B)), zip(`union`, op(3,A), op(3,B))];\nend; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%0mmint/BuildListGR6$%&nLevsG%)li stValsG6%%\"iG%\"jG%\"LG6#%inCopyright~(c)~1997~by~Waterloo~Maple~Inc. ~All~rights~reserved.G6\"C%>8&7#-%$seqG6$7#-F56$<\"/8%;\"\"\"9$/8$;F> \"\"$?(FAF>FC-%%nopsG6#9%%%trueG>&&F26#&FH6#FA6#&FH6#,&FAF>F>F>-%&unio nG6$FK&FH6#,&FAF>\"\"#F>-%'RETURNG6#F2F/F/F/" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%/mmint/CombListGR6$%\"AG%\"BG6\"6#%fnCopyright~(c)~19 97~Waterloo~Maple~Inc.~All~rights~reserved.GF)7%-%$zipG6%%&unionG-%#op G6$\"\"\"9$-F26$F49%-F.6%F0-F26$\"\"#F5-F26$F=F8-F.6%F0-F26$\"\"$F5-F2 6$FDF8F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "ici" {MPLTEXT 1 0 6772 "`mmint/Expression`:= proc(T) g lobal INDX,TYPE,UNEV,NOT_,SEQU,FUNC,NAME,LOC_,ARGS,LEXI,PROC ;\nlocal \+ a, b, c, d, e, f, g, h, i, k, typ, Pfound, Lfound, Gfound;\noption `Co pyright (c) 1995 by Waterloo Maple Inc. All rights reserved.`;\n k := \+ nops(op(op(T)));\n if nargs < 2 then RETURN(`mmint/BuildList`(k, [])) \+ fi;\n a := args[2 .. nargs];\n if 2 < nargs then typ := naa(SEQU) else typ := `mmint/GetType`(a) fi;\n\n if member(typ, \{1, 2, 3, 4, 5\}) # numeric/string \n then RETURN(`mmint/BuildList`(k, []))\n elif typ = \+ naa(NAME) \n then\n if a = substring(`%%%quote`, 1) or a = substring( `%%%quote`, 1 .. 2) \n or a = substring(`%%%quote`, 1 .. 3) \n the n RETURN(`mmint/BuildList`(k, []))\n elif T[k]['LoopDepth'] = 0 and ( a = break or a = next) \n then T[k]['Message']= T[k]['Message'], a, \+ \"found outside of loop body\" ;\n RETURN(`mmint/BuildList`(k, [])) \n elif a = break \n then T[k]['Break'] := true; RETURN(`mmint/Build List`(k, []))\n elif disassemble(addressof(args[2]))[1] = naa(PROC) \+ \n then `mmint/mmrecurse`(a, 'T');\n RETURN(`mmint/BuildList`(k, \+ []))\n else b := `mmint/FindGlobal`('T', k, a); c := `mmint/BuildList `(k, [3, b, \{a\}]); RETURN(c)\n fi\n\n elif typ = naa(TYPE) \n then \+ c := procname('T', pointto(disassemble(addressof(a))[2]));\n d := procname('T', pointto(disassemble(addressof(a))[3]));\n `mmint/C ombList` (c,d);\n### print(typage, %);\n RETURN(%)\n\n elif member(typ , \{29, 19, 20, 22, 16, 17, 18, 9, 10, 7\})\n # [INDX, JOIN, POWR, \+ EQUA, NEQU, LEQU, LESS, AND_, OREL, RANG] \n then\n b := pointto(disa ssemble(addressof(a))[2]);\n c := pointto(disassemble(addressof(a))[3 ]);\n d := procname('T', pointto(disassemble(addressof(a))[2]));\n e := procname('T', pointto(disassemble(addressof(a))[3]));\n f := `mmi nt/CombList`(d, e);\n RETURN(f)\n elif typ = naa(NOT_) then c := proc name('T', pointto(disassemble(addressof(a))[2])); RETURN(c)\n elif mem ber(typ, \{23, 12, 13, 11\}) #[MULT, DEVL, CLIN, SEQU] \n then\n b := nops([disassemble(addressof(a))]);\n f := `mmint/BuildList`(k, []); \n for c from 2 to b do e := procname('T', pointto(disassemble(addres sof(a))[c])); \n f := `mmint/CombList`(f, e) od ;\n RETURN(f)\n el if typ = naa(FUNC) then\n b := `mmint/BuildList`(k, []);\n Pfound := op(1, b);\n Lfound := op(2, b);\n Gfound := op(3, b);\n h := point to(disassemble(addressof(a))[2]);\n\n b := pointto(disassemble(addres sof(a))[3]);\n c := procname('T', pointto(disassemble(addressof(a))[3 ]));\n Pfound := zip(`union`, Pfound, op(1, c));\n Lfound := zip(`un ion`, Lfound, op(2, c));\n Gfound := zip(`union`, Gfound, op(3, c)); \n\nif h='typematch' then \n# print(liste_found, Pfound, Lfound, Gfoun d); \n# print(avant, T[k]['UsedLocals'], T[k]['AssignedLocs']);\n `m aplemint/UpdAssigned`('T', subsop(2=Lfound, `mmint/BuildList`(k, []))) ;\n Lfound:= `mmint/BuildList`(k, []) [2];\n# print(apres, T[k]['Use dLocals'], T[k]['AssignedLocs']);\nfi;\n\n d := `mmint/GetType`(h);\n if member(d, \{1, 2, 3, 4\}) then\n T[k]['Message']= T[k]['Message '], \n \"This expression may be missing an operator like '*': \", \+ `maplemint/Map`('T', a);\n elif d = naa(LOC_) then\n e := disassemb le(addressof(h))[2];\n if not member(op(e, T[k]['Locals']), T[k]['De claredProcNames']) then\n T[k]['UnDecLocFunctions'] := T[k]['UnDecL ocFunctions'] union \{op(e, T[k]['Locals'])\};\n T[k]['UsedLocals'] := T[k]['UsedLocals'] union \{op(e, T[k]['Locals'])\}\n fi\n elif \+ d = naa(ARGS) then\n e := disassemble(addressof(h))[2]; \n T[k]['U sedParams'] := T[k]['UsedParams'] union \{op(e, T[k]['Params'])\}\n e lif d = naa(LEXI) then\n e := disassemble(addressof(h))[2]; f := `mm int/FindLexical`('T', k, e);\n if 0 < e then\n if not member(op(2 *abs(e) - 1, eval(T[k]['Lexicals'], 1)), T[f]['DeclaredProcNames']) \n then T[f]['UnDecLocFunctions'] := T[f]['UnDecLocFunctions'] \n \+ union \{op(2*abs(e) - 1, eval(T[k]['Lexicals'], 1))\};\n T[ f]['UsedLocals'] := T[f]['UsedLocals'] \n union \{op(2*abs(e) - 1, eval(T[k]['Lexicals'], 1))\}\n fi\n else T[f]['UsedParams'] := T[f]['UsedParams'] \n union \{op(2*abs(e) - 1, eval(T[k][ 'Lexicals'], 1))\}\n fi\n elif d = naa(NAME) then if h = RETURN or \+ h = ERROR then T[k]['Break'] := true fi\n elif d = naa(INDX) then\n \+ e := pointto(disassemble(addressof(h))[2]);\n f := `mmint/GetType`( e);\n if member(f, \{1, 2, 3, 4\}) then\n T[k]['Message']= T[k]['M essage'], \n \"This expression may be missing an operator like '*' : \", `maplemint/Map`('T', a);\n elif f = naa(LOC_) then\n g := d isassemble(addressof(e))[2];\n if not member(op(g, T[k]['Locals']), T[k]['DeclaredProcNames']) then\n T[k]['UnDecLocFunctions'] := T[ k]['UnDecLocFunctions'] \n union \{op(disassemble(addressof(e)) [2], T[k]['Locals'])\} ;\n T[k]['UsedLocals'] := T[k]['UsedLocals' ] union \{op(g, T[k]['Locals'])\}\n fi\n elif f = naa(ARGS) then \n g := disassemble(addressof(e))[2]; \n T[k]['UsedParams'] := T [k]['UsedParams'] union \{op(g, T[k]['Params'])\}\n elif f = naa(LEX I) then\n g := disassemble(addressof(e))[2];\n i := `mmint/FindL exical`('T', k, g);\n if 0 < i then\n if not member(op(2*abs(g) - 1, eval(T[k]['Lexicals'], 1)), T[i]['DeclaredProcNames']) \n th en T[i]['UnDecLocFunctions'] := T[i]['UnDecLocFunctions'] \n un ion \{op(2*abs(g) - 1, eval(T[k]['Lexicals'], 1))\};\n T[i]['Used Locals'] := T[i]['UsedLocals'] \n union \{op(2*abs(g) - 1, eval (T[k]['Lexicals'], 1))\}\n fi\n else T[i]['UsedParams'] := T[i] ['UsedParams'] \n union \{op(2*abs(g) - 1, eval(T[k]['Lexicals' ], 1))\}\n fi\n fi;\n e := pointto(disassemble(addressof(h))[3] );\n f := procname('T', e);\n Pfound := zip(`union`, Pfound, op(1, f));\n Lfound := zip(`union`, Lfound, op(2, f));\n Gfound := zip( `union`, Gfound, op(3, f))\n else\n e := procname('T', h);\n Pfou nd := zip(`union`, Pfound, op(1, e));\n Lfound := zip(`union`, Lfoun d, op(2, e));\n Gfound := zip(`union`, Gfound, op(3, e))\n fi;\n R ETURN([Pfound, Lfound, Gfound])\n elif typ = naa(UNEV) then RETURN(`mm int/BuildList`(k, []))\n elif member(typ, \{30, 24\}) # SET_, LIST \n \+ then c := procname('T', pointto(disassemble(addressof(a))[2])); RETUR N(c)\n elif typ = naa(LOC_) then\n b := disassemble(addressof(a))[2]; \n c := op(b, T[k]['Locals']);\n d := `mmint/BuildList`(k, [2, k, \{ c\}]);\n RETURN(d)\n elif typ = naa(ARGS) then\n b := disassemble(ad dressof(a))[2];\n if b < 1 then RETURN(`mmint/BuildList`(k, [])) fi; \n c := op(b, T[k]['Params']);\n d := `mmint/BuildList`(k, [1, k, \{ c\}]);\n RETURN(d)\n elif typ = naa(LEXI) then\n b := disassemble(ad dressof(a))[2];\n e := `mmint/FindLexical`('T', k, b);\n c := op(2*a bs(b) - 1, eval(T[k]['Lexicals'], 1));\n if b < 0 then d := `mmint/Bu ildList`(k, [1, e, \{c\}]) else d := `mmint/BuildList`(k, [2, e, \{c\} ]) fi;\n RETURN(d)\n else typ := kernelopts(dagtag = typ); ERROR(\" n ot implemented \", typ)\n fi\nend;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%1mmint/ExpressionGR6#%\"TG60%\"aG%\"bG%\"cG%\"dG%\"eG%\"fG%\"gG%\"hG %\"iG%\"kG%$typG%'PfoundG%'LfoundG%'GfoundG6#%inCopyright~(c)~1995~by~ Waterloo~Maple~Inc.~All~rights~reserved.G6\"C'>8--%%nopsG6#-%#opG6#-FA 6#9$@$29#\"\"#-%'RETURNG6#-%0mmint/BuildListG6$F<7\">8$&9\"6#;FIFH@%2F IFH>8.-%$naaG6#%%SEQUG>FZ-%.mmint/GetTypeG6#FR@;-%'memberG6$FZ<'\"\"\" FI\"\"$\"\"%\"\"&FJ/FZ-Ffn6#%%NAMEG@+55/FR-%*substringG6$%)%%%quoteGFb o/FR-F_p6$Fap;FboFI/FR-F_p6$Fap;FboFcoFJ3/&&FE6#F<6#.%*LoopDepthG\"\"! 5/FR%&breakG/FR%%nextGC$6%/&F]q6#.%(MessageGF[rFRQ;found~outside~of~lo op~bodyF9FJFdqC$>&F]q6#.%&BreakG%%trueGFJ/&-%,disassembleG6#-%*address ofG6#&FT6#FI6#Fbo-Ffn6#%%PROCGC$-%0mmint/mmrecurseG6$FR.FEFJC%>8%-%1mm int/FindGlobalG6%FisF8&-FN6$F<7%FcoF\\t<#FR-FK6#Fat/FZ-Ffn6#%%TYPE GC&>Fat-9!6$Fis-%(pointtoG6#&-Fjr6#-F]sF\\oF`s>8'-F_u6$Fis-Fbu6#&Feu6# Fco-%/mmint/CombListG6$FatFiu-FK6#%\"%G-F_o6$FZ<,\"#H\"\"(\"\"*\"#5\"# ;\"#<\"#=\"#>\"#?\"#AC(>F\\tFau>FatF\\v>FiuF^u>8(Fju>8)-Fav6$FiuFhw-FK 6#Fjw/FZ-Ffn6#%%NOT_GC$>FatF^uFft-F_o6$FZ<&\"#6\"#7\"#8\"#BC&>F\\t-F>6 #7#Feu>FjwFM?(FatFIFboF\\tFfrC$>Fhw-F_u6$Fis-Fbu6#&FeuFgt>Fjw-Fav6$Fjw FhwF]x/FZ-Ffn6#%%FUNCGC0>F\\tFM>8/-FA6$FboF\\t>80-FA6$FIF\\t>81-FA6$Fc oF\\t>8+Fau>F\\tF\\v>FatFju>Fdz-%$zipG6%%&unionGFdz-FA6$FboFat>Fhz-Fe[ l6%Fg[lFhz-FA6$FIFat>F\\[l-Fe[l6%Fg[lF\\[l-FA6$FcoFat@$/F`[l.%*typemat chGC$-%6maplemint/UpdAssignedG6$Fis-%'subsopG6$/FIFhzFM>Fhz&FMF`s>Fiu- F[o6#F`[l@/-F_o6$Fiu<&FboFIFcoFdo6%FjqQVThis~expression~may~be~missing ~an~operator~like~'*':~F9-%.maplemint/MapG6$FisFR/Fiu-Ffn6#%%LOC_GC$>F hw&-Fjr6#-F]sFd]lF`s@$4-F_o6$-FA6$Fhw&F]q6#.%'LocalsG&F]q6#.%2Declared ProcNamesGC$>&F]q6#.%2UnDecLocFunctionsG-Fg[l6$Fh_l<#F\\_l>&F]q6#.%+Us edLocalsG-Fg[l6$F``lF^`l/Fiu-Ffn6#%%ARGSGC$>FhwFd^l>&F]q6#.%+UsedParam sG-Fg[l6$F]al<#-FA6$Fhw&F]q6#.%'ParamsG/Fiu-Ffn6#%%LEXIGC%>FhwFd^l>Fjw -%2mmint/FindLexicalG6%FisF&FiclFi_l-Fg[l6$F \\dl<#Fjbl>&FiclFa`l-Fg[l6$FadlF_dl>&FiclF^al-Fg[l6$FedlF_dl/FiuFgo@$5 /F`[lFK/F`[l%&ERRORG>FbrFfr/Fiu-Ffn6#%%INDXGC*>Fhw-Fbu6#Fd^l>Fjw-F[oF_ cl@*-F_o6$FjwFh]lFi]l/FjwF_^lC$>8*&-Fjr6#-F]sF_clF`s@$4-F_o6$-FA6$F_fl F^_lFb_lC$>Fh_l-Fg[l6$Fh_l<#-FA6$F`flF^_l>F``l-Fg[l6$F``l<#Fhfl/FjwFg` lC$>F_flF`fl>F]al-Fg[l6$F]al<#-FA6$F_flFfal/FjwF[blC%>F_flF`fl>8,-Fbbl 6%FisF&FailFi_l-Fg[l6$Feil<#F[il>&FailFa`l-Fg[l6$FjilFhil>&FailF^al- Fg[l6$F^jlFhil>Fhw-Fbu6#&Fe^lF_v>Fjw-F_u6$FisFhw>Fdz-Fe[l6%Fg[lFdz-FA6 $FboFjw>Fhz-Fe[l6%Fg[lFhz-FA6$FIFjw>F\\[l-Fe[l6%Fg[lF\\[l-FA6$FcoFjwC& >Fhw-F_u6$FisF`[l>Fdz-Fe[l6%Fg[lFdz-FA6$FboFhw>Fhz-Fe[l6%Fg[lFhz-FA6$F IFhw>F\\[l-Fe[l6%Fg[lF\\[l-FA6$FcoFhw-FK6#7%FdzFhzF\\[l/FZ-Ffn6#%%UNEV GFJ-F_o6$FZ<$\"#I\"#CC$>FatF^uFft/FZF_^lC&>F\\tFdu>Fat-FA6$F\\tF^_l>Fi u-FN6$F<7%FIF<<#Fat-FK6#Fiu/FZFg`lC'>F\\tFdu@$2F\\tFboFJ>Fat-FA6$F\\tF fal>Fiu-FN6$F<7%FboFF\\tFdu>Fhw-Fbbl6%FisFFat -FA6$,&-F^cl6#F\\tFIF`clFboFacl@%2F\\tFbq>Fiu-FN6$F<7%FboFhwFb^m>Fiu-F N6$F<7%FIFhwFb^mFc^mC$>FZ-%+kerneloptsG6#/%'dagtagGFZ-F]el6$Q2~not~imp lemented~F9FZF96-FbelF[uF`]mFbxFhnF`zFioFa^lFi`lF]blFdsF9" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 242 "\{1, 2, 3, 4, 5\} union map(naa,\{ NAME,TYPE,NOT_,FUNC,UNEV,SET_,LIST,LOC_,ARGS,LEXI\}union \{INDX, JOIN, POWR, EQUA, NEQU, LEQU, LESS, AND_, OREL, RANG\}) :\nsort(convert(%, \+ list));\nconvert(\{$1..41\} minus convert(%,set), list): sort(%); map( ana, %);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7;\"\"\"\"\"#\"\"$\"\"%\" \"&\"\"'\"\"(\"\")\"\"*\"#5\"#9\"#:\"#;\"#<\"#=\"#>\"#?\"#@\"#A\"#C\"# D\"#E\"#F\"#H\"#I" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#72\"#6\"#7\"#8\"# B\"#G\"#J\"#K\"#L\"#M\"#N\"#O\"#P\"#Q\"#R\"#S\"#T" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#72%%MULTG%%DEVLG%%CLING%%SEQUG%%PROCG%%TABLG%%HFTBG%%LO ADG%%LOOPG%%CONDG%%READG%%SAVEG%%CODEG%%QUITG%%ITEMG%%HACHG" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 424 "[\"ana\", \"mmint/BuildList \", \"mmint/CombList\", \"maplemint/DoIndents\", \"mmint/Expression\", \"mmint/FindGlobal\", \"mmint/FindLexical\", \"maplemint/Map\", \"map lemint/PrintSet\", \"maplemint/UpdAssigned\", \"maplemint/UpdUsed\", \+ \"mmint\", \"mmint/FindConstants\", \"mmint/FindNumber\", \"mmint/Find Protected\", \"mmint/GetType\", \"mmint/Statement\", \"mmint/Statement s\", \"mmint/mmrecurse\", \"mmint/report\", \"naa\"]:sort(%);\nliste:= map(convert,%,name):" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#77Q$ana6\"Q4m aplemint/DoIndentsF%Q.maplemint/MapF%Q3maplemint/PrintSetF%Q6maplemint /UpdAssignedF%Q2maplemint/UpdUsedF%Q&mmintF%Q0mmint/BuildListF%Q/mmint /CombListF%Q1mmint/ExpressionF%Q4mmint/FindConstantsF%Q1mmint/FindGlob alF%Q2mmint/FindLexicalF%Q1mmint/FindNumberF%Q4mmint/FindProtectedF%Q. mmint/GetTypeF%Q0mmint/StatementF%Q1mmint/StatementsF%Q0mmint/mmrecurs eF%Q-mmint/reportF%Q$naaF%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "savelib(op(liste), ` mmint.m`);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "map(convert,\{anames() \}minus convert(liste,set), string): sort(convert(%, list));" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7@Q$ANA6\"Q'ANAMAXF%Q-_EnvExplicitF%Q-_EnvLi nalg95F%Q.context/cfgetF%Q-convert/listF%Q,convert/setF%Q(displayF%Q3i ndex/FillInitValsF%Q+index/fillF%Q&listeF%Q*maplemintF%Q4maplemint/Bui ldListF%Q3maplemint/CombListF%Q5maplemint/ExpressionF%Q8maplemint/Find ConstantsF%Q5maplemint/FindGlobalF%Q6maplemint/FindLexicalF%Q5maplemin t/FindNumberF%Q8maplemint/FindProtectedF%Q2maplemint/GetTypeF%Q6maplem int/PrintReportF%Q4maplemint/StatementF%Q5maplemint/StatementsF%Q4mapl emint/mmrecurseF%Q(norm/exF%Q-type/CompSeqF%Q-type/packageF%Q0with/get packageF%Q,with/loadedF%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 42 "for k in liste do lprint(k); mmint(k); od:" }} {PARA 6 "" 1 "" {TEXT -1 3 "ana" }}{PARA 6 "" 1 "" {TEXT -1 19 "maplem int/DoIndents" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QR--------------~mapl emint/DoIndents~--------------6\"" }}{PARA 6 "" 1 "" {TEXT -1 54 "Loca l variables used before assigned : : i" }}{PARA 6 "" 1 "" {TEXT -1 13 "maplemint/Map" }}{PARA 6 "" 1 "" {TEXT -1 18 "maplemint/P rintSet" }}{PARA 6 "" 1 "" {TEXT -1 21 "maplemint/UpdAssigned" }} {PARA 6 "" 1 "" {TEXT -1 17 "maplemint/UpdUsed" }}{PARA 6 "" 1 "" {TEXT -1 5 "mmint" }}{PARA 6 "" 1 "" {TEXT -1 15 "mmint/BuildList" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#QN--------------~mmint/BuildList~----- ---------6\"" }}{PARA 6 "" 1 "" {TEXT -1 57 "Local variables used befo re assigned : : j, i" }}{PARA 6 "" 1 "" {TEXT -1 14 "mmint /CombList" }}{PARA 6 "" 1 "" {TEXT -1 16 "mmint/Expression" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QO--------------~mmint/Expression~---------- ----6\"" }}{PARA 6 "" 1 "" {TEXT -1 61 "Names used as global names, bu t not declared: : %%%quote" }}{PARA 6 "" 1 "" {TEXT -1 19 "mmint/ FindConstants" }}{PARA 6 "" 1 "" {TEXT -1 16 "mmint/FindGlobal" }} {PARA 6 "" 1 "" {TEXT -1 17 "mmint/FindLexical" }}{PARA 6 "" 1 "" {TEXT -1 16 "mmint/FindNumber" }}{PARA 6 "" 1 "" {TEXT -1 19 "mmint/Fi ndProtected" }}{PARA 6 "" 1 "" {TEXT -1 13 "mmint/GetType" }}{PARA 6 " " 1 "" {TEXT -1 15 "mmint/Statement" }}{PARA 6 "" 1 "" {TEXT -1 16 "mm int/Statements" }}{PARA 6 "" 1 "" {TEXT -1 15 "mmint/mmrecurse" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#QN--------------~mmint/mmrecurse~----- ---------6\"" }}{PARA 6 "" 1 "" {TEXT -1 62 "Names used as global name s, but not declared: : _, NoName" }}{PARA 6 "" 1 "" {TEXT -1 12 " mmint/report" }}{PARA 6 "" 1 "" {TEXT -1 3 "naa" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 183 "rejet:= proc() global chances, seuils, maxi, \+ sigma, n, nb; local t, k;\nwhile evalb(true) do nb:=nb+1:\nt:= n*xlgm( ); k:= ceil(t); \nif (k-t)*maxi < chances[k] then RETURN(k) fi\nod;\ne nd:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "mmint(rejet);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#QD--------------~rejet~--------------6 \"" }}{PARA 6 "" 1 "" {TEXT -1 66 "Declared global variables, but neve r used: : sigma, seuils" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "32 0 0" 0 }{VIEWOPTS 1 1 0 1 1 1803 }