updates/R5/compatibility - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : updates/R5/compatibility

Compatibility between Maple V Release 4 and Maple V Release 5

  

The following is a brief description of compatibility issues affecting users upgrading from Maple V Release 4 to Maple V Release 5.

 

R4 .m files cannot be read by R5

Grammar changes

Semantic changes

Error checking

System changes

Obsolete Packages and Functions

Deletions

Function changes

Name changes

Mathematical changes

R4 .m files cannot be read by R5

• 

To upgrade Release 4 code to Release 5, use the updtsrc utility.  The GUI automatically upgrades Release 4 worksheets to Release 5.

Grammar changes

• 

The recall environment variables have been renamed from: ", "", """ to %, %%, %%% so that " quotes can be used for strings.

• 

Names can now start with the character %. The expression %mod is not valid in Release 5:  it must be % mod.

• 

Use :: instead of : in a parameter declaration. An error message (instead of a warning) will result if : is used .

Semantic changes

• 

Lexical scoping is now available.

• 

The exponentiation operator, '^', (which may also be written as '**') is now a function; this may affect type(..., '^'()) usage since the '^' will evaluate and may simplify.

• 

With the addition of strings to Maple V Release 5, you might have to change sprintf to nprintf.  Also, note that sscanf now returns a string for the %a format instead of a name.

• 

The Maple expression substring(readline(),1..1)=`a` will never return true.

• 

Type tests of the form type(...,string) may need to change to one of: type(..., string,symbol), type(...., atomic) or type(...., symbol).

Error checking

• 

New protected words:

  

MATRIX, PIECEWISE. UNKNOWN, VECTOR, index, undefined,

  

`^`, `**`, atomic, complexcons, hfarray,

  

label,

  

literal, restart, symbol, tracelast patchlevel

• 

Strings and (quoted) names which span more than one line, and are not continued using a backslash character (\), result in a warning.

"This is a

Warning, incomplete string; use " to end the string

multiline string";

This is a multiline string

(1)

printf( % );

This is a multiline string

(2)

"This string is too but has been entered with \

continuation characters.";

This string is too but has been entered with continuation characters.

(3)

printf( % );

This string is too but has been entered with continuation characters.

(4)

System changes

• 

Changes in the internal representation of objects affect the hackware package; see kernelopts(dagtag).

• 

Under UNIX, the system wide initialization file is now in lib/init instead of lib/src/init.

• 

The command completion file is now called lib/cmds instead of lib/src/cmds.

• 

On Windows/DOS, the user initialization file maplev4.ini has been renamed to maplev5.ini.

• 

The Unix preferences file .xmaplev4rc, used by xmaple, has been renamed .xmaplev5rc.

• 

Procedures now have seven operands (that is, "ops").

• 

Rounding now occurs when using printf for floating point numbers.  Also, all significant digits are printed instead of truncating the significant trailing zeroes.

• 

LaTeX version 2.09 is no longer supported.

Obsolete Packages and Functions

• 

The grobner package is now a compatibility package that calls functions in the new Groebner package. Do not use the old grobner package to write new code; but rather, migrate it to the new Groebner package.

• 

The command pdesolve has been superseded by the new, more powerful pdsolve. The pdesolve command will be removed in a future release of Maple.

• 

The commands PDEchangevars and Dchangevar, both in the DEtools package, are replaced with the new command PDEtools[dchange], but are in Release 5 for compatibility with previous version.  Users are advised to change their code to use PDEtools[dchange].  Note that PDEtools[dchange] also will replace (in a future version) student[changevar].

Deletions

• 

The plot devices i300, ln03, pic, regis, 1, and vt100 have been removed.

• 

The tutorial function has been deleted.

• 

The four argument form of grobner[gbasis] is now longer supported: the ordering-heuristic that was used to find some (unspecified) "good" ordering for a Groebner basis has been removed.

• 

The format conversion specifiers %N and %M (used by printf-like functions) no longer exist.

Function changes

• 

For consistency with linalg[matrix], the command linalg[blockmatrix] now takes inputs as a list, not an expression sequence.

• 

It is no longer necessary to issue the command readlib( stack ) to access the stack type.

• 

The function linalg[stack] has been renamed linalg[stackmatrix], to avoid conflicting with stack.

• 

The syntax of statplot has changed:

  

scatter1d, scatter2d -> scatterplot

  

notchedbox -> boxplot

  

quantile, quantile2, symmetry -> scatterplot

  

histogram -> optional arguments changed, area=, numbars=

  

boxplot[2] -> boxplot(shift=2, )

  

boxplot[2,3] -> boxplot(shift=2, width=3 )

  

notchedbox[2]->boxplot(shift=2,format=notched,...)

  

histogram[3]-> histogram(numbars=3,...);

  

quantile2-> scatterplot(format=quantile, ...)

  

quantile-> scatterplot(format=quantile, ...)

  

scatter1d -> scatterplot

  

scatter1d[stacked] -> scatterplot(format=stacked)

  

scatter1d[jittered] -> scatterplot(format=jittered)

  

scatter2d->scatterplot

  

xshift[x](y)->xshift(x,y)

  

symmetry->scatterplot(format=symmetry)

• 

The define command has different arguments than in previous releases. Please see the define example worksheet for more information.

• 

The whattype command can now return the value 'string' or 'hfarray'.

• 

Some default simplifications have been moved from hypergeom to simplify,hypergeom.

• 

The galois command has a new syntax.

• 

The syntax of dsolve has changed in such a way that dsolve(..., laplace) needs to be written now as dsolve( ...,method=laplace).

• 

Results from grobner[gbasis] may be returned in a different order than in Release 4. The new ordering is optimized to allow efficient reductions. See Groebner[reduce] for more information.

• 

The spelling of the (old) commands cardiod, cardiodal, and cardiodcylindrical is corrected so that they are now called, respectively, cardioid, cardioidal, and cardioidcylindrical. See coordinate systems for more details.

Name changes

• 

The package maxorder has been split into numtheory[integral_basis] and algcurves[integral_basis]

Mathematical changes

• 

The definition of arccoth has changed so that the branch cuts are more consistent with the other inverse trigonometric and inverse hyperbolic functions.  The function used to be defined as 1/2*I*Pi+1/2*ln(x+1)-1/2*ln(1-x) but is now defined as 1/2*ln(-1-x)-1/2*ln(1-x).

• 

The result of degree(0,...) is -infinity.

• 

The result of ldegree(0,..) is infinity.

• 

The command coeff(p(x),x,infinity) returns 0.

• 

The command coeff(p(x),x,-infinity) returns 0.

• 

The command evalhf can return infinity and undefined.

• 

The definition of LREtools[dispersion] has changed.

• 

The definition of Testzero has been changed in such a way that it now uses Normalizer by default.

• 

Dsolve returns expression sequences of answers.

• 

The sqrfree factorization function will produce results sqrfree(0)=[0,[]] and sqrfree(a,x)=[a,[]].  It will also return partial factorizations when it is possible to do so (at no extra cost).

• 

The MeijerG definition has changed from a 3-argument special version to a modified definition of the general MeijerG function.  See the help page for details