{VERSION 6 0 "SUN SPARC SOLARIS" "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 }{CSTYLE "" -1 256 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }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 0 1 } 1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 14 0 0 0 0 2 1 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 2" -1 257 1 {CSTYLE "" -1 -1 "Couri er" 1 14 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 3" -1 258 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 4 " -1 259 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 5" -1 260 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 6" -1 261 1 {CSTYLE "" -1 -1 "Times" 1 24 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "R3 Font 7" -1 262 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 8 " -1 263 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 } 0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 9" -1 264 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 10" -1 265 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "R3 Font 11" -1 266 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 1 2" -1 267 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 13" -1 268 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 14" -1 269 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 15" -1 270 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R 3 Font 16" -1 271 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 17" -1 272 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 18" -1 273 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 19" -1 274 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R 3 Font 20" -1 275 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "R3 Font 21" -1 276 1 {CSTYLE "" -1 -1 "Times" 1 18 0 0 0 0 2 2 2 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 261 "" 0 "" {TEXT 256 138 "Note: The worksheet be low is already old but it contains a number of useful things. I've add ed a few comments (Note:..) to this document. " }}{PARA 261 "" 0 "" {TEXT -1 18 "------------------" }}{PARA 261 "" 0 "" {TEXT -1 21 "Intr oduction to Maple" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 1377 "This worksheet is intended to get you started using Map le. By reading this worksheet, executing all commands and studying the output of those commands you will become familiar with some of the po ssibilities of Maple. At least you will then be able to work with Mapl e and explore it further.\n\nSome very usefull books concerning Maple \+ are:\n\n B.W. Char, K.O. Geddes, G.H. Gonnet, B.L. Leong, M.B. M onagan, S.M. Watt:\n First Leaves: A Tutorial Introduc tion to Maple,\n B.W. Char, K.O. Geddes, G.H. Gonnet, B.L. Leong , M.B. Monagan, S.M. Watt:\n Maple V Language Referenc e Manual\nand\n B.W. Char, K.O. Geddes, G.H. Gonnet, B.L. Leong, M.B. Monagan, S.M. Watt:\n Maple V Library Reference Manual.\n\nThere are many more books on Maple which are very worthwhi le.\n\n\nBesides the text in this worksheet you will also see lines st arting with a greater than sign ( > ). These lines are command lines a nd the text on those lines are Maple commands. By putting the cursor o n such a line and hitting the Return-key the command on that line is e xecuted by Maple and the output is shown on the screen. After executin g a Maple command in such a way the cursor is automaticcally placed on the next line containing a Maple command.\n\nMaple contains of course an ordinary pocket calculator. This is shown by the following Maple c ommands.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "23+59;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "5*12-13;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 5 "2^10;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "3 ^(1/2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "sqrt(5);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "sin(1/2*Pi);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 717 "\nYou immediately may notice the followi ng:\n - A Maple command is always ended by a semicolon ( ; ) (or \+ a colon ( :) as you will see later).\n - Multiplication is denote d by an asterisk ( * ), division by a slash ( / ).\n - Maple also knows functions like sqrt, sin, cos, tan, arcsin and so on.\n - \+ Maple knows some constants like Pi, E and gamma.\n\nIt may happen that you forget to type the semicolon at the end of your input line and hi t the Return-key. In that case Maple won't do anything since it consid ers the input not yet to be completed. You can then still complete the input line by typing a semicolon on the next line and hitting the Re turn key. The following example will illustrate this.\n" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 5 "45-16" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 1 ";" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 279 "\nThe previous example is in fa ct an example of a command distributed over several input lines. Mapl e will read all input lines until it encounters a semicolon. It will t hen concatenate all input lines and execute the command this will give . The following is an example of this.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "345+523*" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "(23-45/ 3);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 216 "\nIn your input you may g o to the next line at all places except when entering a number or a fu nction name. If however you want to go to the next line inside a numbe r or function name you can use the backslash ( \\ ).\n" }}{PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 11 "31312321321" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "6765767231;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "34324323 432\\" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "423423432;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 188 "\nThe following examples will show a ver y important characteristic of computer algebra systems: exact arithmet ic. This means that expressions are not approximated but are computed \+ exactly.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "3*(1/3); \+ # Compare with 0.99999999" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "(sqrt(5))^2;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 262 "\nIn thi s example we encountered the #-symbol. Everything behind this symbol i s ignored by Maple. This can be used to put comments between your comp utations.\n\nIt is however possible to approximate expressions by floa ting point numbers using the `evalf` command..\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "1/3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval f(%);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 523 "\nIn the example above \+ you have already seen an example of the double quote ( \" ) operator ( or % in Maple V Release 5). This operator stands for the previous resu lt. In the same way two double quotes stand for the second previous re sult and you can even use triple double quotes.\n\nThe command evalf ( evaluate to floating point number) evaluates its operand to a floating point number with accuracy determined by the Maple variable 'Digits' \+ (default value 10). By changing the value of 'Digits' the accuracy can be modified.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=40;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalf(1/3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "Digits:=10; # its default value " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 173 "\nIn the last example you ha ve seen how you can change the value of a variable in Maple. You can c reate your own variables, give them values and use them inside express ions.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "number_of_people:=10;" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "number_of_people;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "number_of_people+1;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 716 "\nIn this last example we have as signed the value 10 to the variable 'number_of_people'. In the second \+ line we asked for the value of number_of _people and in the third line we have used the variable in an expression. You see that variable nam es may consist of many characters. Also digits may be used but a varia ble name may not start with a digit. It is a good habit to give your v ariables names that express what they mean. This will enlighten your c alculation for yourself and for other people.\n\nIf you have assigned \+ a value to a variable it will keep this value until you change it to a nother value. If you want a variable to have no value anymore you can \+ use the single quote ( ' ) as in the following example.\n" }}{PARA 0 " > " 0 "" {MPLTEXT 1 0 37 "number_of_people:='number_of_people';" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "number_of_people;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 514 "\nAnother important feature of Ma ple is its on-line help. By clicking on the word 'Help' in the upper r ight corner of this Maple window you will see a menu which is the entr ance to the on-line help facility of Maple. The best way to learn how \+ to use this on-line help is experimenting by yourself.\n\nNow we will \+ show you a lot of Maple commands. By executing these commands you will get an idea of some of the capabilities of Maple. Notice however that this will show only a very small part of the power of Maple.\n\n\n" } }{PARA 259 "" 0 "" {TEXT -1 8 "Integers" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "5^(5^5);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 10 "length(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "30!;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "ifa ctor(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "2^89-1;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "isprime(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "a:=121932009755;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "b:=80780187944;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "igcdex(a,b,'s','t');" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 8 "a*s+b*t;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "a:='a'; b:='b';" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 81 "\nIn this \+ last example you see that you can put more commands on one input line. \n\n" }}{PARA 260 "" 0 "" {TEXT -1 16 "Rational numbers" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "(1/3+1/5)*3/6; " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 262 "" 0 "" {TEXT -1 39 "Real numbers and floating point numbers" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "(34/25)^(21/10);" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evalf(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "1/3; 1/3.0;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=40;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evalf(E);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evalf(sqr t(2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "Digits:=10;" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 262 "" 0 "" {TEXT -1 15 "Complex numbers" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "c:=2+3*I;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "(3*c^5+2*c^3+10)/(7*c^3+2*c^2-5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "abs(c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "R e(c);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "argument(c);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "c:='c':" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 112 "\nHere you see that you can also end a command wi th a colon ( : ). In that case Maple will not show the output.\n\n" }} {PARA 263 "" 0 "" {TEXT -1 18 "Modular arithmetic" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "47 mod 5;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "5^(5^5) mod 7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "1/11 mod 7;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 264 "" 0 "" {TEXT -1 17 "Algebraic number s" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "alias(w=RootOf(_Z^3+_Z^2+2));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "w^2;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "eval a(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "w^3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evala(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "(w^5+3*w+1)/(2*w^4-5*w^3+2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "evala(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "alias(w=w): # unaliassing" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 157 "Note: you should use alias only for interactive w orking with Maple. Never use alias inside a program because that leads to tricky problems. Instead of doing:" }}{PARA 0 "" 0 "" {TEXT -1 23 "alias(w = RootOf(...));" }}{PARA 0 "" 0 "" {TEXT -1 16 "you can also \+ do:" }}{PARA 0 "" 0 "" {TEXT -1 18 "w := RootOf(...));" }}{PARA 0 "" 0 "" {TEXT -1 450 "Then everything computes in the same way. The only \+ difference you will notice is that in the latter approach, the RootOf( ...) will appear as RootOf(...) on the screen, whereas if you use alia s it will look like w on the screen. So the alias function alters the \+ way things look on the screen. That is the main difference with simply doing: w:=RootOf(...). Personally, I never use alias, I always use w: =RootOf(...), because alias may lead to problems." }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 1 "\n" }}{PARA 265 "" 0 "" {TEXT -1 11 "Polynomials" } }{PARA 0 "" 0 "" {TEXT -1 88 "\nThis shows another important feature o f computer algebra systems: symbolic computation\n" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 25 "f:=7*x^4-3*x^3+7*x^2-3*x;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "g:=5*x^5+3*x^3+x^2-2*x+1;" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 4 "f+g;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f*g;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "expand(%);" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 100 "\nYou see that you must force Map le to expand the product (see also lecture on data representation).\n " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "gcdex(f,g,x,'s','t');" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "expand(s*f+t*g);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "factor(21*x^5-35*x^4*y+14*x^3*y^3+1 8*y*x^2-30*x*y^2+12*y^4+9*x^3*y^2-15*x^2*y^3+6*x*y^5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "factor(x^105-1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "Factor(x^105-1) mod 7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "f:=x^6+6*x^5+12*x^4+8*x^3+2*x^2+4*x-4;" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "factor(f);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "alias(w=RootOf(_Z^3+_Z^2+2));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "evala(Factor(f,w));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "randpoly([x,y],terms=20,degr ee=7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "f:='f': g:='g': s :='s': t:='t': alias(w=w):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 266 "" 0 "" {TEXT -1 18 "Rational functions" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "f:=7*x^4-3*x^3+7* x^2-3*x;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "g:=5*x^5+3*x^3+ x^2-2*x+1;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f/g;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "normal(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "f/g+g/f;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "normal(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "convert(1/f,parfrac,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "f:='f': g:='g':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }} {PARA 267 "" 0 "" {TEXT -1 17 "General functions" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "exp(x+y);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "expand(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "simplify(%);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 9 "sin(x+y);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "expand(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "F:=x->x^3 +5*sin(x^2)+sqrt(x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "F(10 );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "F:='F':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 268 "" 0 "" {TEXT -1 31 "Diffe rentiation and integration" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "f:=7*x^4-3*x^3+7*x^2-3*x;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diff(f,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "diff(x^(x^x),x,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "diff(log(x/(x^2+1)),x,x);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 10 "normal(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "F:=x->x^3-sin(x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "o p(F);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 59 "\nThe operator `op` retu rns the operands of an expression.\n " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "diff(F(x),x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "D(F); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "D(sin);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "'int(7*x^4+3*x^3-5*x+11,x)';" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diff(%,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "'int(1/(a+b*sin(x)),x)';" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "diff( %,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "simplify(%);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "f:='f': F:='F':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 269 "" 0 "" {TEXT -1 33 "Taylo r series, Laurent expansions" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "taylor(sin(x),x=0,15);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "series(cot(x),x=0,15);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 270 "" 0 "" {TEXT -1 17 "Solving equ ations" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "solve(\{26*x^2-y^3+1=0,2*x-y=-1\},\{x,y\});" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "subs(%[1],26*x^2-y^3+1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "solve(\{x+y=3,a*x+b*y=3*a\},\{x,y\} );" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 156 "\nThis example shows that \+ one has to be careful. If a=b in the system above the solution Maple g ives is not the only solution. What are the other solutions?\n" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "solve(x^5-x+1=0,x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "fsolve(x^5-x-1,x);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 100 "\nWe see that when Maple cannot solve an equation symbolically, you can still solve it numerically.\n\n" }} {PARA 271 "" 0 "" {TEXT -1 30 "Solving differential equations" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "eqn :=diff(y(x),x,x)-y(x);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "d solve(eqn=0,y(x));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "eqn:= 'eqn':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 272 "" 0 "" {TEXT -1 14 "Linear algebra" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}{PARA 2 "" 1 "" {TEXT -1 71 "Warning: new definition for norm\nWarning: new definition for trace\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "A:=matrix([[3 ,2,1],[4,3,1],[5,4,2]]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "B:=matrix([[3,1,0],[4,2,1],[5,2,2]]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "evalm(A&*B);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalm(A+B);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "invers e(A);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "A;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "eval(A);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 310 "\nYou see that the command `A` only gives `A` as an answ er. To get the value of the variable `A` you must explicitly ask for i t by using the function `eval`. This same feature appears when the val ue of a variable is an array, table, procedure or function. Compare th is to the variable `number_of_people` above.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "b:=vector([1,2,3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "linsolve(A,b);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "A:='A':B:='B':b:='b':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 " \n" }}{PARA 273 "" 0 "" {TEXT -1 30 "Plotting, 2- and 3-dimensional" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "pl ot(sin(x),x=0..5*Pi);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "pl ot(sin(1/x),x=0.01..0.1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "f1:=x; f3:=x-x^3/3!; f5:=x-x^3/3!+x^5/5!;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "plot(\{sin(x),f1,f3,f5\},x=0..Pi);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 173 "\nHere you see how the succeeding polyno mials are better and better approximations of sin(x) in the origin.\nD o some experiments using the menus in the windows of the graphs.\n" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "plot3d(x^2+3*BesselJ(0,y^2)*exp(1-x ^2-y^2),x=-2..2,y=-2..2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "with(plots):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "polarpl ot(sin(2*t),t=0..2*Pi);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 70 "\n\nNo w we will show some features of Maple as a programming language.\n\n" }}{PARA 274 "" 0 "" {TEXT -1 10 "Data types" }}{PARA 0 "" 0 "" {TEXT -1 85 "\n- Several kinds of numbers\n- Polynomials\n- Rational functio ns\n- Series\n\nand further\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "1 ,4,7,2,4; \+ \n# Sequence" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "[4,7,3,9,3,3]; \+ \n# List" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "\{3,4,4,4,5,3,2,1\}; \+ \n# Set" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "`This is a string containing the numbers 1 and 2`; \+ \n# String" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "array(3. .6,[4,8,3,1]); \+ \n# Array" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "table([(pet er)=`11-09-58`,(mary)=`05-12-61`]); \n# Table" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "34,`Hello`,[array([[1,2],[5,6]]),Pi ];" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 125 "Note: Maple 6 has strings \+ of the form \"hello\", with quotes \". Maple 5 only has strings with q uotes like in the above example." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 276 "" 0 "" {TEXT -1 22 "Assignment, evaluation" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "a:=3 ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "b:=a;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "b;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "a:=9;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "b;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "c:=d;" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 5 "d:=5;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "d:=7;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "c;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "''a'';" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "%; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "%;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "a:='a': b:='b': c:='c': d:='d':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 275 "" 0 "" {TEXT -1 18 "Contr ol structures" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 117 "i:=5; b:=3*i+1; \+ # Sequence" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "for i from 2 to 4 do print( i^2) od; # Repetition" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "i:=17; whil e i>=5 do i:=i-5 od; \+ # Repetition" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "i:=-5; if i>=0 then i else -i fi; \+ # Choice" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 180 "maximum:=proc(m,n)\n if m>n then\n m\n else \n n\n fi\nend; \+ # Procedures" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "maximum(9,4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "maximum;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 14 "eval(maximum);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "\nYou see the same feature as with matrices.\n" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 33 "i:='i':b:='b':maximum:='maximum':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 74 "\nMany, many, many,......... built-in procedur es (see the on-line help).\n\n" }}{PARA 258 "" 0 "" {TEXT -1 31 "An ex ample: Fibonacci's numbers" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 74 "fib1:=proc(n)\n if n<2 then\n 1\n else \n fib1(n-2)+fib1(n-1)\n fi\nend;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "fib1(20);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 146 "\nT his is very slow since fib1(n) is computed over and over again (also i n the procedure body). To avoid this one can use Maple's remember opti on.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 91 "fib2:=proc(n)\noption reme mber;\n if n<2 then\n 1\n else\n fib2(n-2)+fib2(n-1)\n fi\nen d;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "fib2(50);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 82 "\nNow each computed value fib2(n) is stor ed and will be retrieved by table lookup.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "fib1:='fib1': fib2:='fib2':" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 1 "\n" }}{PARA 258 "" 0 "" {TEXT -1 10 "Parameters" }} {PARA 0 "" 0 "" {TEXT -1 689 "\nWhen you define a procedure like\n\n \+ f:=proc(a,b) procedure-body end;\n\nthe parameters a and b are cal led formal parameters. When you call this procedure like\n\n f(c,d );\n\nthe parameters c and d are called actual parameters.\n\nMaple us es the call-by-value paramter mechanism. This means that in the call f (c,d); first c and d are evaluated, then the respective values are ass igned to the formal parameters a and b and then the procedure-body is \+ executed. When, in a procedure-body, you want to assign a value to an \+ actual parameter you must be sure the value passed to the procedure is a name (variable). This can be achieved using the single quote to pre vent evaluation. An example:\n " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 63 " f:=proc(a,b,m)\n if a>b then\n m:=a\n else\n m:=b\n fi\nend; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "f(5,2,maximum);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "f(23,6,maximum);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 538 "\nIn the first call maximum evaluates to the name maximum since it has not yet a value. The value 5 is then as signed to maximum during execution of the procedure body. In the secon d call of f the name maximum evaluates to 5 and this value, i.e 5, is \+ passed to the procedure in stead of the name maximum. During execution of the procedure-body an attempt is made to assign 23 to the value 5 \+ and this yields an error message. One can prevent this by not using ma ximum as actual parameter but 'maximum' (this evaluates to the name ma ximum). \n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "f(23,6,'maximum');" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 353 "\nNotice that evaluation insid e a procedure-body is different from outside a procedure-body. Outside a procedure body full evaluation is used, i.e. a name is evaluated as far as possible (except for names for arrays, tables, procedures, etc ). Inside a procedure-body however we only have one-step evaluation. T he following example will make this clear.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "x:=y;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "y:= 3;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 2 "x;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "f:=proc()\nlocal x,y;\n x:=y;\n y:=3;\n \+ x\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 60 "\nTo force further evaluation one can use the eval function.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "f:=proc() \nlocal x,y;\n x:=y;\n y:=3;\n eval(x,2)\nend:" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 4 "f();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 40 "f:='f':maximum:='maximum':x:='x':y:='y':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 259 "" 0 "" {TEXT -1 17 "Names (variables )" }}{PARA 0 "" 0 "" {TEXT -1 221 "\nMaple distinguishes between local and global names. A name outside a procedure-body is global. A name i nside a procedure-body is local unless stated otherwise. A local name \+ overrules the same global name. Some examples.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "x:=5; # x is a global name" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 80 "f:=proc() local x; x:=3; print(x) end; # x is local inside the procedure-body" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "f();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "x; \+ # this is again the global x" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 99 "g:=proc() global x; x:=7; print(x) end; # x is now a global name, even inside the procedure-body" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 4 "g();" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "x; \+ # g() has changed the value of the global name x" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 62 "\nNotice that global and local names are complete ly different.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "h:=proc() local \+ z; z end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "h()-z;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "x:='x':f:='f':g:='g':h:='h': " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 260 "" 0 "" {TEXT -1 14 "args and nargs" }}{PARA 0 "" 0 "" {TEXT -1 181 "\nIt is not nec essary to actually mention all formal parameters when defining a proce dure. This is very handy when one does not know the number of paramete rs in advance. An example.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 174 "ma ximum:=proc()\nlocal max; \n if nargs=1 then\n args[1]\n else\n \+ max:=maximum(args[2..nargs]);\n if max > args[1] then\n max\n else\n args[1]\n fi\n fi\nend: " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "maximum(34,-6,22,45,12,-9);" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 212 "\nWe have used the Maple-routines args and nargs. Inside a procedure-body nargs returns the number of actual parameters when the procedure is called. The routine args returns the list of ac tual parameters itself.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "maximu m:='maximum':" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 202 "\nAs we have se en before you have to use the eval command if you want to see the defi nition of a procedure, defined by yourself, on the screen. This does n ot work for routines inside Maple, for example:\n" }}{PARA 0 "> " 0 " " {MPLTEXT 1 0 10 "eval(gcd);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 133 "\nIf you want to see the definition of a Maple routine you first have to give the interface variabale `verboseproc` the right value.\n " }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(verboseproc=2);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "eval(gcd);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 88 "\nIf you want to monitor the execution of a com putation you can increase the printlevel.\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "igcd(56749620128,13112621504);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 15 "printlevel:=10;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "igcd(56749620128,13112621504);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 46 "printlevel:=1; # the default value " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 0 0" 138 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }