Compatibility - Maple Help

Compatibility Issues in Maple 7

 The following is a brief description of the compatibility issues that affect users upgrading from Maple 6 to Maple 7.

Obsolete Packages and Functions

 • The interp, ratinterp, thiele and spline functions are obsolete.  The functionality of these functions is now provided by the CurveFitting[PolynomialInterpolation], CurveFitting[RationalInterpolation], CurveFitting[ThieleInterpolation] and CurveFitting[Spline] functions, respectively.
 • The record constructor has been renamed Record for consistency with other, similar constructors. For this release, the name record will continue to work, but is now deprecated in favor of the new spelling.

Numerics-related Changes

 By default, in the exact computation environment (i.e., no floating-point numbers or computations involved) the numeric events overflow and underflow cause the corresponding exception to be raised rather than an infinity or 0 to be returned.  This is similar to the Maple 6 behavior for the division_by_zero numeric event, and as with that event, this behavior can be controlled by installing a numeric event handler. See NumericEvent and NumericEventHandler.
 The UseHardwareFloats environment variable, which was Boolean valued (i.e., took only the values true or false) in Maple 6, now allows a third value, deduced, which is also the new default value.  When UseHardwareFloats = deduced, hardware or software floats will be used for certain computations depending on whether the value of the environment variable Digits is less than evalhf(Digits).
 The semantics of undefined have been slightly changed in order to deal with certain loop termination conditions.  In particular, undefined = undefined returns true.
 For details on these and other changes to Maple's numerics, see updates,Maple7,numerics.

New Keywords and Names

 • assuming, subset, implies, and xor are new Maple operator keywords.

Miscellaneous

 • The MeijerG function of Maple 6 was using a nonstandard definition of this function.  As of Maple 7, this function now has a much more standard definition;  Maple 6's variation of the function is still present in Maple 7, but under the name ModifiedMeijerG. See MeijerG for additional details.
 • The one-argument form of the save command, e.g., $\mathrm{save filename}$, is obsolete.  The list of names to save must now be given explicitly.
 • The behavior of codegen[maple2intrep], codegen[C], and codegen[fortran] has changed.  If these functions are used to translate a procedure f which calls another procedure g, then they can determine the return type of g accurately only if the return type of g is declared; otherwise, a default return type of float is assumed.
 • The codegen[C] function now generates standard math library function names in all cases, even when the precision=single option is provided. The new mode=single option must be used to generate single precision math function names such as logf''.
 • The codegen[fortran] function now produces generic math function names and double precision variables and constants as defaults.
 • The LinearAlgebra[LinearSolve] function now accepts an additional argument of the form $\mathrm{methodoptions}=\mathrm{list}$. This argument must be provided when the programming layer routine, LinearAlgebra:-LA_Main:-LinearSolve, is used.  See Linear Algebra Programming Submodule Calling Sequences.
 • To extend the size of factorials that can be computed, factorials are no longer evaluated at compile-time'' (during automatic simplification), and there is no longer any (practical) limit on the size of an integer argument to factorial. This change means that you can now delay factorial computations by using unevaluation quotes. Substituting into an unevaluated factorial expression now requires an evaluation to effect the computation. Small factorials are still computed in the kernel, but the built-in procedure factorial now calls a new library procedure Factorial to handle arguments that are not small integers.
 > '20!';
 ${20}{!}$ (1)
 > subs( n = 5, 'n!' );
 ${5}{!}$ (2)
 > length( 40000! ); # not possible in earlier releases of Maple
 ${166714}$ (3)

No updtsrc Utility in Maple 7

 • There are no incompatibilities between the syntax of Maple 6 and Maple 7. Therefore, the updtsrc utility is not required for this release. For help porting code files from Maple versions prior to Maple 6 to Maple 7, please visit the Support section of our Web site, www.maplesoft.com.