{VERSION 1 0 "X11/Motif" "1.0"}{GLOBALS 0 1}{FONT 0 "-adobe-helve
tica-bold-r-normal--*-140-*-*-*-*-*-*" "helvetica" "Helvetica-Bol
d" 8 14 0 "Helvetica-Bold" 14}{FONT 1 "-adobe-times-medium-r-norm
al--*-140-*-*-*-*-*-*" "times" "Times-Roman" 4 14 64 "Times-Roman
" 14}{FONT 2 "-*-Courier-medium-r-normal--*-120-*-*-m-*-*-*" "Cou
rier" "Courier" 4 12 192 "Courier" 10}{FONT 3 "-adobe-new century
 schoolbook-bold-r-normal--*-180-*-*-*-*-*-*" "new century school
book" "Times-Bold" 8 18 64 "Times-Bold" 18}{FONT 4 "-adobe-new ce
ntury schoolbook-medium-r-normal--*-140-*-*-*-*-*-*" "new century
 schoolbook" "Times-Roman" 4 14 64 "Times-Roman" 14}{FONT 5 "-ado
be-new century schoolbook-medium-r-normal--17-*" "new century sch
oolbook" "Times-Roman" 4 12 64 "Times-Roman" 17}{FONT 6 "-adobe-n
ew century schoolbook-medium-r-normal--17-*" "new century schoolb
ook" "Times-Roman" 4 12 64 "Times-Roman" 17}{FONT 7 "-adobe-new c
entury schoolbook-medium-r-normal--17-*" "new century schoolbook"
 "Times-Roman" 4 12 64 "Times-Roman" 17}{FONT 8 "-adobe-new centu
ry schoolbook-medium-r-normal--17-*" "new century schoolbook" "Ti
mes-Roman" 4 12 64 "Times-Roman" 17}{FONT 9 "-adobe-new century s
choolbook-medium-r-normal--17-*" "new century schoolbook" "Times-
Roman" 4 12 64 "Times-Roman" 17}{FONT 10 "-adobe-new century scho
olbook-medium-r-normal--17-*" "new century schoolbook" "Times-Rom
an" 4 12 64 "Times-Roman" 17}{FONT 11 "-adobe-new century schoolb
ook-medium-r-normal--17-*" "new century schoolbook" "Times-Roman"
 4 12 64 "Times-Roman" 17}{FONT 12 "-adobe-new century schoolbook
-medium-r-normal--17-*" "new century schoolbook" "Times-Roman" 4 
12 64 "Times-Roman" 17}{FONT 13 "-adobe-new century schoolbook-me
dium-r-normal--17-*" "new century schoolbook" "Times-Roman" 4 12 
64 "Times-Roman" 17}{FONT 14 "-adobe-new century schoolbook-mediu
m-r-normal--17-*" "new century schoolbook" "Times-Roman" 4 12 64 
"Times-Roman" 17}{FONT 15 "-adobe-new century schoolbook-medium-r
-normal--17-*" "new century schoolbook" "Times-Roman" 4 12 64 "Ti
mes-Roman" 17}{SCP_R 1 0 1177{COM_R 2 0{TEXT 3 33 "New Features i
n Maple V Release 2"}}{COM_R 3 0{TEXT 1 0 ""}}{COM_R 4 0{TEXT 1 0
 ""}}{COM_R 5 0{TEXT 4 39 "Development of Improved User Interface
s"}}{COM_R 6 0{TEXT 1 0 ""}}{COM_R 7 0{TEXT 1 0 ""}}{COM_R 8 0
{TEXT 1 398 "New user interfaces which include as a minimum 2 and
 3-dimensional graphics, and some command line editing facility h
ave been designed since the release of Maple V for the X Window s
ystem, Sunview, PC MS/DOS, Macintosh, Amiga DOS, VAX VMS, NeXT, a
nd the PC under Windows.  The new user interfaces for Maple V Rel
ease 2 will include worksheets, real mathematical formulae output
, and a help browser."}}{COM_R 9 0{TEXT 1 3 "   "}}{COM_R 10 0
{TEXT 1 19 "1: Maple Worksheets"}}{COM_R 11 0{TEXT 1 0 ""}}{COM_R
 12 0{TEXT 1 641 "Beginning with the Macintosh user interface for
 Maple V, the new user interfaces will all support the concept of
 a \"worksheet\" which integrates text, Maple input commands, Map
le output, and graphics into one document.  Worksheets have been \+
standardized and are being ported to other platforms for Release \+
2, notably X windows.  They provide editable input and text field
s, simple commands for recalculating parts of worksheets etc.  A \+
collection of examples of applications of Maple will be now be di
stributed in the form of worksheets.  A new save facility is bein
g added that will also save the state of a worksheet as well as t
he display."}}{COM_R 13 0{TEXT 1 3 "   "}}{COM_R 14 0{TEXT 1 25 "
2: Two-dimensional output"}}{COM_R 15 0{TEXT 1 0 ""}}{COM_R 16 0
{TEXT 1 275 "Beginning with Release 2 of the Windows interface, n
ew interfaces will display output using mathematical, Greek, and \+
italics fonts for improved display of mathematical formulae.  The
 following shows an example of the old way and the new way to dis
play mathematics in Maple V."}}{COM_R 17 0{TEXT 1 0 ""}}{COM_R 18
 0{TEXT 1 8 "MAPLE V "}}{COM_R 19 0{TEXT 1 0 ""}}{INP_R 20 0 "> "
{TEXT 0 73 "restart; # this will cause the Maple kernel to clear \+
its internal  memory"}}{INP_R 21 0 "> "{TEXT 0 25 "interface(pret
typrint=1):"}}{INP_R 22 0 "> "{TEXT 0 39 "Int(4*exp(x+alpha)/x*Pi
,x=0..infinity);"}}{INP_R 23 0 "> "{TEXT 0 34 "Int(1/(x^4+1),x)=i
nt(1/(x^4+1),x);"}}{INP_R 24 0 "> "{TEXT 0 92 "array(1..3,1..3,[[
exp(x),sin(x^2),1/y],[0,gamma,ln(47/3)],[delta/3,Sum(1/i,i=1..n),
-2*Pi]]);"}}{COM_R 25 0{TEXT 1 3 "   "}}{COM_R 26 0{TEXT 1 19 "MA
PLE V   RELEASE 2"}}{COM_R 27 0{TEXT 1 0 ""}}{INP_R 28 0 "> "
{TEXT 0 25 "interface(prettyprint=2):"}}{INP_R 29 0 "> "{TEXT 0 
39 "Int(4*exp(x+alpha)/x*Pi,x=0..infinity);"}}{OUT_R 30 0 29{DAG 
(3n3\`Int`,3+3*7(3n3\`exp`,2+5n3\`x`j2x0001n4\`alpha`pDpDpBi2x000
1n3\`Pi`pDj2x0004=3pB~3j2x0000n5\`infinity`}}{INP_R 31 0 "> "
{TEXT 0 34 "Int(1/(x^4+1),x)=int(1/(x^4+1),x);"}}{OUT_R 32 0 31
{DAG =3(3n3\`Int`,3*3+5*3n3\`x`j2x0004j2x0001pCpCi2x0001p8+7*5j2x
0002/3pCp15(3n3\`ln`,2*5+7*3p8p15pC*5p8pCp15p17pCpCpCpC+7p20pCp24
p10pCpCp10pC/3pCj2x0008*5p15p17(3n4\`arctan`,2+5p24pCpCpCpC/3pCpA
*5p15p17(3p3E,2+5p24pCp10pCpCp48}}{INP_R 33 0 "> "{TEXT 0 92 "arr
ay(1..3,1..3,[[exp(x),sin(x^2),1/y],[0,gamma,ln(47/3)],[delta/3,S
um(1/i,i=1..n),-2*Pi]]);"}}{OUT_R 34 0 33{DAG (3n4\`MATRIX`,2[2,4
[2,4(3n3\`exp`,2n3\`x`(3n3\`sin`,2*3pDj2x0002*3n3\`y`i2x0001[2,4j
2x0000n4\`gamma`(3n3\`ln`,2/3j2x0047j2x0003[2,4+3n4\`delta`/3j2x0
001p2A(3n3\`Sum`,3*3n3\`i`p1A=3p3B~3p33n3\`n`+3n3\`Pi`i2x0002}}
{COM_R 35 0{TEXT 1 0 ""}}{COM_R 36 0{TEXT 1 21 "3: Help topic bro
wser"}}{COM_R 37 0{TEXT 1 0 ""}}{COM_R 38 0{TEXT 1 141 "New user \+
interfaces will include a help browser for accessing the on-line \+
help information.  The facility is accessible from the Help menu.
  "}}{COM_R 39 0{TEXT 1 3 "   "}}{COM_R 40 0{TEXT 1 23 "4: UNIX M
aple interface"}}{COM_R 41 0{TEXT 1 0 ""}}{COM_R 42 0{TEXT 1 412 
"Now supports command line editing using a vi and emacs like edit
or.  Hitting the interrupt key Ctrl-C twice will no longer kill a
 Maple session, it will only interrupt the current calculation.  \+
The quit key Ctrl-\\ can be used to immediately kill the Maple se
ssion.  Also, running a Maple session in a shell under the X Wind
ow system, interface(plotdevice=x11); will allow you to access th
e X plotting facilities."}}{COM_R 43 0{TEXT 1 3 "   "}}{COM_R 44 
0{TEXT 1 21 "5: X Window interface"}}{COM_R 45 0{TEXT 1 0 ""}}
{COM_R 46 0{TEXT 1 344 "The interface has been redesigned to foll
ow Motif style conventions.  The help index is accessible from a \+
menu.  The user input fields and the Maple output fields are comp
letely separated.  The interface supports text, Maple input, outp
ut and Graphics output regions.  The contents of a Graphics windo
w may be cut and pasted into the worksheet."}}{COM_R 47 0{TEXT 1 
2 "  "}}{COM_R 48 0{TEXT 1 20 "6: Windows interface"}}{COM_R 49 0
{TEXT 1 0 ""}}{COM_R 50 0{TEXT 1 111 "The Release 2 interface now
 includes real math output and worksheets are compatible across R
elease 2 platforms."}}{COM_R 51 0{TEXT 1 1 " "}}{COM_R 52 0{TEXT 
1 26 "7: Improved error messages"}}{COM_R 53 0{TEXT 1 0 ""}}
{COM_R 54 0{TEXT 1 69 "The new type checking facility results in \+
better error messages, e.g."}}{COM_R 55 0{TEXT 1 3 "   "}}{INP_R 
56 0 "> "{TEXT 0 52 " f := proc(n:integer) if n < 0 then 0 else n
 fi end:"}}{INP_R 57 0 "> "{TEXT 0 8 "f(x);   "}}{OUT_R 58 0 57
{TEXT 2 77 "Error, f expects its 1st argument, n, to be of type i
nteger, \012but received x\012"}}{COM_R 59 0{TEXT 1 0 ""}}{COM_R 
60 0{TEXT 1 135 "Not all Maple functions have been updated yet to
 make use of this new facility.  This should be completed by the \+
next version of Maple."}}{COM_R 61 0{TEXT 1 3 "   "}}{COM_R 62 0
{TEXT 1 3 "   "}}{COM_R 63 0{TEXT 5 8 "Graphics"}}{COM_R 64 0
{TEXT 1 3 "   "}}{COM_R 65 0{TEXT 1 530 "The Maple plotting facil
ity consists of two parts, the rendering of the picture which is \+
written in C, and the point generation which is done in Maple.  T
he basic 2 dimensional plotting command is plot(f(x),x=a..b);  It
 creates a PLOT data structure which is then displayed.  The 3 di
mensional plotting command is plot3d(f(x,y),x=a..b,y=c..d);  It c
reates a PLOT3D data structure.  Thus the PLOT and PLOT3D data st
ructures define the what can be displayed.  Details on these data
 structures can be obtained from  ?plot3d,structure"}}{COM_R 66 0
{TEXT 1 3 "   "}}{COM_R 67 0{TEXT 1 68 "1: Improvements to render
ing and the PLOT and PLOT3D data structures"}}{COM_R 68 0{TEXT 1 
0 ""}}{COM_R 69 0{TEXT 1 63 "- better (more robust but slower) hi
dden line removal algorithm"}}{COM_R 70 0{TEXT 1 64 "- the PLOT3D
 data structure supports text and polygon primitives"}}{COM_R 71 
0{TEXT 1 72 "- PLOT and PLOT3D include support for 2 and 3 D fram
e sequence animation"}}{COM_R 72 0{TEXT 1 65 "- the PLOT3D data s
tructure supports a contour plot style option,"}}{COM_R 73 0{TEXT
 1 61 "   which is also accessible interactively from the style m
enu"}}{COM_R 74 0{TEXT 1 69 "- The plotting primitives in the PLO
T and PLOT3D data structures have"}}{COM_R 75 0{TEXT 1 66 "   bee
n made more flexible e.g. each object can have its style and"}}
{COM_R 76 0{TEXT 1 31 "   color assigned individually."}}{COM_R 
77 0{TEXT 1 70 "- a wider choice of colors, with more user contro
l of surface coloring"}}{COM_R 78 0{TEXT 1 12 "   (PLOT3D)."}}
{COM_R 79 0{TEXT 1 29 "- addition of Lighting models"}}{COM_R 80 
0{TEXT 1 67 "- We have also made the PLOT and PLOT3D data structu
res compatible."}}{COM_R 81 0{TEXT 1 3 "   "}}{COM_R 82 0{TEXT 1 
17 "2: Device support"}}{COM_R 83 0{TEXT 1 25 "------------------
-------"}}{COM_R 84 0{TEXT 1 103 "- encapsulated postscript, colo
r postscript and grayscale shading postscript   output are now su
pported"}}{COM_R 85 0{TEXT 1 32 "- addition of HP Laserjet output
"}}{COM_R 86 0{TEXT 1 76 "- a wider selection of output devices f
or PLOT3D are supported in particular"}}{COM_R 87 0{TEXT 1 74 "  \+
 any device that is supported in 2 dimensions including tektronic
s, i300"}}{COM_R 88 0{TEXT 1 63 "   imagen laser printer, UNIX pl
ot, DEC ln03 laser printer etc."}}{COM_R 89 0{TEXT 1 3 "   "}}
{COM_R 90 0{TEXT 1 59 "3: New plotting facilities and improvement
s (plots package)"}}{COM_R 91 0{TEXT 1 79 "----------------------
---------------------------------------------------------"}}
{COM_R 92 0{TEXT 1 209 "This is a list of the new plotting tools.
  All are written in Maple, making use of the PLOT and PLOT3D dat
a structures.  For details see the section on the plots package i
n the section on the Library Packages."}}{COM_R 93 0{TEXT 1 3 "  \+
 "}}{COM_R 94 0{TEXT 1 21 "- 2d and 3d animation"}}{COM_R 95 0
{TEXT 1 29 "- 2d and 3d implicit plotting"}}{COM_R 96 0{TEXT 1 42
 "- 2d and 3d vectorfield and gradient plots"}}{COM_R 97 0{TEXT 1
 15 "- Density plots"}}{COM_R 98 0{TEXT 1 54 "- Plotting of dsolv
e(..,numeric) procedures in ODEplot"}}{COM_R 99 0{TEXT 1 36 "- Pl
otting of polygons and polyhedra"}}{COM_R 100 0{TEXT 1 28 "- Log \+
and log-log plots e.g."}}{COM_R 101 0{TEXT 1 71 "- Phase portrait
s and direction field plots, plotting of 1-st order and"}}{COM_R 
102 0{TEXT 1 57 "   2-nd order differential equations (in DEtools
 package)"}}{COM_R 103 0{TEXT 1 68 "- Ability to specify color fu
nction for objects in plot3d, tubeplot,"}}{COM_R 104 0{TEXT 1 39 
"   vectorfield and gradient plots, etc."}}{COM_R 105 0{TEXT 1 3 
"   "}}{COM_R 106 0{TEXT 1 3 "   "}}{COM_R 107 0{TEXT 6 40 "New a
nd Enhanced Mathematical Facilities"}}{COM_R 108 0{TEXT 1 3 "   "
}}{COM_R 109 0{TEXT 1 44 "1: New Mathematical functions known to \+
Maple"}}{COM_R 110 0{TEXT 1 0 ""}}{COM_R 111 0{TEXT 1 54 "- The f
loor and ceiling functions floor(x) and ceil(x)"}}{COM_R 112 0
{TEXT 1 60 "- The Elliptic integrals where 0<k<1 and let c = sqrt
(1-k^2)"}}{COM_R 113 0{TEXT 1 73 "  LegendreE(x,k) = int( (1-k^2*
t^2)/sqrt(1-t^2)/sqrt(1-k^2*t^2), t=0..x )"}}{COM_R 114 0{TEXT 1 
72 "  LegendreEc(k) = int( (1-k^2*t^2)/sqrt(1-t^2)/sqrt(1-k^2*t^2
), t=0..1 )"}}{COM_R 115 0{TEXT 1 73 "  LegendreEc1(k) = int( (1-
k^2*t^2)/sqrt(1-t^2)/sqrt(1-c^2*t^2), t=0..1 )"}}{COM_R 116 0
{TEXT 1 63 "  LegendreF(x,k) = int( 1/sqrt(1-t^2)/sqrt(1-k^2*t^2)
, t=0..x )"}}{COM_R 117 0{TEXT 1 62 "  LegendreKc(k) = int( 1/sqr
t(1-t^2)/sqrt(1-k^2*t^2), t=0..1 )"}}{COM_R 118 0{TEXT 1 63 "  Le
gendreKc1(k) = int( 1/sqrt(1-t^2)/sqrt(1-c^2*t^2), t=0..1 )"}}
{COM_R 119 0{TEXT 1 76 "  LegendrePi(x,k,a) = int( 1/(1-a*t^2)/sq
rt(1-t^2)/sqrt(1-k^2*t^2), t=0..x )"}}{COM_R 120 0{TEXT 1 75 "  L
egendrePic(k,a) = int( 1/(1-a*t^2)/sqrt(1-t^2)/sqrt(1-k^2*t^2), t
=0..1 )"}}{COM_R 121 0{TEXT 1 76 "  LegendrePic1(k,a) = int( 1/(1
-a*t^2)/sqrt(1-t^2)/sqrt(1-c^2*t^2), t=0..1 )"}}{COM_R 122 0{TEXT
 1 79 "- Routines for complex numbers Re(z), Im(z), argument(z), \+
conjugate(z), csgn(z)"}}{COM_R 123 0{TEXT 1 72 "- Routines for co
mputing the magnitude of a number ilog[b](x), ilog10(x)"}}{COM_R 
124 0{TEXT 1 75 "- Utility routine polar(z) to allow computing wi
th complex numbers in polar"}}{COM_R 125 0{TEXT 1 48 "   form i.e
. polar(a,b) =  a cos(b) + I a sin(b)"}}{COM_R 126 0{TEXT 1 53 "-
 The logarithmic integral Li(x) = Ei(ln(x) for x > 1"}}{COM_R 127
 0{TEXT 1 71 "- The exponential integrals Ei(n,x) = int(exp(t)/t^
n,t=1..infinity) for"}}{COM_R 128 0{TEXT 1 73 "   Re(x)>0; extend
ed by analytic continuation to the entire complex plane"}}{COM_R 
129 0{TEXT 1 69 "   except for 0 when n=1).  Note Ei(x) is the Ca
uchy principle value."}}{COM_R 130 0{TEXT 1 34 "- Ssi(x) the shif
ted sine integral"}}{COM_R 131 0{TEXT 1 75 "- W(n,x), the W funct
ion satisfying exp(W(x))*W(x) = x where n, any integer"}}{COM_R 
132 0{TEXT 1 61 "   specifies a branch cut.  Note W(x) is the pri
nciple branch"}}{COM_R 133 0{TEXT 1 91 "- erfc(n,x) = int(erfc(n-
1,t),t=x..infinity), for n=1,2,... where    erfc(0,x) = erfc(x). \+
 "}}{COM_R 134 0{TEXT 1 80 "   Note erfc(n,z) corresponds to \"i^
n erfc z\" notation    in Abramowitz & Stegun"}}{COM_R 135 0{TEXT
 1 78 "- The derivatives of signum, csgn, trunc, frac, round, flo
or, ceil implemented"}}{COM_R 136 0{TEXT 1 33 "   as signum(1,x),
 csgn(1,x) etc."}}{COM_R 137 0{TEXT 1 3 "   "}}{COM_R 138 0{TEXT 
1 32 "2: Enhanced numerical facilities"}}{COM_R 139 0{TEXT 1 0 ""
}}{COM_R 140 0{TEXT 1 60 "- automatic complex numerical arithmeti
c, i.e. +, -, *, /, ^"}}{COM_R 141 0{TEXT 1 77 "- extend evalf to
 the complex domain for all elementary functions and erf(z),"}}
{COM_R 142 0{TEXT 1 72 "   erfc(z), erfc(n,z), GAMMA(z), GAMMA(a,
z) (incomplete Gamma function),"}}{COM_R 143 0{TEXT 1 67 "   Beta
(u,v), Psi(z), Psi(n,z), W(z), W(n,z) (all branches), Ei(z),"}}
{COM_R 144 0{TEXT 1 39 "   Ci(z), Si(z), Chi(z), Shi(z), Ssi(z)"}
}{COM_R 145 0{TEXT 1 64 "- Dawson's integral dawson(x) = exp(-x^2
) * int(exp(t^2),t=0..x)"}}{COM_R 146 0{TEXT 1 68 "- Elliptic int
egrals, LegendreE(x,k), LegendreEc(k), LegendreEc1(k),"}}{COM_R 
147 0{TEXT 1 68 "   LegendreF(x,k), LegendreKc(k), LegendreKc1(k)
, LegendrePi(x,k,a),"}}{COM_R 148 0{TEXT 1 38 "   LegendrePic(k,a
), LegendrePic1(k,a)"}}{COM_R 149 0{TEXT 1 71 "- Li(x) = Ei(ln(x)
 the logarithmic integral defined only for real x > 1"}}{COM_R 
150 0{TEXT 1 76 "- fsolve has a new algorithm for solving a univa
riate polynomial over R or C"}}{COM_R 151 0{TEXT 1 77 "  which sh
ould always succeed and, all digits should be accurate to 0.6 ulp
s."}}{COM_R 152 0{TEXT 1 77 "- Addition of the remez algorithm fo
r minimax rational function approximation"}}{COM_R 153 0{TEXT 1 
80 "- Addition of an adaptive double exponential algorithm for nu
merical integration"}}{COM_R 154 0{TEXT 1 74 "- Addition of Levin
's u transform for the numerical evaluation of infinite"}}{COM_R 
155 0{TEXT 1 28 "   sums, products and limits"}}{COM_R 156 0{TEXT
 1 78 "- The routines gauselim, gaussjord, rowspace, colspace, ei
genvals, eigenvects,"}}{COM_R 157 0{TEXT 1 79 "  inverse, det, in
 the linalg package now all handle matrices of floating point"}}
{COM_R 158 0{TEXT 1 36 "  and complex floating point entries"}}
{COM_R 159 0{TEXT 1 3 "   "}}{COM_R 160 0{TEXT 1 44 "3: Algebraic
 numbers and algebraic functions"}}{COM_R 161 0{TEXT 1 0 ""}}
{COM_R 162 0{TEXT 1 293 "The evala facility in Maple V supports p
olynomial operations over algebraic number fields.  This facility
 is used in indefinite integration, eigenvectors, and solving pol
ynomial equations.  E.g. Maple can factor the following polynomia
l over the algebraic number field  Q(sqrt(2))  as follows:"}}
{COM_R 163 0{TEXT 1 3 "   "}}{INP_R 164 0 "> "{TEXT 0 69 "f := x^
3+(-28+16*sqrt(2))*x^2+(-288*sqrt(2)+384)*x-1792+1280*sqrt(2);"}}
{OUT_R 165 0 164{DAG :3n3\`f`+B*3n3\`x`j2x0003j2x0001*5+5i2x0028p
9*3j2x0002/3p9p11j2x0016p9p5p11p9*5+5p10i2x0288j2x0384p9p9p5p9p9i
2x1792p9p10j2x1280}}{INP_R 166 0 "> "{TEXT 0 18 "factor(f,sqrt(2)
);"}}{OUT_R 167 0 166{DAG *7+7n3\`x`j2x0001i2x0012p4*3j2x0002/3p4
pAj2x0008p4+7p2p4i2x0008p4p9pFp4+5p2p4p15p4p4}}{COM_R 168 0{TEXT 
1 0 ""}}{COM_R 169 0{TEXT 1 150 "Because Maple can do this factor
ization, it means Maple can compute the eigenvalues (also the eig
envectors -- see below) of the following matrix, e.g."}}{COM_R 
170 0{TEXT 1 3 "   "}}{INP_R 171 0 "> "{TEXT 0 13 "with(linalg):"
}}{OUT_R 172 0 171{TEXT 2 71 "Warning: new definition for   norm\
012Warning: new definition for   trace\012"}}{INP_R 173 0 "> "
{TEXT 0 53 "A := matrix( [[5-5*sqrt(2), -2+4*sqrt(2), 5+sqrt(2)],
"}}{INP_R 174 0 "> "{TEXT 0 55 "              [-5+sqrt(2),  10-4*
sqrt(2), 3+3*sqrt(2)],"}}{INP_R 175 0 "> "{TEXT 0 60 "           \+
   [-3+3*sqrt(2), -2+4*sqrt(2), 13-7*sqrt(2)]] );"}}{OUT_R 176 0 
175{DAG :3n3\`A`(3n4\`MATRIX`,2[2,4[2,4+5j2x0005j2x0001*3j2x0002/
3pFp12i2x0005+5i2x0002pFp11j2x0004+5pDpFp11pF[2,4+5p17pFp11pF+5j2
x0010pFp11i2x0004+5j2x0003pFp11p34[2,4+5i2x0003pFp11p34p19+5j2x00
13pFp11i2x0007}}{INP_R 177 0 "> "{TEXT 0 13 "eigenvals(A);"}}
{OUT_R 178 0 177{DAG ,4+5j2x0012j2x0001*3j2x0002/3p4p7i2x0008+5j2
x0008p4p6pCpF}}{COM_R 179 0{TEXT 1 0 ""}}{COM_R 180 0{TEXT 1 457 
"The generalization of the evala facility to algebraic functions \+
in Maple V Release 2 means that we can replace the sqrt in the ab
ove problem by a sqrt of a formula and not just an integer, e.g. \+
sqrt(a).  Many parts of Maple work better because of this.  The e
xamples in the following sections on integration, polynomial fact
orization, and symbolic eigenvectors, Norms and Traces, etc. illu
strate other new capabilities in Maple which build on this facili
ty."}}{COM_R 181 0{TEXT 1 3 "   "}}{COM_R 182 0{TEXT 1 69 "4: Pol
ynomial factorization over algebraic number and function fields"}
}{COM_R 183 0{TEXT 1 0 ""}}{COM_R 184 0{TEXT 1 365 "Maple V can f
actor multivariate polynomials over the rational numbers Q and un
ivariate polynomials over algebraic number fields Q(alpha) as in \+
the above example.  Maple V Release 2 can factor multivariate pol
ynomials over algebraic number fields.  For example let's factor \+
the polynomial x^6+y^6 first over the rationals Q then over Q(i) \+
i.e. the complex rationals."}}{COM_R 185 0{TEXT 1 3 "   "}}{INP_R
 186 0 "> "{TEXT 0 16 "factor(x^6+y^6);"}}{OUT_R 187 0 186{DAG *5
+5*3n3\`x`j2x0002j2x0001*3n3\`y`p5p7p7+7*3p3j2x0004p7*5p3p5pAp5i2
x0001*3pAp12p7p7}}{INP_R 188 0 "> "{TEXT 0 18 "factor(x^6+y^6,I);
"}}{OUT_R 189 0 188{DAG *9+7*3n3\`x`j2x0002j2x0001*7n3\`I`p7p3p7n
3\`y`p7p7*3pFp5i2x0001p7+7p2p7p9p16p13p16p7+5p3p7*5pAp7pFp7p16p7+
5p3p7p24p7p7}}{COM_R 190 0{TEXT 1 0 ""}}{COM_R 191 0{TEXT 1 149 "
Maple V Release 2 can also factor multivariate polynomials over a
lgebraic function fields e.g. let's factor the following polynomi
al over Q(sqrt(a))."}}{COM_R 192 0{TEXT 1 3 "   "}}{INP_R 193 0 "
> "{TEXT 0 57 "f := x^3 + (16*a^(1/2)-28)*x^2 + (64*a-288*a^(1/2)
+256)*x"}}{INP_R 194 0 "> "{TEXT 0 29 "     -512*a+1280*a^(1/2)-7
68;"}}{OUT_R 195 0 194{DAG :3n3\`f`+D*3n3\`x`j2x0003j2x0001*5+5*3
n3\`a`/3p9j2x0002j2x0016i2x0028p9p9p5p12p9*5+7pEj2x0064pDi2x0288j
2x0256p9p9p5p9p9pEi2x0512pDj2x1280i2x0768p9}}{INP_R 196 0 "> "
{TEXT 0 18 "factor(f,sqrt(a));"}}{OUT_R 197 0 196{DAG *7+7n3\`x`j
2x0001*3n3\`a`/3p4j2x0002j2x0008i2x0012p4p4+7p2p4p6pDi2x0008p4p4+
5p2p4p18p4p4}}{COM_R 198 0{TEXT 1 0 ""}}{COM_R 199 0{TEXT 1 297 "
Two new factorization routines split and AFactor have been added \+
to the library.  split(a,x) factors a univariate polynomial in x \+
into linear factors over its splitting field.  evala(AFactor(a)) \+
does a complete factorization of a multivariate polynomial, i.e. \+
over the algebraic closure of Q, e.g."}}{COM_R 200 0{TEXT 1 3 "  \+
 "}}{INP_R 201 0 "> "{TEXT 0 26 "evala(AFactor(x^2-2*y^2));"}}
{OUT_R 202 0 201{DAG *5+5n3\`x`j2x0001*5(3n4\`RootOf`,2+5*3n3\`_Z
`j2x0002p4i2x0002p4p4n3\`y`p4i2x0001p4+5p2p4p6p4p4}}{COM_R 203 0
{TEXT 1 0 ""}}{COM_R 204 0{TEXT 1 359 "The RootOf value that you \+
see in the output above is Maple's notation for the algebraic num
bers which are the solutions to the polynomial equation _Z^2 - 2 \+
= 0.  In this case, the solutions are +- sqrt(2), i.e. they can b
e written in terms of exact radicals.\012\015One can use the conv
ert function to convert to and from the RootOf notation to the ra
dical notation"}}{COM_R 205 0{TEXT 1 3 "   "}}{INP_R 206 0 "> "
{TEXT 0 19 "convert(\",radical);"}}{OUT_R 207 0 206{DAG *5+5n3\`x
`j2x0001*5j2x0002/3p4p7n3\`y`p4i2x0001p4+5p2p4p6p4p4}}{COM_R 208 
0{TEXT 1 0 ""}}{COM_R 209 0{TEXT 1 51 "5: Symbolic Eigenvalue and
 Eigenvector computation."}}{COM_R 210 0{TEXT 1 0 ""}}{COM_R 211 
0{TEXT 1 230 "The eigenvector routine linalg[eigenvects] returns \+
the eigenvectors of a matrix represented exactly in terms of the \+
roots of the characteristic polynomial.  For example, for our mat
rix A used previously, we obtain the eigenvectors"}}{COM_R 212 0
{TEXT 1 3 "   "}}{INP_R 213 0 "> "{TEXT 0 53 "A := matrix( [[5-5*
sqrt(2), -2+4*sqrt(2), 5+sqrt(2)],"}}{INP_R 214 0 "> "{TEXT 0 55 
"              [-5+sqrt(2),  10-4*sqrt(2), 3+3*sqrt(2)],"}}{INP_R
 215 0 "> "{TEXT 0 60 "              [-3+3*sqrt(2), -2+4*sqrt(2),
 13-7*sqrt(2)]] );"}}{OUT_R 216 0 215{DAG :3n3\`A`(3n4\`MATRIX`,2
[2,4[2,4+5j2x0005j2x0001*3j2x0002/3pFp12i2x0005+5i2x0002pFp11j2x0
004+5pDpFp11pF[2,4+5p17pFp11pF+5j2x0010pFp11i2x0004+5j2x0003pFp11
p34[2,4+5i2x0003pFp11p34p19+5j2x0013pFp11i2x0007}}{COM_R 217 0
{TEXT 1 0 ""}}{INP_R 218 0 "> "{TEXT 0 14 "eigenvects(A);"}}
{OUT_R 219 0 218{DAG ,4[2,4+5j2x0008j2x0001*3j2x0002/3p6p9i2x0008
p6%2,2(3n4\`VECTOR`,2[2,4i2x0001+3p8p1Ap6[2,4+5j2x0012p6p8pEp6%2,
2(3p14,2[2,4p6p1Ap6[2,4p4p6%2,2(3p14,2[2,4p6p6p6}}{COM_R 220 0
{TEXT 1 0 ""}}{COM_R 221 0{TEXT 1 300 "The output is a sequence o
f lists [e,m,b] where e is the eigenvalue, m its multiplicity, an
d b a basis for the eigenspace for e.  In Maple V, the eigenvects
 command could handle algebraic numbers, including rational numbe
rs.  Now it can handle algebraic functions, hence matrices of pol
ynomials, e.g."}}{COM_R 222 0{TEXT 1 3 "   "}}{INP_R 223 0 "> "
{TEXT 0 62 "A := matrix(4,4,[[a,a,a,0], [b,b,0,c], [b,0,c,c], [0,
a,a,a]]);"}}{OUT_R 224 0 223{DAG :3n3\`A`(3n4\`MATRIX`,2[2,5[2,5n
3\`a`pCpCj2x0000[2,5n3\`b`p14p10n3\`c`[2,5p14p10p18p18[2,5p10pCpC
pC}}{INP_R 225 0 "> "{TEXT 0 23 " factor(charpoly(A,x));"}}{OUT_R
 226 0 225{DAG *5+5n3\`x`j2x0001n3\`a`i2x0001p4+15*3p2j2x0003p4*5
p2j2x0002p6p4p8*5n3\`c`p4p2p13p8*5n3\`b`p4p2p13p8*7p20p4p19p4p2p4
p4*7p19p4p6p4p2p4p8*7p20p4p2p4p6p4p8*5p19p13p6p4p4*5p20p13p6p4p4*
7p6p4p19p4p20p4p4p4}}{INP_R 227 0 "> "{TEXT 0 72 "alias(alpha=Roo
tOf(op(2,\"),x)): # Denote the roots of the cubic by alpha"}}
{INP_R 228 0 "> "{TEXT 0 14 "eigenvects(A);"}}{OUT_R 229 0 228
{DAG ,3[2,4n3\`a`j2x0001%2,2(3n4\`VECTOR`,2[2,5+3*5n3\`b`i2x0001n
3\`c`p5p14j2x0000p1Ap5[2,4n4\`alpha`p5%2,2(3pA,2[2,5p5+3*7+B*5p12
p5p3p5j2x0002*3p20p34p14*5p20p5p16p5p5*5p20p5p3p5p5*5p16p5p3p5p5p
5+5p12p5p16p14p14p3p14p14*7+Bp46p34*5p20p5p12p5p5p40p5p36p14p2Fp5
p5p4Dp14p3p14p5}}{COM_R 230 0{TEXT 1 0 ""}}{COM_R 231 0{TEXT 1 
193 "Note: the optional argument 'radical' to the eigenvects comm
and can asks Maple to express roots of polynomials as exact radic
als where possible instead of in terms of the RootOf representati
on."}}{COM_R 232 0{TEXT 1 3 "   "}}{COM_R 233 0{TEXT 1 29 "6: Sym
bolic Fourier transform"}}{COM_R 234 0{TEXT 1 40 "---------------
-------------------------"}}{COM_R 235 0{TEXT 1 57 "The call four
ier(f(s),s,w) computes the fourier transform"}}{COM_R 236 0{TEXT 
1 3 "   "}}{INP_R 237 0 "> "{TEXT 0 9 "f := 'f':"}}{INP_R 238 0 "
> "{TEXT 0 52 "F(w) = Int(f(s)*exp(-I*s*w), s=-infinity..infinity
);"}}{OUT_R 239 0 238{DAG =3(3n3\`F`,2n3\`w`(3n3\`Int`,3*5(3n3\`f
`,2n3\`s`j2x0001(3n3\`exp`,2+3*7n3\`I`p12p10p12p5p12i2x0001p12=3p
10~3+3n5\`infinity`p21p28}}{COM_R 240 0{TEXT 1 11 "For example"}}
{COM_R 241 0{TEXT 1 0 ""}}{INP_R 242 0 "> "{TEXT 0 17 "readlib(fo
urier):"}}{INP_R 243 0 "> "{TEXT 0 15 "fourier(s,s,w);"}}{OUT_R 
244 0 243{DAG +3*7n3\`I`j2x0001n3\`Pi`p4(3n4\`Dirac`,3p4n3\`w`p4j
2x0002}}{INP_R 245 0 "> "{TEXT 0 31 "fourier(1/(4 - I*t)^(1/3),t,
w);"}}{OUT_R 246 0 245{DAG *Bj2x0003/3j2x0001j2x0002(3n4\`GAMMA`,
2/3p6p1p4n3\`w`/3i2x0002p1(3n3\`exp`,2+3p11i2x0004p4(3n5\`Heavisi
de`,2p11p4}}{COM_R 247 0{TEXT 1 3 "   "}}{COM_R 248 0{TEXT 1 3 " \+
  "}}{COM_R 249 0{TEXT 1 22 "6: New limit algorithm"}}{COM_R 250 
0{TEXT 1 0 ""}}{COM_R 251 0{TEXT 1 295 "The idea behind the new a
lgorithm is the following.  First locate the most varying part of
 the expression.  Treat this indeterminate as a symbol and comput
e a series expansion in this symbol alone.  If there is no consta
nt coefficient in the resulting series, you are done, otherwise, \+
recurse on"}}{COM_R 252 0{TEXT 1 50 "that constant coefficient.  \+
Here are some examples"}}{COM_R 253 0{TEXT 1 3 "   "}}{INP_R 254 
0 "> "{TEXT 0 40 " f := exp(exp(exp(Psi(Psi(Psi(n))))))/n;"}}
{OUT_R 255 0 254{DAG :3n3\`f`*5(3n3\`exp`,2(3p5,2(3p5,2(3n3\`Psi`
,2(3pF,2(3pF,2n3\`n`j2x0001p18i2x0001}}{INP_R 256 0 "> "{TEXT 0 
40 "Limit(f,n=infinity)=limit(f,n=infinity);"}}{OUT_R 257 0 256
{DAG =3(3n4\`Limit`,3*5(3n3\`exp`,2(3p8,2(3p8,2(3n3\`Psi`,2(3p12,
2(3p12,2n3\`n`j2x0001p1Bi2x0001=3p1Bn5\`infinity`j2x0000}}{INP_R 
258 0 "> "{TEXT 0 45 " f := n*(GAMMA(n-1/GAMMA(n))-GAMMA(n)+ln(n)
);"}}{OUT_R 259 0 258{DAG :3n3\`f`*5n3\`n`j2x0001+7(3n4\`GAMMA`,2
+5p4p6*3(3pA,2p4i2x0001p16p6p12p16(3n3\`ln`p14p6p6}}{INP_R 260 0 
"> "{TEXT 0 46 "Limit( f, n=infinity )=limit( f, n=infinity );"}}
{OUT_R 261 0 260{DAG =3(3n4\`Limit`,3*5n3\`n`j2x0001+7(3n4\`GAMMA
`,2+5p7p9*3(3pD,2p7i2x0001p19p9p15p19(3n3\`ln`p17p9p9=3p7n5\`infi
nity`/3p9j2x0002}}{COM_R 262 0{TEXT 1 0 ""}}{COM_R 263 0{TEXT 1 
75 "8: Symbolic simplifications for min, max, trunc, round, ceil,
 floor, Re, Im"}}{COM_R 264 0{TEXT 1 0 ""}}{COM_R 265 0{TEXT 1 
203 "These routines now do quite a number of symbolic simplificat
ions.  Note, interval arithmetic is used by the signum function i
n these examples to prove that the constant Pi < sqrt(10) and tha
t cos(2) < 0."}}{INP_R 266 0 "> "{TEXT 0 44 " min( min (Pi, sqrt(
10)), min(a+1, a-1), a);"}}{OUT_R 267 0 266{DAG (3n3\`min`,3n3\`P
i`+5n3\`a`j2x0001i2x0001p9}}{COM_R 268 0{TEXT 1 1 " "}}{INP_R 269
 0 "> "{TEXT 0 37 "Re( ln(Pi-sqrt(10)) + sqrt(cos(2)) );"}}{OUT_R
 270 0 269{DAG (3n3\`ln`,2+5*3j2x0010/3j2x0001j2x0002p9n3\`Pi`i2x
0001}}{COM_R 271 0{TEXT 1 0 ""}}{COM_R 272 0{TEXT 1 60 "10: Norms
 and Traces in algebraic number and function fields"}}{COM_R 273 
0{TEXT 1 0 ""}}{COM_R 274 0{TEXT 1 305 "Norm(alpha,L,K) and Trace
(alpha,L,K) compute the norm (trace) of an algebraic number or fu
nction in L over field K.  I.e. the input is over the field L and
 the output is over the field K a subfield of L.  The fields L an
d K are specified by sets of RootOf's which define the field exte
nsions.  For example"}}{COM_R 275 0{TEXT 1 3 "   "}}{INP_R 276 0 
"> "{TEXT 0 52 "alias( s2 = RootOf(x^2-2=0), s3 = RootOf(x^2-3=0)
 ):"}}{INP_R 277 0 "> "{TEXT 0 47 "L := \{s2,s3\}:   # so L = Q(s
qrt(2),sqrt(3)) and"}}{INP_R 278 0 "> "{TEXT 0 35 "K := \{s2\};  \+
    #    K = Q(sqrt(2))"}}{OUT_R 279 0 278{DAG :3n3\`K`%2,2n3\`s2
`}}{INP_R 280 0 "> "{TEXT 0 26 "evala(Trace(x-s2-s3,L,K));"}}
{OUT_R 281 0 280{DAG +5n3\`x`j2x0002n3\`s2`i2x0002}}{INP_R 282 0 
"> "{TEXT 0 25 "evala(Norm(x-s2-s3,L,K));"}}{OUT_R 283 0 282{DAG 
+7i2x0001j2x0001*3n3\`x`j2x0002p3*5p6p3n3\`s2`p3i2x0002}}{INP_R 
284 0 "> "{TEXT 0 29 "evala(Norm(x-s2-s3)); # K = Q"}}{OUT_R 285 
0 284{DAG +7*3n3\`x`j2x0002i2x0010j2x0001p8*3p2j2x0004p8}}{COM_R 
286 0{TEXT 1 0 ""}}{COM_R 287 0{TEXT 1 53 "11: Computing with fie
ld extensions: Indep, Primfield"}}{COM_R 288 0{TEXT 1 0 ""}}
{COM_R 289 0{TEXT 1 255 "These are tools for computing with neste
d field extensions.  Indep(L) searches for relations between the \+
set of field extensions (RootOfs) L.  Primfield(L,K) computes a p
rimitive element alpha for a set of field extensions L over the s
ubfield K of L, e.g."}}{COM_R 290 0{TEXT 1 3 "   "}}{INP_R 291 0 
"> "{TEXT 0 26 "evala(Primfield(\{s2,s3\}));"}}{OUT_R 292 0 291
{DAG [2,3[2,2=3(3n4\`RootOf`,2+7*3n3\`_Z`j2x0002i2x0010*3pCj2x000
4j2x0001p16p16+5n3\`s3`p16n3\`s2`p16[2,3=3p1B+5p5/3j2x0011pE*3p5j
2x0003/3i2x0001pE=3p1E+5p5/3i2x0009pEp2B/3p16pE}}{COM_R 293 0
{TEXT 1 0 ""}}{COM_R 294 0{TEXT 1 418 "The result is a list of tw
o elements.  The first element defines the primitive element alph
a as a RootOf the minimal polynomial over K.  We see that the min
imal polynomial in this example is x^4-10*x^2+1.  It equates alph
a in terms of L, i.e. here alpha = sqrt(3)+sqrt(2).  The second e
ntry expresses the field extensions of K in terms of alpha.  Here
 sqrt(2) = alpha^3/2-9*alpha/2, and sqrt(3) = 11/2*alpha-alpha^3/
2."}}{COM_R 295 0{TEXT 1 3 "   "}}{COM_R 296 0{TEXT 1 23 "12: Con
tinued fractions"}}{COM_R 297 0{TEXT 1 0 ""}}{COM_R 298 0{TEXT 1 
387 "The cfrac routine in the numtheory package now computes cont
inued fraction expansions for real numbers, polynomials, series, \+
and formulae.  Several forms are available including simple, regu
lar, simregular, etc.  The utility routines nthconver, nthnumer, \+
nthdenom return the nth convergent, numerator, denominator e.g. h
ere is the continued fraction for Pi, and the first few convergen
ts"}}{COM_R 299 0{TEXT 1 3 "   "}}{INP_R 300 0 "> "{TEXT 0 16 "wi
th(numtheory):"}}{OUT_R 301 0 300{TEXT 2 224 "Warning: new defini
tion for   L\012Warning: new definition for   bernoulli\012Warnin
g: new definition for   ifactor\012Warning: new definition for   \+
isprime\012Warning: new definition for   nextprime\012Warning: ne
w definition for   order\012"}}{INP_R 302 0 "> "{TEXT 0 18 "cf :=
 cfrac(Pi,5);"}}{OUT_R 303 0 302{DAG :3n3\`cf`+5j2x0003j2x0001*3+
5j2x0007p6*3+5j2x0015p6*3+5p6p6*3+5j2x0292p6*3+5p6p6n3\`...`p6i2x
0001p6p22p6p22p6p22p6p22p6}}{INP_R 304 0 "> "{TEXT 0 31 "seq( nth
conver(cf,i), i=0..5 );"}}{OUT_R 305 0 304{DAG ,7j2x0003/3j2x0022
j2x0007/3j2x0333j2x0106/3j2x0355j2x0113/3j3x00103993j3x00033102/3
j3x00104348j3x00033215}}{COM_R 306 0{TEXT 1 3 "   "}}{INP_R 307 0
 "> "{TEXT 0 35 "cf := cfrac(exp(x),x,4,simregular);"}}{OUT_R 308
 0 307{DAG :3n3\`cf`+5j2x0001p4*5n3\`x`p4+5p4p4*5p8p4+5p4p4*5p8p4
+5p4p4*5p8p4+5p4p4n3\`...`p4i2x0001/3p23j2x0006p23/3p4p27p23/3p23
j2x0002p23p4}}{INP_R 309 0 "> "{TEXT 0 28 "seq(nthconver(cf,i),i=
0..3);"}}{OUT_R 310 0 309{DAG ,5j2x0001+5n3\`x`p1p1p1*5+5p4/3p1j2
x0002p1p1p1+5p4/3i2x0001pEp1p1p16*5+7*3p4pE/3p1j2x0006p4/3pEj2x00
03p1p1p1+5p4/3p16p28p1p1p16}}{COM_R 311 0{TEXT 1 0 ""}}{COM_R 312
 0{TEXT 1 29 "13: Diophantine approximation"}}{COM_R 313 0{TEXT 1
 0 ""}}{COM_R 314 0{TEXT 1 211 "The functions  minkowski  and  kr
onecker  in the number theory package solve the linear diophantin
e approximation problem, namely, given real or p-adic numbers a[i
][j] and epsilon[i], and m equations of the form"}}{COM_R 315 0
{TEXT 1 3 "   "}}{COM_R 316 0{TEXT 1 69 "        || sum( a[i][j]*
x[j], j=1..m ) || <= epsilon[i],   for i=1..m"}}{COM_R 317 0{TEXT
 1 3 "   "}}{COM_R 318 0{TEXT 1 310 "where || z || means, in the \+
real case, the distance between z and the nearest integer z, for \+
p-adic case || z || means p-adic valuation (see function valuep i
n padic package), solve for integers x[j].  I.e. find integers x[
j] and y[i] such that  abs( sum(a[i][j]*x[j],j=1..n) - y[i] ) <= \+
epsilon[i]  for i=1..m"}}{COM_R 319 0{TEXT 1 120 "(in the real ca
se).  This homogeneous case is solved by the minkowski function w
here the equations are input in the form"}}{COM_R 320 0{TEXT 1 3 
"   "}}{COM_R 321 0{TEXT 1 74 "     abs( sum( a[i][j]*x[j], j=1..
m ) - y[i] ) <= epsilon[i],   for i=1..m"}}{COM_R 322 0{TEXT 1 3 
"   "}}{COM_R 323 0{TEXT 1 11 "For example"}}{COM_R 324 0{TEXT 1 
3 "   "}}{INP_R 325 0 "> "{TEXT 0 50 "eqn1 := abs(  E*x1 + 2^(1/2
)*x2 - y1 ) <= 10^(-2):"}}{INP_R 326 0 "> "{TEXT 0 50 "eqn2 := ab
s( 3^(1/3)*x1 + Pi*x2 - y2 ) <= 10^(-4):"}}{INP_R 327 0 "> "{TEXT
 0 43 "minkowski( \{eqn1,eqn2\}, \{x1,x2\}, \{y1,y2\} );"}}{OUT_R
 328 0 327{DAG ,5[2,2=3n3\`x1`j2x7484[2,2=3n3\`x2`i2x2534[2,2=3n3
\`y2`j2x2833[2,2=3n3\`y1`j3x00016760}}{COM_R 329 0{TEXT 1 3 "   "
}}{COM_R 330 0{TEXT 1 97 "The non-homogeneous case (more difficul
t) i.e. for real or p-adic alpha[i], equations of the form"}}
{COM_R 331 0{TEXT 1 3 "   "}}{COM_R 332 0{TEXT 1 76 "    || sum( \+
a[i][j]*x[j], j=1..n ) + alpha[i] || <= epsilon[i],   for i=1..m"
}}{COM_R 333 0{TEXT 1 3 "   "}}{COM_R 334 0{TEXT 1 37 "are solved
 by the kronecker function."}}{COM_R 335 0{TEXT 1 3 "   "}}{COM_R
 336 0{TEXT 1 3 "   "}}{COM_R 337 0{TEXT 7 39 "New and Enhanced I
ntegration Facilities"}}{COM_R 338 0{TEXT 1 0 ""}}{COM_R 339 0
{TEXT 1 22 "1: Dirac and Heaviside"}}{COM_R 340 0{TEXT 1 0 ""}}
{COM_R 341 0{TEXT 1 67 "Integration now knows about the Heaviside
 and Dirac functions, e.g."}}{COM_R 342 0{TEXT 1 3 "   "}}{INP_R 
343 0 "> "{TEXT 0 9 "f := 'f':"}}{INP_R 344 0 "> "{TEXT 0 82 "Int
(f(x)*Dirac(x),x=-infinity..infinity)=int(f(x)*Dirac(x),x=-infini
ty..infinity);"}}{OUT_R 345 0 344{DAG =3(3n3\`Int`,3*5(3n3\`f`,2n
3\`x`j2x0001(3n4\`Dirac`p9pC=3pA~3+3n5\`infinity`i2x0001p18(3p7,2
j2x0000}}{INP_R 346 0 "> "{TEXT 0 62 "Int(f(x)*Heaviside(x),x=-3.
.4)=int(f(x)*Heaviside(x),x=-3..4);"}}{OUT_R 347 0 346{DAG =3(3n3
\`Int`,3*5(3n3\`f`,2n3\`x`j2x0001(3n5\`Heaviside`p9pC=3pA~3i2x000
3j2x0004(3n3\`int`,3p6=3pA~3j2x0000p1A}}{COM_R 348 0{TEXT 1 0 ""}
}{COM_R 349 0{TEXT 1 21 "2: Elliptic integrals"}}{COM_R 350 0
{TEXT 1 0 ""}}{COM_R 351 0{TEXT 1 110 "Integration now recognizes
 Elliptic integrals and reduces them to a normal form in terms of
 Legendre functions"}}{COM_R 352 0{TEXT 1 3 "   "}}{INP_R 353 0 "
> "{TEXT 0 38 "f := sqrt( (1-x^2) * (1/25 + x^2/4) );"}}{OUT_R 
354 0 353{DAG :3n3\`f`*3*5+5j2x0001p6*3n3\`x`j2x0002i2x0001p6+5/3
p6j2x0025p6p9/3p6j2x0004p6/3p6pC}}{COM_R 355 0{TEXT 1 3 "   "}}
{INP_R 356 0 "> "{TEXT 0 36 "Int(1/f,x=1/2..1)=int(1/f,x=1/2..1);
"}}{OUT_R 357 0 356{DAG =3(3n3\`Int`,3*3*5+5j2x0001p8*3n3\`x`j2x0
002i2x0001p8+5/3p8j2x0025p8pB/3p8j2x0004p8/3p10pE=3pC~3/3p8pEp8+3
*5j2x0029p25(3n5\`LegendreF`,3+3*3j2x0003p25p25+3*3p2Bp25/3j2x000
5p2Bp8/3j2x0010p2B}}{COM_R 358 0{TEXT 1 3 "   "}}{INP_R 359 0 "> \+
"{TEXT 0 14 "evalf(rhs(\"));"}}{OUT_R 360 0 359{DAG e3j4x00232735
5206i2x0009}}{COM_R 361 0{TEXT 1 0 ""}}{COM_R 362 0{TEXT 1 22 "3:
 Algebraic functions"}}{COM_R 363 0{TEXT 1 0 ""}}{COM_R 364 0
{TEXT 1 208 "Integration of algebraic functions is now using the \+
Risch-Trager algorithm.  This includes a full implementation of t
he algebraic part including integrands which involve parameters a
nd algebraic numbers, e.g."}}{COM_R 365 0{TEXT 1 3 "   "}}{INP_R 
366 0 "> "{TEXT 0 62 "alias(alpha=RootOf(y^3-x^2-a,y)): # i.e. al
pha = (x^2+a)^(1/3)"}}{INP_R 367 0 "> "{TEXT 0 66 " f := (4*alpha
^2*x^3+(5*x^4+3*x^2*a)*alpha-3*x^2-3*a)/(x^2+a)/x^2;"}}{OUT_R 368
 0 367{DAG :3n3\`f`*7+9*5n4\`alpha`j2x0002n3\`x`j2x0003j2x0004*5+
5*3pBpFj2x0005*5pBp9n3\`a`j2x0001pDp1Dp6p1Dp1D*3pBp9i2x0003p1Bp27
p1D+5p24p1Dp1Bp1Di2x0001pBi2x0002}}{COM_R 369 0{TEXT 1 3 "   "}}
{INP_R 370 0 "> "{TEXT 0 9 "int(f,x);"}}{OUT_R 371 0 370{DAG +7*5
+5n3\`x`j2x0001i2x0001p5p5p3p7i2x0003*5p3p5n4\`alpha`p5j2x0003*3p
12j2x0002p16}}{COM_R 372 0{TEXT 1 3 "   "}}{COM_R 373 0{TEXT 1 
110 "and an implementation of the transcendental part for algebra
ic functions which do not contain parameters, e.g."}}{COM_R 374 0
{TEXT 1 3 "   "}}{INP_R 375 0 "> "{TEXT 0 59 " alias(beta=RootOf(
y^2-x^3-1,y)): # i.e. beta = sqrt(x^3+1)"}}{INP_R 376 0 "> "{TEXT
 0 59 "  f := (3*x^4-6*x^3+5*x^2-2*x+2)/(x^5-2*x^4-x+2*x^3+1)*bet
a"}}{INP_R 377 0 "> "{TEXT 0 52 "     +(3*x^4+5*x^2-5*x^3-2*x)/(x
^5-2*x^4-x+2*x^3+1);"}}{OUT_R 378 0 377{DAG :3n3\`f`+5*7+B*3n3\`x
`j2x0004j2x0003*3p7pBi2x0006*3p7j2x0002j2x0005p7i2x0002p14j2x0001
p1C+B*3p7p16p1Cp6p19p7i2x0001pDp14p1Cp1Cp27n4\`beta`p1Cp1C*5+9p6p
Bp12p16pDi2x0005p7p19p1Cp1Fp27p1C}}{INP_R 379 0 "> "{TEXT 0 9 "in
t(f,x);"}}{OUT_R 380 0 379{DAG +5n4\`beta`j2x0002(3n3\`ln`,2*5+9*
3n3\`x`j2x0003j2x0001*3pDp4p11p11p11*5p1p11pDp11i2x0002p11+7pCp11
p13i2x0001p11p11p1Ep25}}{COM_R 381 0{TEXT 1 3 "   "}}{COM_R 382 0
{TEXT 1 32 "4: Integration of the W function"}}{COM_R 383 0{TEXT 
1 0 ""}}{COM_R 384 0{TEXT 1 273 "Indefinite integration now uses \+
an inverse function transformation to transform integrals involvi
ng the W function (where note W(x) is the function defined to sat
isfy exp(W(x))*W(x)=x ) of linear arguments to elementary functio
ns, hence the following integrals are computed"}}{COM_R 385 0
{TEXT 1 3 "   "}}{INP_R 386 0 "> "{TEXT 0 14 "int(x/W(x),x);"}}
{OUT_R 387 0 386{DAG +5*5n3\`x`j2x0002(3n3\`W`,2p2i2x0002/3j2x000
1j2x0004*5p2p4p6i2x0001/3pEp4}}{INP_R 388 0 "> "{TEXT 0 14 "int(1
/W(x),x);"}}{OUT_R 389 0 388{DAG +5(3n3\`Ei`,3j2x0001+3(3n3\`W`,2
n3\`x`i2x0001pE*5pCp5p8pEp5}}{COM_R 390 0{TEXT 1 0 ""}}{COM_R 391
 0{TEXT 1 66 "5: The Exponential integral, error function, and re
lated integrals"}}{COM_R 392 0{TEXT 1 0 ""}}{COM_R 393 0{TEXT 1 
409 "Indefinite integration of the forms g(x)*sin(f(x)) and g(x)*
cos(f(x)) where g(x) is a rational function in x and f(x) is a qu
adratic polynomial in x are expressed in terms of the Fresnel int
egrals FresnelC(x) and FresnelS(x), and the cosine and sine integ
rals Ci(x) and Si(x).  Note, Maple V can do these examples, but t
he answer involves complex error functions and Exponential integr
als of complex arguments"}}{COM_R 394 0{TEXT 1 3 "   "}}{INP_R 
395 0 "> "{TEXT 0 58 "Int( 5*x^4*sin(2*x^2+1), x )=int( 5*x^4*sin
(2*x^2+1), x );"}}{OUT_R 396 0 395{DAG =3(3n3\`Int`,3+3*5n3\`x`j2
x0004(3n3\`sin`,2+5*3p7j2x0002p12j2x0001p15p15j2x0005p7+7*5p7j2x0
003(3n3\`cos`pEp15/3i2x0005p9*5p7p15pBp15/3j2x0015j2x0016*5n3\`Pi
`/3p15p12+5*5(3p22,2p15p15(3n5\`FresnelS`,2+3*5p35/3i2x0001p12p7p
15p12p15p15*5(3pCp3Ep15(3n5\`FresnelC`p46p15p15p15/3i2x0015j2x003
2}}{INP_R 397 0 "> "{TEXT 0 50 "Int( sin(u*x^2-v)/x, x )=int( sin
(u*x^2-v)/x, x );"}}{OUT_R 398 0 397{DAG =3(3n3\`Int`,3+3*5(3n3\`
sin`,2+5*5n3\`u`j2x0001n3\`x`j2x0002i2x0001n3\`v`pFpFp11p15p15p11
+5*5(3n3\`cos`,2p17pF(3n3\`Si`,2pCpF/3pFp13*5(3p8p24pF(3n3\`Ci`p2
ApF/3p15p13}}{COM_R 399 0{TEXT 1 0 ""}}{COM_R 400 0{TEXT 1 36 "6:
 New classes of definite integrals"}}{COM_R 401 0{TEXT 1 0 ""}}
{COM_R 402 0{TEXT 1 202 "Several new classes of infinite indefini
te integrals are now handled.  These are computed by evaluating d
erivatives of special functions and exploiting symmetry.  For exa
mple, for p>0 and q>0, the class"}}{COM_R 403 0{TEXT 1 3 "   "}}
{INP_R 404 0 "> "{TEXT 0 53 "Int( x^(a-1)*exp(-p*x^s - q*x^(-s)),
 x=0..infinity );"}}{OUT_R 405 0 404{DAG (3n3\`Int`,3*5^3n3\`x`+5
n3\`a`j2x0001i2x0001pBpB(3n3\`exp`,2+5*5n3\`p`pB^3p6n3\`s`pBpD*5n
3\`q`pB^3p6+3p1CpDpBpDpB=3p6~3j2x0000n5\`infinity`}}{COM_R 406 0
{TEXT 1 3 "   "}}{INP_R 407 0 "> "{TEXT 0 12 "assume(p>0);"}}
{INP_R 408 0 "> "{TEXT 0 12 "assume(q>0);"}}{INP_R 409 0 "> "
{TEXT 0 89 "Int( x^2*exp(-p*x^3-q/x^3), x=0..infinity )= int( x^2
*exp(-p*x^3-q/x^3), x=0..infinity );"}}{OUT_R 410 0 409{DAG =3(3n
3\`Int`,3*5n3\`x`j2x0002(3n3\`exp`,2+5*5n3\`p~~`j2x0001p6j2x0003i
2x0001*5n3\`q~~`p12p6i2x0003p17p12=3p6~3j2x0000n5\`infinity`+3*5*
5p1Ap12p10p17/3p12p8(3n4\`BesselK`,3p12+3*3*5p10p12p1Ap12p32p8p12
/3p8p15}}{COM_R 411 0{TEXT 1 0 ""}}{COM_R 412 0{TEXT 1 183 "Note,
 the appearance of p~ and q~ in this answer indicates that assump
tions about p and q have been made.  Also, several classes involv
ing Bessel functions e.g. for u>0,v>0, the class"}}{COM_R 413 0
{TEXT 1 3 "   "}}{INP_R 414 0 "> "{TEXT 0 59 "Int( exp(-u*t^s)*t^
w*BesselJ(v,c*t^(s/2)), t=0..infinity );"}}{OUT_R 415 0 414{DAG (
3n3\`Int`,3*7(3n3\`exp`,2+3*5n3\`u`j2x0001^3n3\`t`n3\`s`pDi2x0001
pD^3p10n3\`w`pD(3n4\`BesselJ`,3n3\`v`*5n3\`c`pD^3p10+3p12/3pDj2x0
002pDpD=3p10~3j2x0000n5\`infinity`}}{COM_R 416 0{TEXT 1 0 ""}}
{COM_R 417 0{TEXT 1 69 "in general results in 1 F 1, the confluen
t hypergeomic function, e.g."}}{COM_R 418 0{TEXT 1 0 ""}}{INP_R 
419 0 "> "{TEXT 0 106 "Int( exp(-t)*t^2*BesselJ(1,sqrt(t)), t=0..
infinity )=int( exp(-t)*t^2*BesselJ(1,sqrt(t)), t=0..infinity );"
}}{OUT_R 420 0 419{DAG =3(3n3\`Int`,3*7(3n3\`exp`,2+3n3\`t`i2x000
1j2x0001pBj2x0002(3n4\`BesselJ`,3pF*3pB/3pFp12pF=3pB~3j2x0000n5\`
infinity`+3*5n3\`Pi`p1C(3n5\`hypergeom`,4[2,2/3j2x0007p12[2,2p12/
3pDj2x0004pF/3j2x0015j2x0016}}{COM_R 421 0{TEXT 1 56 "Also classe
s involving the error functions, e.g. for u>0"}}{COM_R 422 0{TEXT
 1 3 "   "}}{INP_R 423 0 "> "{TEXT 0 12 "assume(u>0);"}}{INP_R 
424 0 "> "{TEXT 0 87 "Int( exp(-u*x^2)*erf(b*x), x=0..infinity ) \+
=int( exp(-u*x^2)*erf(b*x), x=0..infinity );"}}{OUT_R 425 0 424
{DAG =3(3n3\`Int`,3*5(3n3\`exp`,2+3*5n3\`u~~`j2x0001n3\`x`j2x0002
i2x0001pE(3n3\`erf`,2*5n3\`b`pEp10pEpE=3p10~3j2x0000n5\`infinity`
*7pC/3p14p12(3n4\`arctan`,2*5p1CpEpCp2DpEn3\`Pi`p2D}}{INP_R 426 0
 "> "{TEXT 0 43 "u := 'u': p := 'p': q := 'q': # Clear u,p,q"}}
{COM_R 427 0{TEXT 1 51 "7: Handling singularities in an indefinit
e integral"}}{COM_R 428 0{TEXT 1 0 ""}}{COM_R 429 0{TEXT 1 179 "D
efinite integration now uses a new algorithm to resolve integrals
 which have discontinuities (removable or non-removable) in the r
esult from indefinite integration.  For example,"}}{COM_R 430 0
{TEXT 1 3 "   "}}{INP_R 431 0 "> "{TEXT 0 72 "Int( 1/(5+3*cos(x))
, x=0..13*Pi/2 )=int( 1/(5+3*cos(x)), x=0..13*Pi/2 );"}}{OUT_R 
432 0 431{DAG =3(3n3\`Int`,3*3+5j2x0005j2x0001(3n3\`cos`,2n3\`x`j
2x0003i2x0001=3pF~3j2x0000+3n3\`Pi`/3j2x0013j2x0002+5(3n4\`arctan
`,2/3p9p20p28p1B/3p11p20}}{COM_R 433 0{TEXT 1 3 "   "}}{COM_R 434
 0{TEXT 1 67 "This result was obtained by first computing the ind
efinite integral"}}{COM_R 435 0{TEXT 1 3 "   "}}{INP_R 436 0 "> "
{TEXT 0 50 "Int( 1/(5+3*cos(x)), x )=int( 1/(5+3*cos(x)), x );"}}
{OUT_R 437 0 436{DAG =3(3n3\`Int`,3*3+5j2x0005j2x0001(3n3\`cos`,2
n3\`x`j2x0003i2x0001pF+3(3n4\`arctan`,2+3(3n3\`tan`,2+3pF/3p9j2x0
002p23p23}}{COM_R 438 0{TEXT 1 3 "   "}}{COM_R 439 0{TEXT 1 78 "t
hen by taking limits given the following information about the di
sontinuities"}}{INP_R 440 0 "> "{TEXT 0 7 "rhs(\");"}}{OUT_R 441 
0 440{DAG +3(3n4\`arctan`,2+3(3n3\`tan`,2+3n3\`x`/3j2x0001j2x0002
pEpE}}{INP_R 442 0 "> "{TEXT 0 22 "readlib(discont)(\",x);"}}
{OUT_R 443 0 442{DAG %2,2+5*5n3\`Pi`j2x0001n4\`_Z2~~`p6j2x0002p4p
6}}{COM_R 444 0{TEXT 1 0 ""}}{COM_R 445 0{TEXT 1 132 "A second ex
ample showing that Maple can prove that this integral diverges, i
nstead of returning unevaluated -- meaning I don't know."}}{COM_R
 446 0{TEXT 1 3 "   "}}{INP_R 447 0 "> "{TEXT 0 38 "Int(1/x^2,x=-
1..1)=int(1/x^2,x=-1..1);"}}{OUT_R 448 0 447{DAG =3(3n3\`Int`,3*3
n3\`x`i2x0002=3p6~3i2x0001j2x0001n5\`infinity`}}{COM_R 449 0{TEXT
 1 77 "Also, the addition of the CauchyPrincipalValue option to i
nt handles this one"}}{COM_R 450 0{TEXT 1 3 "   "}}{INP_R 451 0 "
> "{TEXT 0 41 "int( 1/x, x=-1..1, CauchyPrincipalValue);"}}{OUT_R
 452 0 451{DAG j2x0000}}{COM_R 453 0{TEXT 1 53 "\0158: Numerical \+
integration uses exponential quadrature"}}{COM_R 454 0{TEXT 1 0 "
"}}{COM_R 455 0{TEXT 1 348 "An adaptive, double-exponential routi
ne has been implemented to handle those integrals for which the d
efault Clenshaw-Curtis quadrature routine (based on Chebyshev ser
ies) does not succeed.  This new routine replaces the use of an 8
'th order adaptive Newton-Cotes routine, which, being a fixed ord
er method, does not perform well at high precision."}}{COM_R 456 
0{TEXT 1 3 "   "}}{COM_R 457 0{TEXT 1 44 "9: User interface for i
ndefinite integration"}}{COM_R 458 0{TEXT 1 0 ""}}{COM_R 459 0
{TEXT 1 306 "An interface for indefinite integration has been add
ed to allow users to teach Maple about how to compute the indefin
ite integral of an expression f(x) involving the function g(x) by
 writing a Maple procedure for `int/g` just as one would write `d
iff/g` for differentiating g(x).  The call int(g(x),x) will"}}
{COM_R 460 0{TEXT 1 182 "result in the calling `int/g`(f(_X)) i.e
. the whole expression in terms of the global _X will be passed t
o `int/g`.  The routine should return FAIL if it cannot compute t
he integral."}}{COM_R 461 0{TEXT 1 3 "   "}}{COM_R 462 0{TEXT 1 3
 "   "}}{COM_R 463 0{TEXT 8 34 "New and Enhanced System Facilitie
s"}}{COM_R 464 0{TEXT 1 3 "   "}}{COM_R 465 0{TEXT 1 35 "1: Type \+
declarations for parameters"}}{COM_R 466 0{TEXT 1 0 ""}}{COM_R 
467 0{TEXT 1 148 "Procedures accept type declarations as illustra
ted by the following example. The purpose of this facility note i
s to encourage better type checking."}}{COM_R 468 0{TEXT 1 3 "   \+
"}}{COM_R 469 0{TEXT 1 15 "    proc( a:t )"}}{COM_R 470 0{TEXT 1 
12 "        ...."}}{COM_R 471 0{TEXT 1 10 "    end   "}}{COM_R 
472 0{TEXT 1 3 "   "}}{COM_R 473 0{TEXT 1 24 "is equivalent to wr
iting"}}{COM_R 474 0{TEXT 1 3 "   "}}{COM_R 475 0{TEXT 1 11 "    \+
proc(a)"}}{COM_R 476 0{TEXT 1 64 "        if nargs > 0 and not ty
pe(a,'t') then ERROR(message) fi;"}}{COM_R 477 0{TEXT 1 12 "     \+
   ...."}}{COM_R 478 0{TEXT 1 10 "    end   "}}{COM_R 479 0{TEXT 
1 3 "   "}}{COM_R 480 0{TEXT 1 153 "Note, the type checking is no
t static, it is done when the procedure is called.  The error mes
sage generated automatically is illustrated by this example"}}
{COM_R 481 0{TEXT 1 3 "   "}}{INP_R 482 0 "> "{TEXT 0 51 "f := pr
oc(n:integer) if n < 0 then 0 else n fi end:"}}{INP_R 483 0 "> "
{TEXT 0 8 "f(x);   "}}{OUT_R 484 0 483{TEXT 2 77 "Error, f expect
s its 1st argument, n, to be of type integer, \012but received x\
012"}}{COM_R 485 0{TEXT 1 0 ""}}{COM_R 486 0{TEXT 1 51 "2: D exte
nded to computation sequences and programs"}}{COM_R 487 0{TEXT 1 
0 ""}}{COM_R 488 0{TEXT 1 151 "The D operator can now compute par
tial derivatives of functions which are defined as procedures.  T
his is known as automatic differentiation.  Consider"}}{COM_R 489
 0{TEXT 1 0 ""}}{INP_R 490 0 "> "{TEXT 0 23 "f:=proc(x) local t1,
t2;"}}{INP_R 491 0 "> "{TEXT 0 12 "    t1:=x^2;"}}{INP_R 492 0 ">
 "{TEXT 0 17 "    t2 := sin(x);"}}{INP_R 493 0 "> "{TEXT 0 23 "  \+
  3*t1*t2+2*x*t1-x*t2"}}{INP_R 494 0 "> "{TEXT 0 7 "end:   "}}
{COM_R 495 0{TEXT 1 69 " The following computes the derivative of
 f wrt x, the first argument"}}{INP_R 496 0 "> "{TEXT 0 8 "D[1](f
);"}}{OUT_R 497 0 496{DAG @8,2n3\`x`,5n3\`t1x`n3\`t2`n3\`t1`n3\`t
2x`,1pD;6:3l2x0001+3a2x0001j2x0002:3l2x0003*3p14p16:3l2x0004(3n3\
`cos`,2p14:3l2x0002(3n3\`sin`p24+D*5p1Fj2x0001p19p30j2x0003*5p27p
30p11p30p34p19p16*5p14p30p11p30p16p27i2x0001*5p14p30p1Fp30p45pDpD
}{TEXT 2 146 "\012proc(x)\012local t1x,t2,t1,t2x;\012    t1x := 2
*x;\012    t1 := x^2;\012    t2x := cos(x);\012    t2 := sin(x);\
012    3*t2x*t1+3*t2*t1x+2*t1+2*x*t1x-t2-x*t2x\012end\012"}}
{COM_R 498 0{TEXT 1 3 "   "}}{COM_R 499 0{TEXT 1 515 "The reader \+
can check that this really does compute the derivative of f by ve
rifying that diff(f(x),x) - D(f)(x) = 0.  The advantage of automa
tic differentiation is twofold.  Firstly, it is much more efficie
nt, in general, to represent a function as a program instead of a
s a formula.  Secondly, it is more general as functions can have \+
conditional statements and loops. For example, given the array(0.
.n) of the coefficients of a polynomial b, we can represent the p
olynomial as a program in Horner form as follows."}}{COM_R 500 0
{TEXT 1 3 "   "}}{INP_R 501 0 "> "{TEXT 0 28 " f := proc(x,b,n) l
ocal i,s;"}}{INP_R 502 0 "> "{TEXT 0 12 "     s := 0;"}}{INP_R 
503 0 "> "{TEXT 0 49 "     for i from n by -1 to 0 do s := s*x+b[
i] od;"}}{INP_R 504 0 "> "{TEXT 0 9 "     s   "}}{INP_R 505 0 "> \+
"{TEXT 0 8 " end:   "}}{INP_R 506 0 "> "{TEXT 0 10 " f(x,b,4);"}}
{OUT_R 507 0 506{DAG +5*5n3\`x`j2x0001+5*5p2p4+5*5p2p4+5*5p2p4b3n
3\`b`,2j2x0004p4p4b3p13,2j2x0003p4p4p4b3p13,2j2x0002p4p4p4b3p13,2
p4p4p4p4b3p13,2j2x0000p4}}{INP_R 508 0 "> "{TEXT 0 15 " fx := D[1
](f);"}}{OUT_R 509 0 508{DAG :3n3\`fx`@8,4n3\`x`n3\`b`n3\`n`,4n3\
`i`n3\`s`n3\`sx`,1p12;5:3l2x0003j2x0000:3l2x0002p18f7l2x0001a2x00
03i2x0001p18n4\`true`;3:3p16+5p1Bj2x0001*5a2x0001p2Ep16p2Ep2E:3p1
B+5*5p31p2Ep1Bp2Ep2Eb3a2x0002,2p1Fp2Ep16p12p12}{TEXT 2 192 "\012f
x := proc(x,b,n)\012      local i,s,sx;\012          sx := 0;\012
          s := 0;\012          for i from n by -1 to 0 do\012    \+
          sx := s+x*sx; s := x*s+b[i]\012          od;\012       \+
   sx\012      end\012"}}{INP_R 510 0 "> "{TEXT 0 19 "  fx := pro
c(x,b,n)"}}{INP_R 511 0 "> "{TEXT 0 21 "        local sx,i,s;"}}
{INP_R 512 0 "> "{TEXT 0 20 "            sx := 0;"}}{INP_R 513 0 
"> "{TEXT 0 19 "            s := 0;"}}{INP_R 514 0 "> "{TEXT 0 71
 "            for i from n by -1 to 0 do  sx := sx*x+s; s := s*x+
b[i] od;"}}{INP_R 515 0 "> "{TEXT 0 14 "            sx"}}{INP_R 
516 0 "> "{TEXT 0 12 "        end;"}}{OUT_R 517 0 516{DAG :3n3\`f
x`@8,4n3\`x`n3\`b`n3\`n`,4n3\`sx`n3\`i`n3\`s`,1p12;5:3l2x0001j2x0
000:3l2x0003p18f7l2x0002a2x0003i2x0001p18n4\`true`;3:3p16+5*5a2x0
001j2x0001p16p30p30p1Bp30:3p1B+5*5p2Ep30p1Bp30p30b3a2x0002,2p1Fp3
0p16p12p12}{TEXT 2 192 "\012fx := proc(x,b,n)\012      local sx,i
,s;\012          sx := 0;\012          s := 0;\012          for i
 from n by -1 to 0 do\012              sx := x*sx+s; s := x*s+b[i
]\012          od;\012          sx\012      end\012"}}{COM_R 518 
0{TEXT 1 3 "   "}}{COM_R 519 0{TEXT 1 70 "3: Program optimization
 -- optimize extended to computations sequences"}}{COM_R 520 0
{TEXT 1 0 ""}}{COM_R 521 0{TEXT 1 219 "The optimize routine has b
een extended to optimize Maple procedures. Currently it does comm
on subexpression optimization on computation sequences, i.e. proc
edures with assignment statements to local variables only, e.g."}
}{COM_R 522 0{TEXT 1 3 "   "}}{INP_R 523 0 "> "{TEXT 0 62 "f := p
roc(x) local t; t := x^2; 3*t*sin(x)+2*x*t-x*sin(x) end:"}}{INP_R
 524 0 "> "{TEXT 0 21 "readlib(optimize)(f);"}}{OUT_R 525 0 524
{DAG @8,2n3\`x`,3n3\`t1`n3\`t`,1p9;4:3l2x0002*3a2x0001j2x0002:3l2
x0001(3n3\`sin`,2p10:3n4\`result`+7*5pDj2x0001p15p23j2x0003*5p10p
23pDp23p12*5p10p23p15p23i2x0001p9p9}{TEXT 2 89 "\012proc(x)\012lo
cal t1,t;\012    t := x^2;\012    t1 := sin(x);\012    result := \+
3*t*t1+2*x*t-x*t1\012end\012"}}{COM_R 526 0{TEXT 1 57 "4: Multipl
e libraries -- readlib takes multiple pathnames"}}{COM_R 527 0
{TEXT 1 0 ""}}{COM_R 528 0{TEXT 1 217 "Maple automatically reads \+
code from the Maple library using the readlib function.  The glob
al variable libname specifies where the Maple library is. This ca
n now be assigned a sequence of names.  E.g. if the user does"}}
{COM_R 529 0{TEXT 1 3 "   "}}{COM_R 530 0{TEXT 1 35 "  > libname \+
:= dir1, libname, dir3;"}}{COM_R 531 0{TEXT 1 3 "   "}}{COM_R 532
 0{TEXT 1 276 "this means that when readlib(f) is executed, Maple
 will search for f first under dir1, and if unsuccessful, it will
 search under the Maple library, and if unsuccessful under dir3. \+
 This means users can have their own development library and have
 it override the Maple library."}}{COM_R 533 0{TEXT 1 3 "   "}}
{COM_R 534 0{TEXT 1 18 "5: Assume facility"}}{COM_R 535 0{TEXT 1 
0 ""}}{COM_R 536 0{TEXT 1 219 "One of the deficiencies of Maple a
nd other systems is in handling problems which contain symbolic p
arameters where the result depends on the domain or range of valu
es that the symbolic parameter(s) takes.  E.g. consider"}}{COM_R 
537 0{TEXT 1 3 "   "}}{INP_R 538 0 "> "{TEXT 0 38 "Int( exp(-a*t)
*ln(t), t=0..infinity );"}}{OUT_R 539 0 538{DAG (3n3\`Int`,3*5(3n
3\`exp`,2+3*5n3\`a`j2x0001n3\`t`pDi2x0001pD(3n3\`ln`,2pFpD=3pF~3j
2x0000n5\`infinity`}}{COM_R 540 0{TEXT 1 308 "The answer to this \+
integral depends on the value of the parameter a.  If a is real a
nd positive, the answer is finite.  If a is real and non-positive
, the answer is infinite.  How can the user tell Maple that a is \+
real and positive?  The solution adopted in Maple V Release 2 is \+
to state the assumption about"}}{COM_R 541 0{TEXT 1 46 "a, i.e. t
hat a is real and positive as follows"}}{COM_R 542 0{TEXT 1 3 "  \+
 "}}{INP_R 543 0 "> "{TEXT 0 12 "assume(a>0);"}}{COM_R 544 0{TEXT
 1 154 "The result of this assumption is that the variable a has \+
been assigned a new value which prints as a~ which Maple knows is
 real (implicitly) and positive."}}{COM_R 545 0{TEXT 1 3 "   "}}
{INP_R 546 0 "> "{TEXT 0 5 "a;   "}}{OUT_R 547 0 546{DAG n3\`a~~`
}}{INP_R 548 0 "> "{TEXT 0 9 "about(a);"}}{OUT_R 549 0 548{TEXT 2
 75 "Originally a, renamed a~:\012  is assumed to be: RealRange(O
pen(0),infinity)\012\012"}}{COM_R 550 0{TEXT 1 202 "The assume fa
cility is presently being integrated into Maple, in particular, M
aple can now compute the definite integral above because Maple ca
n determine that a is positive because signum(a) returns 1."}}
{COM_R 551 0{TEXT 1 3 "   "}}{INP_R 552 0 "> "{TEXT 0 10 "signum(
a);"}}{OUT_R 553 0 552{DAG j2x0001}}{INP_R 554 0 "> "{TEXT 0 38 "
int( exp(-a*t)*ln(t), t=0..infinity );"}}{OUT_R 555 0 554{DAG +5*
5n3\`a~~`i2x0001(3n3\`ln`,2p2j2x0001p4*5p2p4n4\`gamma`pBp4}}
{COM_R 556 0{TEXT 1 255 "Note: Maple V users should stop using si
gnum(a) := 1; because this is a side effect and does not work in \+
conjunction with option remember.  The assume facility includes a
 data base of known properties, and a deduction facility for answ
ering questions like"}}{COM_R 557 0{TEXT 1 3 "   "}}{INP_R 558 0 
"> "{TEXT 0 11 " is(a+1>0);"}}{OUT_R 559 0 558{DAG n4\`true`}}
{INP_R 560 0 "> "{TEXT 0 39 "a := 'a': # clear assumptions made o
n a"}}{COM_R 561 0{TEXT 1 255 "A deficiency of the assume facilit
y is that the user needs to know what to assume in order to get a
nswers out of facilities like definite integration.  This is a to
pic of current research and future versions of Maple will provide
 different tools for this."}}{COM_R 562 0{TEXT 1 3 "   "}}{COM_R 
563 0{TEXT 1 39 "6: Automatic complex numeric arithmetic"}}{COM_R
 564 0{TEXT 1 0 ""}}{COM_R 565 0{TEXT 1 160 "Complex arithmetic i
n Maple V had to be done with the evalc function.  Now, complex n
umeric arithmetic is automatic.   This includes complex rational \+
arithmetic"}}{COM_R 566 0{TEXT 1 3 "   "}}{INP_R 567 0 "> "{TEXT 
0 10 "(2+I/3)^2;"}}{OUT_R 568 0 567{DAG +5/3j2x0035j2x0009j2x0001
n3\`I`/3j2x0004j2x0003}}{COM_R 569 0{TEXT 1 37 "And complex float
ing point arithmetic"}}{COM_R 570 0{TEXT 1 3 "   "}}{INP_R 571 0 
"> "{TEXT 0 19 "sin( (2.0+I/3)^2 );"}}{OUT_R 572 0 571{DAG +5e3i4
x001378776230i2x0009j2x0001n3\`I`e3i4x001294704958p6}}{COM_R 573 
0{TEXT 1 70 "The evalc function is now used only for exact symbol
ic expansions e.g."}}{COM_R 574 0{TEXT 1 3 "   "}}{INP_R 575 0 ">
 "{TEXT 0 21 "evalc(exp(2+Pi/3*I));"}}{OUT_R 576 0 575{DAG +5(3n3
\`exp`,2j2x0002/3j2x0001p5*7n3\`I`p8p1p8j2x0003p7p7}}{COM_R 577 0
{TEXT 1 3 "   "}}{INP_R 578 0 "> "{TEXT 0 21 "evalc( sqrt(a+I*b) \+
);"}}{OUT_R 579 0 578{DAG +5*3+5*3+5*3n3\`a`j2x0002j2x0001*3n3\`b
`p8pA/3pAp8p8p6p8p11p11*7n3\`I`pA(3n4\`csgn`,2+5pDpA*5p1ApAp6pAi2
x0001pA+5p3p8p6i2x0002p11p11}}{COM_R 580 0{TEXT 1 3 "   "}}{INP_R
 581 0 "> "{TEXT 0 12 "assume(a>0);"}}{INP_R 582 0 "> "{TEXT 0 12
 "assume(b>0);"}}{INP_R 583 0 "> "{TEXT 0 19 "evalc(sqrt(a+b*I));
"}}{OUT_R 584 0 583{DAG +5*3+5*3+5*3n3\`a~~`j2x0002j2x0001*3n3\`b
~~`p8pA/3pAp8p8p6p8p11p11*5n3\`I`pA+5p3p8p6i2x0002p11p11}}{INP_R 
585 0 "> "{TEXT 0 19 "a := 'a': b := 'b':"}}{COM_R 586 0{TEXT 1 0
 ""}}{COM_R 587 0{TEXT 1 43 "7: Arrow operators now accept if sta
tements"}}{COM_R 588 0{TEXT 1 0 ""}}{COM_R 589 0{TEXT 1 155 "The \+
arrow operators, e.g.  x -> x/(x^2-1);  have been extended to han
dle if statements so that they can be used to define piecewise fu
nctions.  For example"}}{COM_R 590 0{TEXT 1 0 ""}}{INP_R 591 0 ">
 "{TEXT 0 50 " x -> if x < 0 then 0 elif x < 1 then x else 0 fi;"
}}{OUT_R 592 0 591{DAG @8,2n3\`x`,1,3n5\`operator`n4\`arrow`p4?6<
3a2x0001j2x0000p12<3p10j2x0001p10p12p4p4}{TEXT 2 85 "\012proc(x)\
012options operator,arrow;\012    if x < 0 then 0 elif x < 1 then
 x else 0 fi\012end\012"}}{COM_R 593 0{TEXT 1 3 "   "}}{COM_R 594
 0{TEXT 1 29 "8: I/O facilities and changes"}}{COM_R 595 0{TEXT 1
 0 ""}}{COM_R 596 0{TEXT 1 201 "- printf: output a given expressi
on with format (as in the \"C\"   printf, with the added option o
f %a for algebraic), and also  includes the C escapes: \\b for ba
ckspace, \\t for tab, \\n for newline, e.g."}}{COM_R 597 0{TEXT 1
 3 "   "}}{INP_R 598 0 "> "{TEXT 0 60 "printf(`n = %d\\tvar = %s\
\tresult = %a\\n`, 10, y, 3*y^2+1);  "}}{OUT_R 599 0 598{TEXT 2 
32 "n = 10\011var = y\011result = 3*y^2+1\012"}}{COM_R 600 0{TEXT
 1 61 "- sscanf: decode a string according to a format (\"inverse
\" of"}}{COM_R 601 0{TEXT 1 49 "   printf, identical to the \"C\"
 sscanf function)."}}{COM_R 602 0{TEXT 1 76 "- input (tty and rea
d) and output (lprint and save) of numbers in scientific"}}{COM_R
 603 0{TEXT 1 58 "   E/e notation e.g. 1.2e+3 versus Float(12,2) \+
or 1.2*10^3"}}{COM_R 604 0{TEXT 1 70 "- readline: read a line of \+
an arbitrary file and return it as a string"}}{COM_R 605 0{TEXT 1
 47 "- parse: parse a string into a Maple expression"}}{COM_R 606
 0{TEXT 1 62 "- readdata: reads a file of numerical data arranged
 in columns"}}{COM_R 607 0{TEXT 1 58 "- output (lprint and save) \+
of powers using ^ instead of **"}}{COM_R 608 0{TEXT 1 3 "   "}}
{COM_R 609 0{TEXT 1 12 "9: New types"}}{COM_R 610 0{TEXT 1 0 ""}}
{COM_R 611 0{TEXT 1 61 "- type(a,arctrig) tests if a is an arc tr
igonometric function"}}{COM_R 612 0{TEXT 1 77 "- type(a,complex(t
)) tests if an expression of the form a + b*I where a and b"}}
{COM_R 613 0{TEXT 1 74 "   are of type t.  Typical cases of t are
 complex(integer), i.e. Z[i], the"}}{COM_R 614 0{TEXT 1 74 "   Ga
ussian integers, complex(rational), i.e. Q(i), complex(float), i.
e. a"}}{COM_R 615 0{TEXT 1 77 "   complex floating point number, \+
and complex(numeric) which is any of these."}}{COM_R 616 0{TEXT 1
 38 "- type(a,nothing) always returns false"}}{COM_R 617 0{TEXT 1
 59 "- type(f,mathfunc) tests if a function is a \"math\" functio
n"}}{COM_R 618 0{TEXT 1 69 "   The definition is that f is either
 an operator, or evalf/f exists,"}}{COM_R 619 0{TEXT 1 57 "   i.e
. Maple knows how to evaluate it in floating point."}}{COM_R 620 
0{TEXT 1 71 "   This includes abs, exp, erf, BesselJ, etc. but al
so int, sum, limit,"}}{COM_R 621 0{TEXT 1 69 "   and arrow proced
ures with option operator e.g. x -> sin(x)*cos(x);"}}{COM_R 622 0
{TEXT 1 64 "- type(a,TEXT) tests if a is a TEXT object (used for \+
help files)"}}{COM_R 623 0{TEXT 1 3 "   "}}{COM_R 624 0{TEXT 1 24
 "10: What is Maple doing?"}}{COM_R 625 0{TEXT 1 0 ""}}{COM_R 626
 0{TEXT 1 340 "The userinfo facility, that was introduced in Mapl
e V as a replacement for assigning printlevel to 2, 3, or 4, has \+
been completed.  For information on what Maple is doing, and what
 algorithms it is using for a specific function, e.g. integration
, one does infolevel[int] := 4;  For information on all functions
 one does infolevel[all] := 4;"}}{COM_R 627 0{TEXT 1 3 "   "}}
{COM_R 628 0{TEXT 1 26 "11: Single library archive"}}{COM_R 629 0
{TEXT 1 0 ""}}{COM_R 630 0{TEXT 1 500 "On the personal computers,
 the Macintosh, PC, Amiga and NeXT, the Maple V library is now be
ing distributed as a single file.  This saves a significant amoun
t of storage, and avoids problems with systems which have difficu
lty maintaining large numbers of files.  This will be done on oth
er platforms as well.  An override mechanism is also provided so \+
files can be updated.  The library archive file also resolves pro
blems on systems which have limited filename lengths and case ins
ensitive filenames."}}{COM_R 631 0{TEXT 1 3 "   "}}{COM_R 632 0
{TEXT 1 14 "12: errorbreak"}}{COM_R 633 0{TEXT 1 0 ""}}{COM_R 634
 0{TEXT 1 157 "Maple has added some user control for how Maple re
sponds on encountering errors when reading in a file.  This is pr
ovided by the interface option errorbreak."}}{COM_R 635 0{TEXT 1 
3 "   "}}{COM_R 636 0{TEXT 1 76 "- With interface(errorbreak=0); \+
the entire input file is read and all errors"}}{COM_R 637 0{TEXT 
1 69 "  that are encountered are displayed.  This was the Maple V
 behavior."}}{COM_R 638 0{TEXT 1 77 "- With interface(errorbreak=
1); processing stops after the first syntax error"}}{COM_R 639 0
{TEXT 1 73 "  thus avoiding nonsensical multiple syntax error mes
sages that are often"}}{COM_R 640 0{TEXT 1 68 "  consequences of \+
the first one.  This is the new default behaviotr."}}{COM_R 641 0
{TEXT 1 71 "- With interface(errorbreak=2); processing stops afte
r the first error,"}}{COM_R 642 0{TEXT 1 74 "  whatever it is, i.
e. syntax (parse time) or semantic (execution) errors."}}{COM_R 
643 0{TEXT 1 3 "   "}}{COM_R 644 0{TEXT 1 3 "   "}}{COM_R 645 0
{TEXT 9 24 "Algorithmic Improvements"}}{COM_R 646 0{TEXT 1 3 "   \+
"}}{COM_R 647 0{TEXT 1 36 "1: Integration of rational functions"}
}{COM_R 648 0{TEXT 1 0 ""}}{COM_R 649 0{TEXT 1 279 "The Trager-Ro
thstein algorithm computes the integral of a rational function f(
x) over a field K as a sum of logs over K(alpha), an algebraic ex
tension of K of minimal degree.  E.g. consider the following rati
onal function in Q(x) where note the denominator is irreducible o
ver Q."}}{COM_R 650 0{TEXT 1 3 "   "}}{INP_R 651 0 "> "{TEXT 0 52
 " f := (6*x^5+6*x^2-4*x+8*x^3-4)/(x^6+2*x^3+1-2*x^2);"}}{OUT_R 
652 0 651{DAG :3n3\`f`*5+B*3n3\`x`j2x0005j2x0006*3p6j2x0002pAp6i2
x0004*3p6j2x0003j2x0008p12j2x0001p1B+9*3p6pAp1Bp14pEp1Bp1BpCi2x00
02i2x0001}}{COM_R 653 0{TEXT 1 0 ""}}{COM_R 654 0{TEXT 1 67 "Appl
ying the Trager-Rothstein algorithm yields the following result"}
}{COM_R 655 0{TEXT 1 0 ""}}{INP_R 656 0 "> "{TEXT 0 48 "(1+alpha)
*Sum( ln(x^3-alpha*x+1), alpha^2-2=0 );"}}{OUT_R 657 0 656{DAG *5
+5j2x0001p2n4\`alpha`p2p2(3n3\`Sum`,3(3n3\`ln`,2+7*3n3\`x`j2x0003
p2*5p5p2p14p2i2x0001p2p2=3+5*3p5j2x0002p2i2x0002p2j2x0000p2}}
{COM_R 658 0{TEXT 1 0 ""}}{COM_R 659 0{TEXT 1 139 "I.e. there are
 two logs corresponding to two roots +- sqrt(2) of the polynomial
 alpha^2-2 = 0.  Hence, Maple gets the following nice result"}}
{COM_R 660 0{TEXT 1 3 "   "}}{INP_R 661 0 "> "{TEXT 0 9 "int(f,x)
;"}}{OUT_R 662 0 661{DAG +9*5(3n3\`ln`,2+7*3n3\`x`j2x0003j2x0001*
5p8pCj2x0002/3pCp11i2x0001pCpCpCp11p13pCp2pC(3p3,2+7p7pCpEpCpCpCp
C*5p20pCp11p13p16}}{COM_R 663 0{TEXT 1 3 "   "}}{COM_R 664 0{TEXT
 1 3 "   "}}{COM_R 665 0{TEXT 1 521 "The first improvement in Rel
ease 2 is in handling coefficient fields which are function field
s, and not just number fields.  I.e. the input rational function \+
could involve parameters as well as numbers.  This is because of \+
the extension of evala to handle algebraic functions and not just
 algebraic numbers.  The Lazard-Trager improvement allows this an
swer to be obtained directly without having to compute in the mor
e complicated field K(alpha), i.e. in this example, it doesn't ha
ve to compute over Q(sqrt(2)), only Q."}}{COM_R 666 0{TEXT 1 3 " \+
  "}}{COM_R 667 0{TEXT 1 36 "2: Bivariate polynomial Gcd's over Z
"}}{COM_R 668 0{TEXT 1 0 ""}}{COM_R 669 0{TEXT 1 726 "We have imp
lemented the dense modular method of Collins for computing Gcds o
f polynomials with in 2 variables with integer coefficients.  The
 method works by computing many gcd's of polynomials in 1 variabl
e modulo different primes and combining these solutions using pol
ynomial interpolation and the Chinese remainder theorem.  Note, i
n Maple V, we implemented this method for univariate polynomials.
  Also, this is a dense method. For sparse polynomials in many va
riables it is not a good method.  Comparing this with the default
 EEZGCD algorithm in Maple V, we obtain the following improvement
. We created three dense bivariate polynomials g,a,b each of degr
ee n with random n digit coefficients and computed gcd(a*g, b*g).
"}}{COM_R 670 0{TEXT 1 3 "   "}}{COM_R 671 0{TEXT 1 56 "    n    \+
                           10       15       20"}}{COM_R 672 0
{TEXT 1 49 "    Maple V                  65.0   1,877  18,763"}}
{COM_R 673 0{TEXT 1 44 "    Maple V Release 2   10.6   33.7    39
3.7"}}{COM_R 674 0{TEXT 1 3 "   "}}{COM_R 675 0{TEXT 1 57 "3: Int
eger version of the LLL lattice reduction algorithm"}}{COM_R 676 
0{TEXT 1 0 ""}}{COM_R 677 0{TEXT 1 135 "The LLL (Lenstra Lenstra \+
Lovasz) lattice reduction algorithm has been sped up by a factor \+
of 3 or so for the case of an integer matrix."}}{COM_R 678 0{TEXT
 1 3 "   "}}{COM_R 679 0{TEXT 1 45 "4: Factorization over algebra
ic number fields"}}{COM_R 680 0{TEXT 1 0 ""}}{COM_R 681 0{TEXT 1 
227 "We have implemented Lenstra's algorithm for factorization of
 polynomials over an algebraic number field.  For some polynomial
s it runs considerably faster than the default algorithm.  But it
 depends very much on the polynomial."}}{COM_R 682 0{TEXT 1 3 "  \+
 "}}{COM_R 683 0{TEXT 1 55 "5: Faster numerical evaluation of the
 arctrig functions"}}{COM_R 684 0{TEXT 1 0 ""}}{COM_R 685 0{TEXT 
1 385 "The running time of the algorithms used for the numerical \+
evaluation of exp(x) and ln(x) at high precision is O(n^2 log_2 n
) for n digits.  This is O(log_2 n) integer multiplications each \+
of which is O(n^2).  The algorithms for the trig functions sin, c
os, tan use repeated argument reduction to obtain an O(n^(5/2)) a
lgorithm.  The same idea is now used by the arctrig functions, e.
g."}}{COM_R 686 0{TEXT 1 3 "   "}}{COM_R 687 0{TEXT 1 80 "     Di
gits         arcsin(Pi/4)                                    arct
an(Pi/4)"}}{COM_R 688 0{TEXT 1 79 "               Maple V    Mapl
e V Release 2         Maple V   Maple V Release 2"}}{COM_R 689 0
{TEXT 1 3 "   "}}{COM_R 690 0{TEXT 1 92 "      500            25 \+
           3.0                                      23           \+
2.5"}}{COM_R 691 0{TEXT 1 88 "     1000         176           11.
0                                    148         11.2"}}{COM_R 
692 0{TEXT 1 86 "     2000       1245           50.4             \+
                     1038         45.2"}}{COM_R 693 0{TEXT 1 3 " \+
  "}}{COM_R 694 0{TEXT 1 54 "6: Optimized the evaluation of list \+
and set subscripts"}}{COM_R 695 0{TEXT 1 0 ""}}{COM_R 696 0{TEXT 
1 99 "List and set subscripts i.e. s[i] where s is a list or set \+
have been sped up by a factor of 3 to 5."}}{COM_R 697 0{TEXT 1 3 
"   "}}{COM_R 698 0{TEXT 1 51 "7: Optimized the evaluation of num
erical arithmetic"}}{COM_R 699 0{TEXT 1 0 ""}}{COM_R 700 0{TEXT 1
 301 "Evaluation of numerical expressions e.g. n-i+1, 2*n-2*j+2, \+
has been sped up to avoid the creation of an intermediate data st
ructure.  This is a significant improvement in the cases of small
 integers, e.g. array subscript calculations.  Consider these two
 codes for computing the Fibonacci numbers F(n)"}}{COM_R 701 0
{TEXT 1 3 "   "}}{INP_R 702 0 "> "{TEXT 0 58 "F1 := proc(n) if n \+
< 2 then n else F1(n-1)+F1(n-2) fi end;"}}{OUT_R 703 0 702{DAG :3
n3\`F1`@8,2n3\`n`,1p7p7?4<3a2x0001j2x0002pC+5(3p1,2+5pCj2x0001i2x
0001p17p17(3p1,2+5pCp17i2x0002p17p17p7p7}{TEXT 2 75 "\012F1 := pr
oc(n)\012          if n < 2 then n else F1(n-1)+F1(n-2) fi\012   \+
   end\012"}}{INP_R 704 0 "> "{TEXT 0 58 "F2 := proc(n) F2(n-1)+F
2(n-2) end; F2(0) := 0; F2(1) := 1;"}}{OUT_R 705 0 704{DAG :3n3\`
F2`@8,2n3\`n`,1p7p7+5(3p1,2+5a2x0001j2x0001i2x0001p11p11(3p1,2+5p
Fp11i2x0002p11p11p7p7}{TEXT 2 35 "\012F2 := proc(n) F2(n-1)+F2(n-
2) end\012"}}{OUT_R 706 0 704{DAG :3(3n3\`F2`,2j2x0000p5}}{OUT_R 
707 0 704{DAG :3(3n3\`F2`,2j2x0001p5}}{COM_R 708 0{TEXT 1 3 "   "
}}{COM_R 709 0{TEXT 1 69 "The improvement in the arithmetic that \+
occurs in F(n-1)+F(n-2) yields"}}{COM_R 710 0{TEXT 1 3 "   "}}
{COM_R 711 0{TEXT 1 50 "                 Maple V         Maple V \+
Release 2"}}{COM_R 712 0{TEXT 1 50 "         n          F1     F2
            F1     F2"}}{COM_R 713 0{TEXT 1 49 "        16       \+
 1.05   0.73         0.78   0.47"}}{COM_R 714 0{TEXT 1 49 "      \+
  18        2.73   2.17         2.17   1.32"}}{COM_R 715 0{TEXT 1
 49 "        20        7.30   5.20         5.92   3.55"}}{COM_R 
716 0{TEXT 1 47 "        22       20.17  13.45      15.20   8.53"
}}{COM_R 717 0{TEXT 1 3 "   "}}{COM_R 718 0{TEXT 1 0 ""}}{COM_R 
719 0{TEXT 1 42 "8: Floating point solutions to polynomials"}}
{COM_R 720 0{TEXT 1 0 ""}}{COM_R 721 0{TEXT 1 699 "We have rewrit
ten the code for computing floating point approximations to roots
 of polynomials.  The new code will increase the intermediate pre
cision so that the roots found are fully accurate, i.e. accurate \+
to 0.6 ulp.  We have also implemented a routine in the kernel in \+
C to use hardware floating point arithmetic.  If the roots found \+
using this routine are accurate then the fsolve routine will exec
ute faster, as illustrated in the following examples.  T(n,x) is \+
the n'th Chebyshev polynomial of the first kind.  It has all real
 roots.  F(n,x) is the n'th Fibonacci polynomial which has all co
mplex roots except 0.  The jump in times indicates where hardware
 precision is no longer sufficient."}}{COM_R 722 0{TEXT 1 3 "   "
}}{COM_R 723 0{TEXT 1 58 "                    Maple V            \+
  Maple V Release 2"}}{COM_R 724 0{TEXT 1 55 "        n        T(
n,x)  F(n,x)          T(n,x)  F(n,x)"}}{COM_R 725 0{TEXT 1 60 "  \+
      10        1.68    1.86               0.45       0.23"}}
{COM_R 726 0{TEXT 1 59 "        20        8.95    11.43          \+
   2.17       1.43"}}{COM_R 727 0{TEXT 1 57 "        30      FAIL
    36.72             6.08       3.47"}}{COM_R 728 0{TEXT 1 59 " \+
       40              FAIL                34.22      7.57"}}
{COM_R 729 0{TEXT 1 63 "        50                               \+
        106.2    50.45"}}{COM_R 730 0{TEXT 1 3 "   "}}{COM_R 731 
0{TEXT 1 26 "9: Character tables for Sn"}}{COM_R 732 0{TEXT 1 0 "
"}}{COM_R 733 0{TEXT 1 395 "In computing the character table for \+
Sn the symmetric group on n letters we are now making use of the \+
conjugate partitions and symmetry in the table. The improvement i
s better than a factor of 2 for large n.  Note the table has dime
nsion p(n) by p(n) where p(n) is the number of partitions of n so
 requires exponential space in n to store.  The data here are for
 computing combinat[character](n)"}}{COM_R 734 0{TEXT 1 3 "   "}}
{COM_R 735 0{TEXT 1 51 "                Maple V           Maple V
 Release 2"}}{COM_R 736 0{TEXT 1 12 "        n   "}}{COM_R 737 0
{TEXT 1 52 "        8         6.6                            3.5"
}}{COM_R 738 0{TEXT 1 50 "        10       26.0                  \+
       12.6"}}{COM_R 739 0{TEXT 1 49 "        12      102.0      \+
                  43.4"}}{COM_R 740 0{TEXT 1 48 "        14      \+
446.8                      160.3"}}{COM_R 741 0{TEXT 1 3 "   "}}
{COM_R 742 0{TEXT 1 3 "   "}}{COM_R 743 0{TEXT 10 21 "New Library
 Functions"}}{COM_R 744 0{TEXT 1 1 "\015"}}{COM_R 745 0{TEXT 1 68
 "AFactor, AFactors -- absolute factorization over the complex nu
mbers"}}{COM_R 746 0{TEXT 1 48 "argument -- complex argument of a
 complex number"}}{COM_R 747 0{TEXT 1 66 "assume -- for making as
sumptions about variables e.g. assume(a>0);"}}{COM_R 748 0{TEXT 1
 24 "ceil -- ceiling function"}}{COM_R 749 0{TEXT 1 20 "csgn -- c
omplex sign"}}{COM_R 750 0{TEXT 1 70 "discont -- compute a set of
 possible discontinutities of an expression"}}{COM_R 751 0{TEXT 1
 23 "floor -- floor function"}}{COM_R 752 0{TEXT 1 61 "fourier, i
nvfourier -- symbolic fourier transform and inverse"}}{COM_R 753 
0{TEXT 1 47 "ilog, ilog10 -- IEEE integer logarithm function"}}
{COM_R 754 0{TEXT 1 58 "Indep -- test algebraic extensions over Q
 for independence"}}{COM_R 755 0{TEXT 1 37 "invfunc -- table of i
nverse functions"}}{COM_R 756 0{TEXT 1 65 "is, isgiven -- for tes
ting properties against the assume database"}}{COM_R 757 0{TEXT 1
 76 "Norm -- computes the norm of the algebraic number or functio
n over a field K"}}{COM_R 758 0{TEXT 1 77 "Primfield -- computes \+
a primitive element over a given algebraic number field"}}{COM_R 
759 0{TEXT 1 56 "powmod -- computes a(x)^n mod b(x) using binary \+
powering"}}{COM_R 760 0{TEXT 1 76 "ratrecon, Ratrecon -- rational
 function reconstruction (Euclidean algorithm)"}}{COM_R 761 0
{TEXT 1 62 "readdata -- reads a file of numerical data arranged i
n columns"}}{COM_R 762 0{TEXT 1 60 "spline -- computes a natural \+
cubic spline from a set of data"}}{COM_R 763 0{TEXT 1 73 "split -
- splits a polynomial into linear factors over its splitting fiel
d"}}{COM_R 764 0{TEXT 1 67 "sqrfree -- a square free factorizatio
n of a multivariate polynomial"}}{COM_R 765 0{TEXT 1 40 "symmdiff
 -- symmetric difference of sets"}}{COM_R 766 0{TEXT 1 78 "Trace \+
-- computes the trace of the algebraic number or function over a \+
field K"}}{COM_R 767 0{TEXT 1 41 "unload -- unload a Maple librar
y function"}}{COM_R 768 0{TEXT 1 3 "   "}}{COM_R 769 0{TEXT 1 3 "
   "}}{COM_R 770 0{TEXT 11 16 "Library Packages"}}{COM_R 771 0
{TEXT 1 0 ""}}{COM_R 772 0{TEXT 1 0 ""}}{COM_R 773 0{TEXT 1 3 "  \+
 "}}{COM_R 774 0{TEXT 1 298 "The package mechanism has been exten
ded to support an initialization routine.  The initialization rou
tine should be placed either in the package as theroutine  packag
e[init],  or as the routine `package/init` in the library in the \+
file `package/init.m`;  This routine is executed by  with(package
);"}}{COM_R 775 0{TEXT 1 167 "It is up to the initialization rout
ine to decide what to do if it is called a second time.  Below is
 a list of the new packages and modifications to existing package
s."}}{COM_R 776 0{TEXT 1 3 "   "}}{COM_R 777 0{TEXT 1 46 "1: numa
pprox (Numerical Approximation Package)"}}{COM_R 778 0{TEXT 1 0 "
"}}{COM_R 779 0{TEXT 1 67 "- infnorm: compute the (weighted) infi
nity norm of an approximation"}}{COM_R 780 0{TEXT 1 63 "- minimax
: compute a (weighted) minimax numerical approximation"}}{COM_R 
781 0{TEXT 1 68 "- remez: Remez algorithm for minimax rational fu
nction approximation"}}{COM_R 782 0{TEXT 1 3 "   "}}{COM_R 783 0
{TEXT 1 397 "The main function in this package is minimax which h
as the following functionality: minimax(f,x=a..b,n,w) or minimax(
f,x=a..b,[m,n],w);  It uses the Remez algorithm to compute the be
st minimax polynomial of degree <= n, or rational function with n
umerator of degree <= m, and denominator of degree <= n to the fu
nction f on the range [a,b].  The optional 4'th paramter specifie
s a weight function."}}{COM_R 784 0{TEXT 1 0 ""}}{COM_R 785 0
{TEXT 1 45 "2: combinat (Combinatorial Functions Package)"}}
{COM_R 786 0{TEXT 1 0 ""}}{COM_R 787 0{TEXT 1 31 "- conjpart: con
jugate partition"}}{COM_R 788 0{TEXT 1 3 "   "}}{COM_R 789 0{TEXT
 1 48 "3: DEtools (Differential Equation Plots Package)"}}{COM_R 
790 0{TEXT 1 0 ""}}{COM_R 791 0{TEXT 1 201 "A package for plottin
g differential equations including systems of ODE's and some spec
ial PDE's, allowing the associated vector field to be plotted and
 solution curves for different initial conditions."}}{COM_R 792 0
{TEXT 1 65 "- DE1: plot a first order linear ODE for given initia
l conditions"}}{COM_R 793 0{TEXT 1 51 "- DE2: plot a system of tw
o first order linear ODEs"}}{COM_R 794 0{TEXT 1 74 "- PDEplot: pl
ot the surface of a first order, quasi-linear PDE of the form"}}
{COM_R 795 0{TEXT 1 62 "  P(x,y,u) * D[1](u)(x,y) + Q(x,y,u) * D[
2](u)(x,y) = R(x,y u)"}}{COM_R 796 0{TEXT 1 75 "- dfieldplot: plo
t a field plot for a single or two first order linear ODEs"}}
{COM_R 797 0{TEXT 1 78 "- phaseportrait: plot a phase plot for a \+
single or two first order linear ODEs"}}{COM_R 798 0{TEXT 1 3 "  \+
 "}}{COM_R 799 0{TEXT 1 11 "4: Gauss   "}}{COM_R 800 0{TEXT 1 0 "
"}}{COM_R 801 0{TEXT 1 286 "A package which allows one to create \+
\"domains\" of computation in a similar way that the AXIOM system
 allows.  The advantage is that routines for computing with polyn
omials, matrices, and series etc. can be parameterized by any coe
fficient ring.  E.g. given a ring R, the Gauss statement"}}{COM_R
 802 0{TEXT 1 3 "   "}}{INP_R 803 0 "> "{TEXT 0 36 "P := DenseUni
variatePolynomial(R,x):"}}{COM_R 804 0{TEXT 1 3 "   "}}{COM_R 805
 0{TEXT 1 578 "creates a dense univariate polynomial domain P whi
ch contains all the routines needed to do arithmetic with polynom
ials over R.  The advantage is that the the code supplied by the \+
DenseUnivariatePolynomial function works for any coefficient doma
in R which is a ring, i.e. has operations +, -, *, etc.  It is ex
pected that many Maple library routines will be recoded in Gauss \+
over the next few versions.  The initial implementation includes \+
basic facilities for computing with polynomials, matrices and ser
ies over number rings, finite fields, polynomial rings, and matri
x rings."}}{COM_R 806 0{TEXT 1 3 "   "}}{COM_R 807 0{TEXT 1 38 "5
: GaussInt (Gaussian Integer Package)"}}{COM_R 808 0{TEXT 1 0 ""}
}{COM_R 809 0{TEXT 1 277 "This is a set of routines for computing
 with Gaussian (complex) integers, i.e. numbers of the form a + b
 I where a and b are integers.  Included are routines for computi
ng the Gcd of two Gaussian integers, the factorization of a Gauss
ian integer, and a test for primality, e.g."}}{COM_R 810 0{TEXT 1
 3 "   "}}{INP_R 811 0 "> "{TEXT 0 24 "with(GaussInt,GIfactor):"}
}{INP_R 812 0 "> "{TEXT 0 13 "GIfactor(13);"}}{OUT_R 813 0 812
{DAG *5(3n3\``,2+5j2x0003j2x0001n3\`I`j2x0002p8(3p2,2+5p6p8pAi2x0
002p8}}{COM_R 814 0{TEXT 1 0 ""}}{COM_R 815 0{TEXT 1 34 "6: linal
g (Linear Algebra Package)"}}{COM_R 816 0{TEXT 1 0 ""}}{COM_R 817
 0{TEXT 1 55 "- blockmatrix: utility routine to create a block ma
trix"}}{COM_R 818 0{TEXT 1 66 "- gausselim, gaussjord, rowspace, \+
colspace: now handle matrices of"}}{COM_R 819 0{TEXT 1 47 "  floa
ts, complex floats, and complex rationals"}}{COM_R 820 0{TEXT 1 
73 "- eigenvals, eigenvects: now handle matrices of floats and co
mplex floats"}}{COM_R 821 0{TEXT 1 67 "- entermatrix: utility rou
tine for entering the entries of a matrix"}}{COM_R 822 0{TEXT 1 
55 "- randvector: utility routine to create a random vector"}}
{COM_R 823 0{TEXT 1 71 "- ratform: (synonym for frobenius) comput
es the rational canonical form"}}{COM_R 824 0{TEXT 1 42 "- Wronsk
ian: computes the Wronskian matrix"}}{COM_R 825 0{TEXT 1 3 "   "}
}{COM_R 826 0{TEXT 1 37 "7: numtheory: (Number Theory Package)"}}
{COM_R 827 0{TEXT 1 0 ""}}{COM_R 828 0{TEXT 1 66 "- cfrac: modifi
ed to handle different forms of continued fractions"}}{COM_R 829 
0{TEXT 1 39 "     real numbers, series, polynomials."}}{COM_R 830
 0{TEXT 1 75 "- cfracpol: computes continued fractions for the re
al roots of a polynomial"}}{COM_R 831 0{TEXT 1 64 "- kronecker: D
iophantine approximation in the inhomogeneous case"}}{COM_R 832 0
{TEXT 1 62 "- minkowski: Diophantine approximation in the homogen
eous case"}}{COM_R 833 0{TEXT 1 58 "- nthnumer: returns the denom
inator of the n'th convergent"}}{COM_R 834 0{TEXT 1 56 "- nthdeno
m: returns the numerator of the n'th convergent"}}{COM_R 835 0
{TEXT 1 71 "- nthconver: returns the n'th convergent of a simple \+
continued fraction"}}{COM_R 836 0{TEXT 1 70 "- thue: compute the \+
resolutions of Thue equations or Thue inequalities"}}{COM_R 837 0
{TEXT 1 48 "- sq2factor: factorization in the UFD Z[sqrt(2)]"}}
{COM_R 838 0{TEXT 1 3 "   "}}{COM_R 839 0{TEXT 1 31 "8: padic (Pa
dic Number Package)"}}{COM_R 840 0{TEXT 1 0 ""}}{COM_R 841 0{TEXT
 1 67 "A package for computing P-adic approximations to real numb
ers, e.g."}}{COM_R 842 0{TEXT 1 3 "   "}}{INP_R 843 0 "> "{TEXT 0
 13 " with(padic):"}}{INP_R 844 0 "> "{TEXT 0 17 "evalp(sqrt(2),7
);"}}{OUT_R 845 0 844{DAG _16n3\`7`j2x0003x0j2x0001x1j2x0002x2j2x
0006x3p6x4p9x5p6x6p9x7j2x0004x8(3n3\`O`,2p6x9}}{COM_R 846 0{TEXT 
1 3 "   "}}{INP_R 847 0 "> "{TEXT 0 16 "evalp(exp(3),3);"}}{OUT_R
 848 0 847{DAG _12n3\`3`j2x0001x0p3x1p3x2j2x0002x3pAx4p3x6p3x8(3n
3\`O`,2p3x9}}{COM_R 849 0{TEXT 1 0 ""}}{COM_R 850 0{TEXT 1 430 "9
: plots (Plots Package)\015\015The plots package includes many ne
w commands.  The set of commands is shown as a result of executin
g the following with command and examples of the new commands fol
low.  The output is not shown in this .ms file because it is quit
e bulky.  Please try out some of these commands by clicking on th
e commands and executing them.  Note, some of the commands take a
 significant time to compute.  First execute\015"}}{INP_R 851 0 "
> "{TEXT 0 12 "with(plots):"}}{COM_R 852 0{TEXT 1 0 ""}}{COM_R 
853 0{TEXT 1 62 "- animate: animate one or more functions in 2 di
mensions, e.g."}}{COM_R 854 0{TEXT 1 24 "  a) sine - cosine waves
"}}{INP_R 855 0 "> "{TEXT 0 54 "  animate(\{sin(x*t),cos(x*t)\},x
=-2*Pi..Pi,t=0..2*Pi); "}}{COM_R 856 0{TEXT 1 34 "  b) a polar co
ordinate unraveling"}}{INP_R 857 0 "> "{TEXT 0 77 "  animate([sin
(x*t),x,x=-4..4],t=1..4,coords=polar,numpoints=100,frames=100);"}
}{COM_R 858 0{TEXT 1 3 "   "}}{COM_R 859 0{TEXT 1 73 "- animate3d
: animate one or more curves or surfaces in 3 dimensions, e.g."}}
{INP_R 860 0 "> "{TEXT 0 59 "animate3d(cos(t*x)*sin(t*y), x=-Pi..
Pi, y=-Pi..Pi,t=1..2); "}}{COM_R 861 0{TEXT 1 3 "   "}}{COM_R 862
 0{TEXT 1 48 "- conformal: routine is typically 3 times faster"}}
{INP_R 863 0 "> "{TEXT 0 81 "conformal((z-I)/(z+I), z=-3-3*I..3+3
*I, -4-4*I..4+4*I, grid=[30,30], style=LINE);"}}{COM_R 864 0{TEXT
 1 60 "- contourplot: contour plot of a 3 dimensional surface, e.
g."}}{INP_R 865 0 "> "{TEXT 0 56 " contourplot(sin(x*y),x=-Pi..Pi
,y=-Pi..Pi,grid=[30,30]);"}}{COM_R 866 0{TEXT 1 3 "   "}}{COM_R 
867 0{TEXT 1 33 "- densityplot: density plot, e.g."}}{INP_R 868 0
 "> "{TEXT 0 55 "densityplot(sin(x*y),x=-Pi..Pi,y=-Pi..Pi,grid=[3
0,30]);"}}{COM_R 869 0{TEXT 1 3 "   "}}{COM_R 870 0{TEXT 1 51 "- \+
fieldplot: field plot of a linear first order ODE"}}{INP_R 871 0 
"> "{TEXT 0 54 " vfield := [x/(x^2+y^2+4)^(1/2),-y/(x^2+y^2+4)^(1
/2)]:"}}{INP_R 872 0 "> "{TEXT 0 34 "fieldplot(vfield,x=-2..2,y=-
2..2);"}}{COM_R 873 0{TEXT 1 53 "- fieldplot3d: field plot of a l
inear first order ODE"}}{INP_R 874 0 "> "{TEXT 0 91 " fieldplot3d
([2*x,2*y,1],x=-1..1,y=-1..1,z=-1..1, grid=[10,10,5],arrows=THICK
,style=patch);"}}{COM_R 875 0{TEXT 1 3 "   "}}{COM_R 876 0{TEXT 1
 70 "- gradplot: plot the gradient vector field of a 2 dimensiona
l function"}}{COM_R 877 0{TEXT 1 78 "- gradplot3d: plot the gradi
ent vector field of a 3 dimensional function, e.g."}}{INP_R 878 0
 "> "{TEXT 0 59 "gradplot3d( (x^2+y^2+z^2+1)^(1/2),x=-2..2,y=-2..
2,z=-2..2);"}}{COM_R 879 0{TEXT 1 3 "   "}}{COM_R 880 0{TEXT 1 67
 "- implicitplot: plot a curve defined implicitly by F(x,y) = 0, \+
e.g."}}{INP_R 881 0 "> "{TEXT 0 53 "implicitplot( x^3 + y^2 -x*y \+
= 1, x=-2..2, y=-2..2 );"}}{COM_R 882 0{TEXT 1 73 "- implicitplot
3d: plot a surface defined implicitly by F(x,y,z) = 0, e.g."}}
{INP_R 883 0 "> "{TEXT 0 68 "implicitplot3d( x^2+y^2+z^2-x*y*z = \+
1, x=-1..1, y=-1..1, z=-1..1 ); "}}{COM_R 884 0{TEXT 1 3 "   "}}
{COM_R 885 0{TEXT 1 26 "- logplot: log plot, e.g. "}}{INP_R 886 0
 "> "{TEXT 0 34 "logplot(10^(20*exp(-x)),x=1..10); "}}{COM_R 887 
0{TEXT 1 33 "- loglogplot: log log plot, e.g. "}}{INP_R 888 0 "> \+
"{TEXT 0 38 "loglogplot(10^(20*exp(-x)),x=1..100); "}}{COM_R 889 
0{TEXT 1 3 "   "}}{COM_R 890 0{TEXT 1 50 "- odeplot: plot the sol
ution of an ODE from dsolve"}}{INP_R 891 0 "> "{TEXT 0 53 "p := d
solve(\{D(y)(x) = y(x), y(0)=1\}, y(x), numeric):"}}{INP_R 892 0 
"> "{TEXT 0 26 "odeplot(p,[x,y(x)],-1..1);"}}{COM_R 893 0{TEXT 1 
57 "\015- polygonplot: draw one or more polygons in 2 dimensions"
}}{INP_R 894 0 "> "{TEXT 0 63 "ngon := n -> [seq([ cos(2*Pi*i/n),
 sin(2*Pi*i/n) ], i = 1..n)]:"}}{OUT_R 895 0 894{TEXT 2 42 "Warni
ng, `i` is implicitly declared local\012"}}{INP_R 896 0 "> "{TEXT
 0 22 "polygonplot(ngon(8)); "}}{COM_R 897 0{TEXT 1 59 "\015- pol
ygonplot3d: draw one or more polygons in 3 dimensions"}}{COM_R 
898 0{TEXT 1 3 "   "}}{COM_R 899 0{TEXT 1 69 "- polyhedraplot: fo
r plotting tetrahedrons, octahedrons, hexahedrons,"}}{COM_R 900 0
{TEXT 1 36 "     dodecahedrons,icosahedrons e.g."}}{INP_R 901 0 "
> "{TEXT 0 57 "polyhedraplot([0,0,0],polytype=dodecahedron,style=
patch);"}}{COM_R 902 0{TEXT 1 62 "-shading: plot a surface with o
ne or more lights shining on it"}}{INP_R 903 0 "> "{TEXT 0 206 "s
phereplot(1+sin(5*t)*sin(6*p)/3, p=-Pi..Pi, t=0..Pi,   grid=[100,
100], shading=XYZ, style=PATCHNOGRID,   ambientlight=[0.5,0.5,0.5
], light=[90,45,0.9,0,0],   light=[45,45,0,0.9,0], light=[-45,90,
0,0,0.9]);"}}{COM_R 904 0{TEXT 1 0 ""}}{COM_R 905 0{TEXT 1 57 "- \+
surfdata: plot a surface input as a grid of data points"}}{INP_R 
906 0 "> "{TEXT 0 70 "cosdata := [seq([ seq([i,j,evalf(cos((i+j)/
5))], i=-5..5)], j=-5..5)]:"}}{INP_R 907 0 "> "{TEXT 0 23 "F:= (x
,y) -> x^2 + y^2:"}}{INP_R 908 0 "> "{TEXT 0 62 "surfdata( cosdat
a, axes=frame, color=F,orientation=[100,80] );"}}{COM_R 909 0
{TEXT 1 3 "   "}}{COM_R 910 0{TEXT 1 62 "- textplot: for plotting
 labelled points in 2 dimensions, e.g."}}{INP_R 911 0 "> "{TEXT 0
 55 " textplot([1,2,`one point in 2d`],align=\{ABOVE,RIGHT\});"}}
{COM_R 912 0{TEXT 1 64 "- textplot3d: for plotting labelled point
s in 3 dimensions, e.g."}}{INP_R 913 0 "> "{TEXT 0 69 "textplot3d
(\{[1,2,3,`one point in 3d`],[3,2,1,`second point in 3d`]\});"}}
{COM_R 914 0{TEXT 1 3 "   "}}{COM_R 915 0{TEXT 1 38 "10: networks
: (Graph Networks Package)"}}{COM_R 916 0{TEXT 1 0 ""}}{COM_R 917
 0{TEXT 1 561 "A package of routines for creating, manipulating a
nd computing properties of graphs, i.e. graphs with edges and ver
tices.  Primitives exist for computing properties such as edge co
nnectivity, biconnected components, and edge or vertex set induce
d subgraphs.  The graphs may have loops or multiple edges, both d
irected and undirected, and arbitrary weights can be associated w
ith both edges and vertices.  Graphs can be drawn as a picture (a
 plot) for display.  For example, here we create the Petersen gra
ph and compute and factor its characteristic polynomial."}}{COM_R
 918 0{TEXT 1 3 "   "}}{INP_R 919 0 "> "{TEXT 0 15 "with(networks
):"}}{OUT_R 920 0 919{TEXT 2 74 "Warning: new definition for   ch
arpoly\012Warning: new definition for   rank\012"}}{INP_R 921 0 "
> "{TEXT 0 31 "factor(charpoly(petersen(),x));"}}{OUT_R 922 0 921
{DAG *7+5n3\`x`j2x0001i2x0003p4p4+5p2p4j2x0002p4j2x0004+5p2p4i2x0
001p4j2x0005}}{COM_R 923 0{TEXT 1 301 "The spanpoly(G,p) function
 computes a polynomial for the undirected graph G where p is a pr
obability of failure associated with each edge.  When G is connec
ted, this is the all-terminal reliability polynomial of G.  Here \+
is the all-terminal reliability polynomial for the complete graph
 on 4 vertices."}}{COM_R 924 0{TEXT 1 3 "   "}}{INP_R 925 0 "> "
{TEXT 0 24 "spanpoly(complete(4),p);"}}{OUT_R 926 0 925{DAG +3*5n
3\`p`j2x0003+9i2x0016j2x0001p2j2x0033*3p2j2x0002i2x0024*3p2p4j2x0
006p9i2x0001}}{COM_R 927 0{TEXT 1 3 "   "}}{COM_R 928 0{TEXT 1 
410 "11: liesymm:  (Lie Symmetries Package)\015\015This package i
s for characterizing the contact symmetries of a system\012of par
tial differential equations.  The basic routines makeforms and an
nul\012for automatic translation to and from differential forms n
ow maintain and make\012use of additional information which allow
 the full reconstruction of the\012original system of PDE's, and \+
handle a broader class of systems of PDE's."}}{COM_R 929 0{TEXT 1
 3 "   "}}{INP_R 930 0 "> "{TEXT 0 14 "with(liesymm):"}}{INP_R 
931 0 "> "{TEXT 0 40 "e1 := Diff(h(t,x),x,x) = Diff(h(t,x),t):"}}
{INP_R 932 0 "> "{TEXT 0 23 "makeforms(e1,h(t,x),w);"}}{OUT_R 933
 0 932{DAG [2,3+7(3n3\`d`,2n3\`h`j2x0001*5n3\`w1`p9(3p4,2n3\`t`p9
i2x0001*5n3\`w2`p9(3p4,2n3\`x`p9p15+5(3n3\`&^`,3pF(3p4,2p18p15*5p
Cp9(3p24,3p1BpFp9p15}}{INP_R 934 0 "> "{TEXT 0 9 "annul(\");"}}
{OUT_R 935 0 934{DAG %2,2=3+5(3n4\`Diff`,3(3p5,3(3n3\`h`,3n3\`t`n
3\`x`p12p12j2x0001(3p5,3pCp10i2x0001j2x0000}}{COM_R 936 0{TEXT 1 
212 "In addition, knowledge of the original system of equations h
as been maintained and used to carry out some basic simplificatio
ns of the system of PDE's characterizing the contact symmetries. \+
 New routines include:"}}{COM_R 937 0{TEXT 1 3 "   "}}{COM_R 938 
0{TEXT 1 75 "- indepvars, depvars: routines for enquiring or sett
ing the independent and"}}{COM_R 939 0{TEXT 1 76 "     dependent \+
variables for the current problem.  E.g. indepvars(); returns"}}
{COM_R 940 0{TEXT 1 75 "     [t, x] and depvars(); returns [h] in
 the example.  This information is"}}{COM_R 941 0{TEXT 1 73 "    \+
 established through use of commands like makeforms() and determi
ne()"}}{COM_R 942 0{TEXT 1 56 "- choose: analogous to isolate() b
ut for wedge products."}}{COM_R 943 0{TEXT 1 78 "- reduce: makes \+
use of knowledge of the dependencies to simplify the resulting"}}
{COM_R 944 0{TEXT 1 32 "          determining equations."}}{COM_R
 945 0{TEXT 1 69 "- autosimp: carries out some simple integration
s and uses the results"}}{COM_R 946 0{TEXT 1 43 "     to simplify
 the given system of PDE's."}}{COM_R 947 0{TEXT 1 64 "- TD, Eta, \+
extgen, prolong: for generating the extended operator"}}{COM_R 
948 0{TEXT 1 79 "- value, dvalue: the value routine has been rena
med to dvalue to avoid conflict"}}{COM_R 949 0{TEXT 1 78 "       \+
 with the main value routine.  This routine evaluates inert deriv
atives"}}{COM_R 950 0{TEXT 1 57 "        (Diff) and returns its r
esult in the inert form ."}}{COM_R 951 0{TEXT 1 3 "   "}}{COM_R 
952 0{TEXT 1 3 "   "}}{COM_R 953 0{TEXT 1 0 ""}}{COM_R 954 0{TEXT
 13 13 "Share Library"}}{COM_R 955 0{TEXT 1 0 ""}}{COM_R 956 0
{TEXT 1 33 "1: Contributions from Maple users"}}{COM_R 957 0{TEXT
 1 0 ""}}{COM_R 958 0{TEXT 1 314 "The share library is a reposito
ry of applications codes, contributed primarily by Maple users.  \+
It is distributed with each version of Maple in both src and Mapl
e \".m\" format.  However, our ambitions have expanded.  The shar
e library has been completely reorganized.  Beginning with this v
ersion, it also includes "}}{COM_R 959 0{TEXT 1 49 "- TeX/LaTeX i
ntroductory documents on using Maple"}}{COM_R 960 0{TEXT 1 56 "- \+
TeX/LaTeX support documentation for applications codes"}}{COM_R 
961 0{TEXT 1 75 "- updates to library routines, i.e. bug fixes, e
fficiency improvements etc."}}{COM_R 962 0{TEXT 1 54 "- examples \+
of applications of Maple to problem solving"}}{COM_R 963 0{TEXT 1
 181 "We have also endeavoured to ensure that each contribution c
omes with on-line Maple style help files, and Maple style test fi
les to help us ensure that the code is working correctly."}}
{COM_R 964 0{TEXT 1 3 "   "}}{COM_R 965 0{TEXT 1 62 "2: How to ac
cess code from the share library from inside Maple"}}{COM_R 966 0
{TEXT 1 0 ""}}{COM_R 967 0{TEXT 1 216 "Users can access routines \+
in the share library by reading them in directly from the files u
sing the read command.  Also, where appropriate, one can now acce
ss them directly from inside Maple using the with command.  "}}
{COM_R 968 0{TEXT 1 288 "The command with(share); looks to see if
 the share library exists, i.e. it is adjacent to the Maple libra
ry (it simply tries to read a file from it). If successful, it as
signs the global variable \"sharename\" to the path where it foun
d the share library, and then it executes the statement"}}{COM_R 
969 0{TEXT 1 3 "   "}}{COM_R 970 0{TEXT 1 34 "  > libname := libn
ame, sharename;"}}{COM_R 971 0{TEXT 1 3 "   "}}{COM_R 972 0{TEXT 
1 298 "Now Maple's readlib command and with command will automati
cally search the share library after first searching the Maple li
brary.  If unsuccessful, the user can locate the share library an
d set the libname variable directly.  For example, the fit routin
e in the share library can be used to \"fit\" a"}}{COM_R 973 0
{TEXT 1 48 "formula to some data in the least squares sense."}}
{COM_R 974 0{TEXT 1 3 "   "}}{INP_R 975 0 "> "{TEXT 0 39 "with(sh
are): # locate the share library"}}{OUT_R 976 0 975{TEXT 2 71 "Se
e ?share and ?share,contents for information about the share libr
ary\012"}}{INP_R 977 0 "> "{TEXT 0 64 "readlib(fit): # now finds \+
the fit routine from the share library"}}{INP_R 978 0 "> "{TEXT 0
 48 "fit([-1.5,0.5,1.5],[0,-2,-1.5], a*t^2+b*t+c, t);"}}{OUT_R 
979 0 978{DAG +7*3n3\`t`j2x0002e3j4x004999999999i2x0010p2e3i4x005
000000000pBe3i4x001875000000i2x0009j2x0001}}{COM_R 980 0{TEXT 1 3
 "   "}}{COM_R 981 0{TEXT 1 206 "Documentation for the code is in
 the file.  After reading in the fit routine, additional document
ation is included in TeX/LaTeX files. See ?share,contents for a s
ummary of the contents of the share library."}}{COM_R 982 0{TEXT 
1 3 "   "}}{COM_R 983 0{TEXT 1 61 "3: Electronic distribution ver
sion of the Maple share library"}}{COM_R 984 0{TEXT 1 0 ""}}
{COM_R 985 0{TEXT 1 564 "The share library will also be distribut
ed electronically, firstly, over the internet by using anonymous \+
ftp, and secondly, by electronic mail, with an electronic mail se
rver.  The electronic version is be updated periodically, about o
nce every 3 months, with new contributions, corrections to previo
us contributions etc.  Unlike the Maple version, it contains a di
rectory of updates to the Maple library, primarily simple bug fix
es.  For directions on how to get code using anonymous ftp, elect
ronic mail, and how to install it and use it, see ?share for deta
ils."}}{COM_R 986 0{TEXT 1 3 "   "}}{COM_R 987 0{TEXT 1 52 "4: Po
licy of the contributions to the share library\015"}}{COM_R 988 0
{TEXT 1 451 "The code in the share library has been contributed b
y the authors to be made freely available to all Maple users.  It
 is not to be sold for profit or changed without the author's per
mission.  Authors who contribute code to the share library will b
e asked to write Maple style on-line help documentation and a tes
t file.  Authors will also be asked to sign a non-exclusive agree
ment to let us distribute your code, and to change it to maintain
 it.\012\015   "}}{COM_R 989 0{TEXT 14 13 "Miscellaneous"}}{COM_R
 990 0{TEXT 1 0 ""}}{COM_R 991 0{TEXT 1 69 "- the catenation oper
ator . now expands in ``.(a,b,c).(1..3) to yield"}}{COM_R 992 0
{TEXT 1 39 "     a1, a2, a3, b1, b2, b3, c1, c2, c3"}}{COM_R 993 
0{TEXT 1 3 "   "}}{COM_R 994 0{TEXT 1 77 "- expand of @ and @@ no
w handled e.g. expand((sin@@)(2)(x) ); ==> sin(sin(x))"}}{COM_R 
995 0{TEXT 1 72 "- evalf of @ and @@ now handled e.g. evalf((sin@
@2)(2)); ==> .7890723436"}}{COM_R 996 0{TEXT 1 3 "   "}}{COM_R 
997 0{TEXT 1 39 "- anames(t) returns all names of type t"}}{COM_R
 998 0{TEXT 1 3 "   "}}{COM_R 999 0{TEXT 1 65 "- a[1] := x; is di
ssallowed if a is assigned an object other than"}}{COM_R 1000 0
{TEXT 1 22 "     an array or table"}}{COM_R 1001 0{TEXT 1 3 "   "
}}{COM_R 1002 0{TEXT 1 47 "- f()[1] is now allowed; it returns un
evaluated"}}{COM_R 1003 0{TEXT 1 3 "   "}}{COM_R 1004 0{TEXT 1 26
 "- Changes to fortran and C"}}{COM_R 1005 0{TEXT 1 65 "   - both
 now use appendto instead of writeto to append output to"}}{COM_R
 1006 0{TEXT 1 40 "        a file instead of overwriting it"}}
{COM_R 1007 0{TEXT 1 64 "   - both now translate subsripts e.g. a
[i-2*j] where the 2 here"}}{COM_R 1008 0{TEXT 1 35 "     is under
stood to be an integer"}}{COM_R 1009 0{TEXT 1 66 "   - both now c
onvert symbolic constants e.g. Pi to floating point"}}{COM_R 1010
 0{TEXT 1 76 "   - optional parameter  digits = n  for specifying
 the precision to be used"}}{COM_R 1011 0{TEXT 1 46 "     in conv
erting constants to floating point"}}{COM_R 1012 0{TEXT 1 65 "   \+
- C now also breaks up large expressions which otherwise cause"}}
{COM_R 1013 0{TEXT 1 28 "     some compilers to break"}}{COM_R 
1014 0{TEXT 1 3 "   "}}{COM_R 1015 0{TEXT 1 27 "- Changes to dsol
ve/numeric"}}{COM_R 1016 0{TEXT 1 66 "   The output of dsolve(\{e
quations in x\},\{functions of x\},numeric)"}}{COM_R 1017 0{TEXT 
1 62 "   is a procedure f where f(x) returns a tuple of values.  \+
E.g"}}{COM_R 1018 0{TEXT 1 65 "   dsolve(\{...\},\{y(x),z(x)\},nu
meric); returns f a procedure where"}}{COM_R 1019 0{TEXT 1 44 "  \+
   f(1) returns  x=1, y(x)=y(1), z(x)=z(1)"}}{COM_R 1020 0{TEXT 1
 75 "   The odeplot routine in the plots package can be used to p
lot the result."}}{COM_R 1021 0{TEXT 1 3 "   "}}{COM_R 1022 0
{TEXT 1 39 "- Mellin speeded up by a factor of 4-30"}}{COM_R 1023
 0{TEXT 1 3 "   "}}{COM_R 1024 0{TEXT 1 58 "- ifactor has been sp
ed up for the case of a perfect power"}}{COM_R 1025 0{TEXT 1 3 " \+
  "}}{COM_R 1026 0{TEXT 1 47 "- series(f(x),x=a); now allows +-in
finity for a"}}{INP_R 1027 0 "> "{TEXT 0 28 "series(ln(1-x),x=-in
finity);"}}{OUT_R 1028 0 1027{DAG +F(3n3\`ln`,2+3n3\`x`i2x0001j2x
0001*3p6p8p8*3p6i2x0002/3p8j2x0002*3p6i2x0003/3p8j2x0003*3p6i2x00
04/3p8j2x0004*3p6i2x0005/3p8j2x0005(3n3\`O`,2*3p6i2x0006pA}}
{COM_R 1029 0{TEXT 1 3 "   "}}{COM_R 1030 0{TEXT 1 74 "- signum(f
) where f is a symbolic constant will use interval arithmetic at"
}}{COM_R 1031 0{TEXT 1 75 "     Digits precision to determine the
 sign of f, e.g. signum(Pi-4*sin(1));"}}{COM_R 1032 0{TEXT 1 3 " \+
  "}}{COM_R 1033 0{TEXT 1 61 "- the for loop clauses \"by\", \"to
\", \"from\" and \"while\" can now"}}{COM_R 1034 0{TEXT 1 24 "   \+
  appear in any order"}}{COM_R 1035 0{TEXT 1 3 "   "}}{COM_R 1036
 0{TEXT 1 37 "- Changes to automatic simplifictions"}}{COM_R 1037
 0{TEXT 1 72 "  - the ln(1/x) ==> -ln(x) automatic simplification
 has been turned off."}}{COM_R 1038 0{TEXT 1 77 "    ln(a^n) ==> \+
n ln(a) is now done iff signum(a) = 1, i.e. x is provably +ve"}}
{COM_R 1039 0{TEXT 1 70 "  - the ln(exp(x)) ==> x automatic simpl
ification has been turned off."}}{COM_R 1040 0{TEXT 1 77 "    ln(
exp(x)) ==> x is now down iff Im(x) returns 0, i.e. x is provable
 real"}}{COM_R 1041 0{TEXT 1 79 "  - the automatic simplification
 sqrt(x^2) ==> x (incorrect for -ve x) is being"}}{COM_R 1042 0
{TEXT 1 77 "    fixed for the next version (the change is more di
fficult than the others)"}}{COM_R 1043 0{TEXT 1 73 "  - the arcsi
n(sin(x)) ==> x arctrig simplifications have been turned off"}}
{COM_R 1044 0{TEXT 1 79 "  - inverse functions simplifications ha
ve been added e.g. sin@@(-1) ==> arcsin"}}{COM_R 1045 0{TEXT 1 76
 "  - trig simplifications for multiples of Pi/8, Pi/10, Pi/12 ha
ve been added"}}{INP_R 1046 0 "> "{TEXT 0 34 "sin(Pi/8), sin(Pi/1
0), sin(Pi/12);"}}{OUT_R 1047 0 1046{DAG ,4+3*3+5j2x0002j2x0001*3
p4/3p6p4i2x0001pApA+5*3j2x0005pA/3p6j2x0004/3pDp18p6+3*5j2x0006pA
+5p6p6*3j2x0003pA/3pDp27p6p16}}{COM_R 1048 0{TEXT 1 3 "   "}}
{COM_R 1049 0{TEXT 1 19 "- Changes to evalhf"}}{COM_R 1050 0{TEXT
 1 26 "  - can now be interrupted"}}{COM_R 1051 0{TEXT 1 39 "  - \+
now accepts break/next in for loops"}}{COM_R 1052 0{TEXT 1 60 "  \+
- now understands round, floor, ceil, Dirac and Heaviside."}}
{COM_R 1053 0{TEXT 1 27 "  - improved error messages"}}{COM_R 
1054 0{TEXT 1 32 "  - rounding on input to 1/2 ulp"}}{COM_R 1055 
0{TEXT 1 66 "  - rounding on output to less than 1/2 ulp (except \+
that result is"}}{COM_R 1056 0{TEXT 1 69 "        truncated to 4 \+
words later and this may cause up to 2.0 ulps)"}}{COM_R 1057 0
{TEXT 1 45 "  - arrays passed as local arguments now work"}}
{COM_R 1058 0{TEXT 1 75 "  - a primitive printlevel debugging fac
ility added for tracing assignments"}}{COM_R 1059 0{TEXT 1 45 "  \+
  though note this may yield a large output"}}{COM_R 1060 0{TEXT 
1 34 "  - now understands true and false"}}{COM_R 1061 0{TEXT 1 3
 "   "}}{COM_R 1062 0{TEXT 1 3 "   "}}{COM_R 1063 0{TEXT 1 67 "- \+
the old library file name limit of 9 characters has been removed.
"}}{COM_R 1064 0{TEXT 1 72 "  The limit is now 55 characters for \+
the path e.g. int/rischalg/intbasis"}}{COM_R 1065 0{TEXT 1 3 "   \+
"}}{COM_R 1066 0{TEXT 1 68 "- fsolve recognizes the option real a
s well as complex.  The default"}}{COM_R 1067 0{TEXT 1 32 "   is \+
to compute the real roots."}}{COM_R 1068 0{TEXT 1 3 "   "}}{COM_R
 1069 0{TEXT 1 3 "   "}}{COM_R 1070 0{TEXT 1 73 "- Additional sim
plifications for Dirac and Heaviside are provided through"}}
{COM_R 1071 0{TEXT 1 45 "  the general purpose simplify facility,
 e.g."}}{INP_R 1072 0 "> "{TEXT 0 42 "simplify( Heaviside(x-1)*He
aviside(x-3) );"}}{OUT_R 1073 0 1072{DAG (3n5\`Heaviside`,2+5n3\`
x`j2x0001i2x0003p9}}{COM_R 1074 0{TEXT 1 3 "   "}}{INP_R 1075 0 "
> "{TEXT 0 28 "simplify( G(x+3)*Dirac(x) );"}}{OUT_R 1076 0 1075
{DAG *5(3n3\`G`,2j2x0003j2x0001(3n4\`Dirac`,2n3\`x`p7}}{COM_R 
1077 0{TEXT 1 3 "   "}}{COM_R 1078 0{TEXT 1 75 "- Additional simp
lification routines for the arctrig functions are provided"}}
{COM_R 1079 0{TEXT 1 46 "  through the general purpose simplifier
, e.g."}}{INP_R 1080 0 "> "{TEXT 0 34 "simplify( arctan(x)+arctan
(1/x) );"}}{OUT_R 1081 0 1080{DAG +3*5(3n4\`csgn`,2n3\`x`j2x0001n
3\`Pi`p9/3p9j2x0002}}{COM_R 1082 0{TEXT 1 3 "   "}}{COM_R 1083 0
{TEXT 1 450 "- A new description field has been added to procedur
es for stating a short   description of what a procedure computes
.  The idea is that most of the time, people use the ? help facil
ity to remind them of what the parameters are, their order, the o
ptions, and what the computes, in particular, the return type.  T
he print facility provides this in conjunction with the new param
eter type declarations, and the description field, e.g. a library
 routine"}}{COM_R 1084 0{TEXT 1 3 "   "}}{INP_R 1085 0 "> "{TEXT 
0 20 "F := proc(n:integer)"}}{INP_R 1086 0 "> "{TEXT 0 61 "      \+
 option `Copyright 1990 by the University of Waterloo`;"}}{INP_R 
1087 0 "> "{TEXT 0 68 "       description `computes the n'th Fibo
nacci number, an integer`;"}}{INP_R 1088 0 "> "{TEXT 0 45 "      \+
 if n < 2 then n else F(n-1)+F(n-2) fi;"}}{INP_R 1089 0 "> "{TEXT
 0 8 "    end:"}}{INP_R 1090 0 "> "{TEXT 0 9 "print(F);"}}{OUT_R 
1091 0 1090{DAG @8,2~3n3\`n`n4\`integer`,1,2nE\`Copyright~`1990~`
by~`the~`University~`of~`Waterloo`p8?4<3a2x0001j2x0002p1A+5(3n3\`
F`,2+5p1Aj2x0001i2x0001p26p26(3p21,2+5p1Ap26i2x0002p26p26,2nE\`co
mputes~`the~`n'th~`Fibonacci~`number,~`an~`integer`p8}{TEXT 2 25 
"\012proc(n:integer) ... end\012"}}{COM_R 1092 0{TEXT 15 24 "Chan
ges in Functionality"}}{COM_R 1093 0{TEXT 1 0 ""}}{COM_R 1094 0
{TEXT 1 3 "   "}}{COM_R 1095 0{TEXT 1 503 "We have endeavoured NO
T to change the functionality of existing functions in the system
, language, and library from Maple V to Maple V Release 2 so that
 users' code will work, and the new manuals will remain accurate.
 In some cases it was necessary to make a change in order to fix \+
a problem or inconsistency.  We have listed the changes that are \+
most likely to affect users below.  Please note however that the \+
.m format has changed, so all users will need to reload any code \+
from Maple V or Maple 4.3."}}{COM_R 1096 0{TEXT 1 3 "   "}}{COM_R
 1097 0{TEXT 1 277 "1: Complex numerical arithmetic is now automa
tic, i.e. +, -, *, /, ^, of complex integers, complex rationals, \+
and complex floats is done automatically. Also evalf now works ov
er the complex floats.  Consequently many functions now work bett
er, and faster, with complex numbers."}}{COM_R 1098 0{TEXT 1 3 " \+
  "}}{COM_R 1099 0{TEXT 1 221 "2: Simple partial derivatives use \+
the diff notation not the D notation, i.e. the output of diff(f(x
,y),x,y,x); which used to return D[1,1,2](f)(x,y) now returns dif
f(diff(diff(f(x,y),x),x),y) which is displayed as follows"}}
{COM_R 1100 0{TEXT 1 3 "   "}}{INP_R 1101 0 "> "{TEXT 0 19 "diff(
f(x,y),x,y,x);"}}{OUT_R 1102 0 1101{DAG +17*5+19*7(3n3\`x`,3p5n3\
`y`j2x0002(3n4\`diff`,3p4p5pB(3pE,3p4p9j2x0001j2x0360*7p4j2x0003(
3pE,3pDp5p1Ap15p1Aj2x0120*7p4p20pDp1A(3pE,3pDp9p1Aj2x0240*5p4j2x0
004(3pE,3p22p9p1Aj2x0030*5p31p1ApDp1Aj2x0024*5p15p1Ap22p1Aj2x0012
*5p4p1Ap3Dp1Ap51p3Di2x0004*5pDpBp15p1Aj2x0048*7p4p1Ap22p1Ap15p1Ap
61*7p4p1ApDp1Ap31p1Aj2x0096*5p4pBp3Dp1Ap4Ap1A+9*3p4j2x0006p1A*3p4
p20pBp1Ap1A*3p4pBi2x0002i2x0001p1A*7+F*7p4p20pDp1Ap15p1Ap2A*5p4p3
Bp31p1Ap43*5p15p1ApDp1Ap51*5p4p1Ap31p1Ap51p31p5A*7p4p1ApDp1Ap15p1
Ap61*5p4pBp31p1Ap4Ap1Ap7Bp8A+7*5p4j2x0005pDp1Ap7E*5p4pBpDp1Ap7E*5
p4p1ApDp1Ap5Ap1Ap8A*7+F*5p4p20pDpBp2A*5p4p3Bp22p1Ap43*3pDpBp51*5p
4p1Ap22p1Ap51p22p5A*5p4p1ApDpBp61*5p4pBp22p1Ap4Ap1Ap7Bp8A+7*5p4pC
1p15p1Ap7E*5p4pBp15p1Ap7E*5p4p1Ap15p1Ap5Ap1Ap8C*9+9*5p4p3BpDp1Ap4
3pCCp51pDp5ApC6p4Ap1Ap7Bi2x0003pFDp1ApBEp1Ap3B*7p113p1Ap7Bp8A+D*7
p4p3BpDp1Ap15p1Ap43*5p4pC1p31p1Ap7EpADp51pB5p7Ep9Fp5ApA5p5Ap1Ap8A
*7+9*5p4p3Bp15p1Ap43p10Ap51p15p5Ap104p4Ap1Ap7Bp122pBEpBpB*7p148p1
Ap7Bp8A+D*5p4p3BpDpBp43*5p4pC1p22p1Ap7EpEEp51pF4p7EpE2p5ApE6p5Ap1
Ap8C*9+B*3p4pC1p7Ep87p7Ep4p5Ap81j2x0008p5Ap1Ap1Ap7Bp5ApBEpBpFDp1A
i2x0006*9p178p1Ap7Bp122p160p1ApFDp1ApB*9p178p1Ap7Bp122pBEp1Ap12Ep
1Ap3B*7p178p1Ap7Bp8A+17*7p4p20pDpBp15p1Ap2A*7p4p3Bp22p1Ap15p1Ap43
*7p4p3BpDp1Ap31p1Aj2x0060*5p4pC1p3Dp1Ap7Ep5Cp51p63p51p6Bp4Ap74p7E
p45i2x0008p4Cp5Ap53p5Ap1Ap8C}}{COM_R 1103 0{TEXT 1 0 ""}}{COM_R 
1104 0{TEXT 1 260 "Maple V Release 2 still assumes that partial d
erivatives commute as did Maple V. This is coded in the routine `
diff/diff` and can be changed as necessary. Note, use convert to \+
convert between the two representations, i.e. convert(...,D); and
 convert(...,diff);"}}{COM_R 1105 0{TEXT 1 3 "   "}}{COM_R 1106 0
{TEXT 1 217 "3: The function combinat[combine] has been renamed c
ombinat[choose] to not collide with the combine function and the \+
trace function has been renamed debug to not collide with linalg[
trace], i.e. the trace of a matrix."}}{COM_R 1107 0{TEXT 1 3 "   \+
"}}{COM_R 1108 0{TEXT 1 291 "4: The meaning of x in plot(..., x=a
..b); and plot(..., a..b) has changed to be consistent with the 3
-dimensional case.  If you give a range as the 2nd argument, i.e.
  plot(f,0..1);  and  plot3d(g,0..1,0..1);  then Maple understand
s this to mean: treat f and g as functions or mappings, e.g."}}
{COM_R 1109 0{TEXT 1 3 "   "}}{COM_R 1110 0{TEXT 1 65 "        pl
ot( sin, -3..3 );  and  plot( binomial, -3..3, -3..3 );"}}{COM_R 
1111 0{TEXT 1 3 "   "}}{COM_R 1112 0{TEXT 1 217 "On the other han
d, if you give an equation/range as the second argument, i.e. plo
t(f(x),x=0..1);  or  plot3d(g(x,y),x=0..1,y=0..1);  then this is \+
understood to mean plot the expression or formula f(x) and g(x,y)
, e.g."}}{COM_R 1113 0{TEXT 1 3 "   "}}{COM_R 1114 0{TEXT 1 76 " \+
    plot( sin(x), x=-3..3 );  and  plot( binomial(n,k), n=-3..3, \+
k=-3..3 );"}}{COM_R 1115 0{TEXT 1 3 "   "}}{COM_R 1116 0{TEXT 1 
66 " Hence you can plot Maple procedures and operator expressions
 e.g."}}{COM_R 1117 0{TEXT 1 3 "   "}}{INP_R 1118 0 "> "{TEXT 0 
53 "  plot( x -> if x < 0 then 1 else cos(x) fi, -2..2 );"}}
{INP_R 1119 0 "> "{TEXT 0 30 "  plot( sin^2+cos@log, 0..3 );"}}
{COM_R 1120 0{TEXT 1 3 "   "}}{COM_R 1121 0{TEXT 1 76 "5: The out
put from dsolve/numeric has changed to include the variables, e.g
."}}{COM_R 1122 0{TEXT 1 3 "   "}}{INP_R 1123 0 "> "{TEXT 0 67 "s
ys := diff(y(x),x)=z(x),diff(z(x),x)=-y(x):  fcns := \{y(x), z(x)
\}:"}}{INP_R 1124 0 "> "{TEXT 0 45 "p:= dsolve(\{sys,y(0)=0,z(0)=
1\},fcns,numeric):"}}{INP_R 1125 0 "> "{TEXT 0 7 "p(0.5);"}}
{OUT_R 1126 0 1125{DAG [2,4=3n3\`x`e3j2x0005i2x0001=3(3n3\`z`,2p3
e3j5x8775825634826159i2x0016=3(3n3\`y`pEe3j5x4794255393395229p16}
}{COM_R 1127 0{TEXT 1 37 " This can be plotted by by then doing"}
}{COM_R 1128 0{TEXT 1 3 "   "}}{INP_R 1129 0 "> "{TEXT 0 37 "odep
lot(p,[[x,y(x)],[x,z(x)]],0..10);"}}{COM_R 1130 0{TEXT 1 3 "   "}
}{COM_R 1131 0{TEXT 1 150 "6: Output from lprint and save of powe
rs now uses ^ instead of ** and of floating point numbers now use
s scientific e/E notation instead of Float(m,e)"}}{COM_R 1132 0
{TEXT 1 3 "   "}}{COM_R 1133 0{TEXT 1 342 "7: Some automatic simp
lifications have been turned off e.g. ln(1/x) ==> -ln(x) A comple
te list is given in the section Changes to automatic simplifictio
ns below under Miscellaneous.  The ones most likely to affect use
rs are those simplifications which have been turned off -- becaus
e they are not correct for all complex values of parameters."}}
{COM_R 1134 0{TEXT 1 3 "   "}}{COM_R 1135 0{TEXT 1 200 "8: Hittin
g the interrupt key twice will no longer kill a Maple session, it
 will only interrupt the current calculation.  The quit key can b
e used to kill Maple.  On UNIX this usually is ^\\ by default."}}
{COM_R 1136 0{TEXT 1 3 "   "}}{COM_R 1137 0{TEXT 1 146 "9: Indefi
nite integrals which require the exponential integral now return \+
in terms of Ei(1,x) not Ei(x) which is the Cauchy principle value
.  E.g."}}{COM_R 1138 0{TEXT 1 3 "   "}}{INP_R 1139 0 "> "{TEXT 0
 44 "Int( exp(-x)/x^3, x )=int( exp(-x)/x^3, x );"}}{OUT_R 1140 0
 1139{DAG =3(3n3\`Int`,3*5(3n3\`exp`,2+3n3\`x`i2x0001j2x0001pBi2x
0003pB+7*5pBi2x0002p6pF/3pDj2x0002*5pBpDp6pF/3pFp1E(3n3\`Ei`,3pFp
Bp1C}}{COM_R 1141 0{TEXT 1 3 "   "}}{COM_R 1142 0{TEXT 1 508 "10:
 New semantics of evalf(f,n).  The old semantics was first evalua
te f, then simplify the result (at Digits precision) yielding f',
 then evaluate and simplify n yielding n' and assign Digits to n'
.  Now evalf f' at n' digits precision, simplify the result and r
eturn.  The new semantics is, first evaluate n to n' and assign D
igits to n', then evaluate f and simplify the result (at precisio
n Digits = n') yielding f', then evalf f' at Digits = n' precisio
n.  This example illustrates what is going on here"}}{COM_R 1143 
0{TEXT 1 3 "   "}}{INP_R 1144 0 "> "{TEXT 0 13 " x := 7.0:   "}}
{INP_R 1145 0 "> "{TEXT 0 21 " evalf( 2/x*Pi, 20 );"}}{OUT_R 1146
 0 1145{DAG e3j6x89759790102565521098i2x0020}}{INP_R 1147 0 "> "
{TEXT 0 9 "x := 'x':"}}{COM_R 1148 0{TEXT 1 3 "   "}}{COM_R 1149 
0{TEXT 1 314 " In Maple V, 2/x*Pi evaluates to 2/7.0*Pi, and simp
lifying 2/7.0 is done at Digits = 10 (the default) precision yiel
ding .2857142857*Pi.  Then evalfing this at 20 digits we get .897
59790129493458131 .  In Maple V Release 2 all the arithemetic is \+
being done at 20 digits precision and we get .8975979010256552109
8 ."}}{COM_R 1150 0{TEXT 1 3 "   "}}{COM_R 1151 0{TEXT 1 196 "11:
 The fsolve command, when given a range, now solves on the closed
 interval not the open interval.  E.g. for the polynomial 1-x^2 w
ith roots at +- 1, fsolve(1-x^2,x,-1..1) now returns -1 and +1."}
}{COM_R 1152 0{TEXT 1 0 ""}}{INP_R 1153 0 "> "{TEXT 0 22 "fsolve(
1-x^2,x,-1..1);"}}{OUT_R 1154 0 1153{DAG ,3e3i4x001000000000i2x00
09e3j2x0001j2x0000}}{COM_R 1155 0{TEXT 1 0 ""}}{COM_R 1156 0{TEXT
 1 248 "12: The D command no longer naively differentiates proced
ures which contain unknown functions.  It only differentiates fun
ctions for which diff knows how to differentiate them. For exampl
e consider the procedure below with unknown functions f and g"}}
{COM_R 1157 0{TEXT 1 0 ""}}{INP_R 1158 0 "> "{TEXT 0 19 "f := 'f'
: g := 'g':"}}{INP_R 1159 0 "> "{TEXT 0 20 "F := x -> f(x)*g(x);"
}}{OUT_R 1160 0 1159{DAG :3n3\`F`@8,2n3\`x`,1,3n5\`operator`n4\`a
rrow`p7*5(3n3\`f`,2a2x0001j2x0001(3n3\`g`p15p18p7p7}}{INP_R 1161 
0 "> "{TEXT 0 5 "D(F);"}}{OUT_R 1162 0 1161{DAG @8,2n3\`x`,1,3n5\
`operator`n4\`arrow`p4+5*5(3(3n3\`D`,2n3\`f`,2a2x0001j2x0001(3n3\
`g`p17p1Ap1A*5(3p15p17p1A(3(3p12,2p1Dp17p1Ap1Ap4p4}}{COM_R 1163 0
{TEXT 1 0 ""}}{COM_R 1164 0{TEXT 1 138 "There are two ways to for
ce D to apply itself formally to the body of F, firstly, by setti
ng the assuming_differentiable option as follows"}}{COM_R 1165 0
{TEXT 1 0 ""}}{INP_R 1166 0 "> "{TEXT 0 32 "assuming_differentiab
le := true:"}}{INP_R 1167 0 "> "{TEXT 0 5 "D(F);"}}{OUT_R 1168 0 
1167{DAG @8,2n3\`x`,1,3n5\`operator`n4\`arrow`p4+5*5(3(3n3\`D`,2n
3\`f`,2a2x0001j2x0001(3n3\`g`p17p1Ap1A*5(3p15p17p1A(3(3p12,2p1Dp1
7p1Ap1Ap4p4}}{COM_R 1169 0{TEXT 1 0 ""}}{COM_R 1170 0{TEXT 1 160 
"Secondly by telling Maple how to differentiate f and g.  For exa
mple, we could tell Maple that the derivative of g is f and that \+
the derivative of f is unknown."}}{COM_R 1171 0{TEXT 1 0 ""}}
{INP_R 1172 0 "> "{TEXT 0 41 "`diff/g` := proc(a,x) diff(a,x)*f(a
) end:"}}{INP_R 1173 0 "> "{TEXT 0 46 "`diff/f` := proc(a,x) diff
(a,x)*'D'(f)(a) end:"}}{INP_R 1174 0 "> "{TEXT 0 5 "D(F);"}}
{OUT_R 1175 0 1174{DAG @8,2n3\`x`,1,3n5\`operator`n4\`arrow`p4+5*
5(3(3n3\`D`,2n3\`f`,2a2x0001j2x0001(3n3\`g`p17p1Ap1A*3(3p15p17j2x
0002p1Ap4p4}}{COM_R 1176 0{TEXT 1 0 ""}}{COM_R 1177 0{TEXT 1 141 
"Note that the quotes in 'D'(f)(a) are necessary because D will c
all diff and we have just told diff to use D, which would call di
ff etc. etc."}}{INP_R 1178 0 "> "{TEXT 0 0 ""}}}{END}
