{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 "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 " " 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "Error" 7 8 1 {CSTYLE "" -1 -1 "" 0 1 255 0 255 1 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 "Diagnostic" 7 9 1 {CSTYLE "" -1 -1 "" 0 1 64 128 64 1 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 374 "with(StringTools): \nToNumList := proc(str::string)\n local slist;\n global Alphabet; \n slist := Explode(str);\n return(\n map(x->SearchText(x,Alphab et)-1, slist));\nend:\nNumListToStr:=proc(l::list)\n global Alphabet; \n return(\n Implode(map(x->Alphabet[x+1], l)));\nend:\n\nAlphabet: =Implode([\"\\n\",\"\\t\",op(select(IsPrintable,[seq(Char(i),i=1..255) ]))]);\np:=length(Alphabet):" }}{PARA 7 "" 1 "" {TEXT -1 58 "Warning, \+ the assigned name Group now has a global binding\n" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%)AlphabetGQ\\q|+|*~!\"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz|fr|gr|hr| ir6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 399 "TextToVects := pr oc(text::string, n::posint)\n local pad, s, nums, i, j;\n # first, pad out the text to be a multiple of n in length.\n pad := \" \";\n \+ s:=text;\n while (length(s) mod n <> 0 ) do\n s := cat(s, pad); \+ # I could use s||pad if I wanted to, but I don't cuz I hate it.\n od; \n\n nums := ToNumList(s);\n return( [ seq( [seq( nums[n*(j-1) + i], i=1..n) ], j=1..length(s)/n) ] );\nend:\n\n\n " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "VectsToText := vecs -> NumListToStr(map(op, vecs));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%,VectsToTextGf*6#%%vecsG6\"6$%)operatorG%&arrowGF(-%-NumListTo StrG6#-%$mapG6$%#opG9$F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "VectsToText([[54, 74], [71,2]]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q%The~6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 62 "teststr:=\"The devil is on t he loose and dancin with a monkey\":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ToNumList(teststr);" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#7T\"#a\"#u\"#r\"\"#\"#qF&\"#))\"#v\"#yF'F*\"#&)F'\"#\")\"#!)F'\"#')F %F&F'F+F-F-F,F&F'\"#nF.F(F'F(F0F.\"#pF*F.F'\"#*)F*F/F%F'F0F'\"#zF-F.\" #xF&\"#\"*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "TextToVects(t eststr, 4);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#7/7&\"#a\"#u\"#r\"\"#7& \"#qF'\"#))\"#v7&\"#yF(F,\"#&)7&F(\"#\")\"#!)F(7&\"#')F&F'F(7&F.F1F1F/ 7&F'F(\"#nF27&F*F(F*F77&F2\"#pF,F27&F(\"#*)F,F47&F&F(F7F(7&\"#zF1F2\"# x7&F'\"#\"*F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "VectsToT ext(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#QUThe~devil~is~on~the~loose ~and~dancin~with~a~monkey~~6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 281 "AffineMatEncode := proc(text, A,B)\n local n, vecs, vcrypt; \n global p, Alphabet;\n n := nops(convert(B,list));\n\n vecs := Te xtToVects(text, n);\n vcrypt := [ seq( map( modp, evalm( (A &* vecs[i ] + B)), p),\n i=1..nops(vecs))];\n return(VectsTo Text(vcrypt));\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "AffineMatEncode(\"I'm mixed up\", [[0,1],[1,0]], [0,0]);" }}{PARA 9 "" 1 "" {TEXT -1 214 "\{--> e nter VectsToText, args = [array(1 .. 2,[(1)=9,(2)=43]), array(1 .. 2,[ (1)=2,(2)=79]), array(1 .. 2,[(1)=75,(2)=79]), array(1 .. 2,[(1)=71,(2 )=90]), array(1 .. 2,[(1)=2,(2)=70]), array(1 .. 2,[(1)=82,(2)=87])]" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q-'I~mimex~dpu6\"" }}{PARA 9 "" 1 " " {TEXT -1 63 "<-- exit VectsToText (now in AffineMatEncode) = \"'I mi mex dpu\"\}" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q-'I~mimex~dpu6\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "v:=[convert([0,1], vector), \+ convert([27,2],vector)];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"vG7$-%'vectorG6#7$\"\"!\"\"\"-F'6# 7$\"#F\"\"#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "VectsToText( v);" }}{PARA 8 "" 1 "" {TEXT -1 41 "Error, (in unknown) invalid terms \+ in sum\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "map(op,v);\nmap (op,[[0, 1],[27, 2]] );" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#7&;\"\"\"\"\"#7$/F%\"\"!/F&F%F$7$/F%\" #F/F&F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7&\"\"!\"\"\"\"#F\"\"#" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 111 "VectsToText := vecs -> NumL istToStr(map(op, \n map(convert ,vecs, list)));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%,VectsToTextGf*6# %%vecsG6\"6$%)operatorG%&arrowGF(-%-NumListToStrG6#-%$mapG6$%#opG-F06% %(convertG9$%%listGF(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "VectsToText(v);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q%|+|*9~6\"" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "AffineMatEncode(\"I'm mixed up\", [[0,1],[1,0]], [0,0]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q-'I~ mimex~dpu6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "AffineMatEn code(%, [[0,1],[1,0]], [0,0]);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q-I' m~mixed~up6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "?inverse" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 179 "AffineMatDecode:= proc(te xt, A,B)\n local Ainv, negAinvB;\n Ainv := linalg[inverse](A);\n \+ negAinvB := evalm(- Ainv &* B);\n return(AffineMatEncode(text, Ainv , negAinvB));\nend;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%0AffineMatDec odeGf*6%%%textG%\"AG%\"BG6$%%AinvG%)negAinvBG6\"F-C%>8$-&%'linalgG6#%( inverseG6#9%>8%-%&evalmG6#,$-%#&*G6$F09&!\"\"O-%0AffineMatEncodeG6%9$F 0F9F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 142 "crypt:=Affine MatEncode(\"stuff stuff stuffy stuff\", [[9, 27, 6], [5, 8, 18], [3, \+ 1, 4]], [1, 2, 3]);" }} {PARA 9 "" 1 "" {TEXT -1 330 "\{--> enter VectsToText, args = [array(1 .. 3,[(1)=21,(2)=62,(3)=13]), array(1 .. 3,[(1)=83,(2)=4,(3)=8]), arr ay(1 .. 3,[(1)=21,(2)=62,(3)=13]), array(1 .. 3,[(1)=83,(2)=4,(3)=8]), array(1 .. 3,[(1)=21,(2)=62,(3)=13]), array(1 .. 3,[(1)=35,(2)=54,(3) =73]), array(1 .. 3,[(1)=17,(2)=9,(3)=50]), array(1 .. 3,[(1)=56,(2)=7 8,(3)=42])]" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q93\\+q\"&3\\+q\"&3\\+A Tg/'PVlH6\"" }}{PARA 9 "" 1 "" {TEXT -1 80 "<-- exit VectsToText (now \+ in AffineMatEncode) = \"3\\\\+q\\\"&3\\\\+q\\\"&3\\\\+ATg/'PVlH\"\}" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&cryptGQ93\\+q\"&3\\+q\"&3\\+ATg/'P VlH6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "AffineMatDecode( crypt, [[9, 27, 6], [5, 8, 18], [3, 1, 4]], \+ [1, 2, 3]);" }}{PARA 9 "" 1 "" {TEXT -1 332 "\{--> ent er VectsToText, args = [array(1 .. 3,[(1)=85,(2)=86,(3)=87]), array(1 \+ .. 3,[(1)=72,(2)=72,(3)=2]), array(1 .. 3,[(1)=85,(2)=86,(3)=87]), arr ay(1 .. 3,[(1)=72,(2)=72,(3)=2]), array(1 .. 3,[(1)=85,(2)=86,(3)=87]) , array(1 .. 3,[(1)=72,(2)=72,(3)=91]), array(1 .. 3,[(1)=2,(2)=85,(3) =86]), array(1 .. 3,[(1)=87,(2)=72,(3)=72])]" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q9stuff~stuff~stuffy~stuff6\"" }}{PARA 9 "" 1 "" {TEXT -1 75 "<-- exit VectsToText (now in AffineMatEncode) = \"stuff stuff s tuffy stuff\"\}" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q9stuff~stuff~stuff y~stuff6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "AffineMatEnco de(\"stuff stuff stuffy stuff\",[[0,1], [1, 1]], [0,0]);" }}{PARA 9 " " 1 "" {TEXT -1 401 "\{--> enter VectsToText, args = [array(1 .. 2,[(1 )=86,(2)=74]), array(1 .. 2,[(1)=72,(2)=62]), array(1 .. 2,[(1)=2,(2)= 74]), array(1 .. 2,[(1)=86,(2)=74]), array(1 .. 2,[(1)=72,(2)=62]), ar ray(1 .. 2,[(1)=2,(2)=74]), array(1 .. 2,[(1)=86,(2)=74]), array(1 .. \+ 2,[(1)=72,(2)=62]), array(1 .. 2,[(1)=91,(2)=66]), array(1 .. 2,[(1)=8 5,(2)=87]), array(1 .. 2,[(1)=87,(2)=76]), array(1 .. 2,[(1)=72,(2)=47 ])]" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q9thf\\~hthf\\~hthf\\y`suujfM6 \"" }}{PARA 9 "" 1 "" {TEXT -1 78 "<-- exit VectsToText (now in Affine MatEncode) = \"thf\\\\ hthf\\\\ hthf\\\\y`suujfM\"\}" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q9thf\\~hthf\\~hthf\\y`suujfM6\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "AffineMatDecode(%,[[0,1], [1, 1]], [0,0]); \+ " }}{PARA 9 "" 1 "" {TEXT -1 400 "\{--> enter VectsToText, args = [arr ay(1 .. 2,[(1)=85,(2)=86]), array(1 .. 2,[(1)=87,(2)=72]), array(1 .. \+ 2,[(1)=72,(2)=2]), array(1 .. 2,[(1)=85,(2)=86]), array(1 .. 2,[(1)=87 ,(2)=72]), array(1 .. 2,[(1)=72,(2)=2]), array(1 .. 2,[(1)=85,(2)=86]) , array(1 .. 2,[(1)=87,(2)=72]), array(1 .. 2,[(1)=72,(2)=91]), array( 1 .. 2,[(1)=2,(2)=85]), array(1 .. 2,[(1)=86,(2)=87]), array(1 .. 2,[( 1)=72,(2)=72])]" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#Q9stuff~stuff~stuff y~stuff6\"" }}{PARA 9 "" 1 "" {TEXT -1 75 "<-- exit VectsToText (now i n AffineMatEncode) = \"stuff stuff stuffy stuff\"\}" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#Q9stuff~stuff~stuffy~stuff6\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "25 0 0" 0 }{VIEWOPTS 1 1 0 3 2 1804 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }