Compatibility Issues in Maple 9.5
The following is a brief description of the compatibility issues that affect users upgrading from Maple 9 to Maple 9.5.
record Constructor
Parameter Processing
Automatic Simplifications
Iterate Through Entries of a Table or RTable
StringTools
Boolean Evaluation
The record constructor has been removed. Use the Record constructor.
Ongoing work to enhance the power of parameter processing in Maple has introduced a compatibility issue related to the use of type names as parameter names in parameter lists. The problem is best illustrated by an example. A procedure with parameter list name::string,d::name now causes an "invalid input" error message if the type of the second argument does not match the string passed as the first argument. To fix this problem, rename the relevant parameter so that it is not the name of a type, for example, userinput::string,d::name.
Continuing the automatic simplification changes in Maple 9, a simplification has been removed. The simplification x-x does not automatically simplify to 0 if the value of x renders this simplification invalid. If x is an unassigned name, the simplification proceeds.
The commands seq, add, mul, and for-in style loops, now iterate through the entries of a table, Matrix, Vector, or Array, instead of iterating over the ops. Also, in addition to the add(i, i=A) syntax using an equal sign ("="), the same command can be issued with "in" notation, for example, add(i, i in A).
Example
M := Matrix([[1,2],[3,4]]);
M≔1234
seq(e,e in M);
1,3,2,4
To comply with the naming convention, the NumbOccur command in the StringTools package has been renamed to the more descriptive name, StringTools[CountCharacterOccurrences]. While the long form (StringTools:-NumbOccur) of the old name works in this release, users should update their code to use the new name.
In Maple 9.5, the evalb command does not perform arithmetic for inequalities involving <, <=, >, or >=. This avoids, for example, performing the computationally expensive subtraction of the right-hand side from the left-hand side, which generally does not facilitate the return of a true or false value. Most importantly, the subtraction may be mathematically incorrect.
evalb( 'rand()' + 1 > 'rand()'); #returned true in Maple 9
rand⁡<rand⁡+1
evalb( f(x) + 1 > f(x) ); #returned true in Maple 9
f⁡x<f⁡x+1
f := (x) -> x*I;
f≔x↦I⋅x
evalb( f(1) + 1 > f(1) ); #counter example in Maple 9
FAIL
The evalb command may now return unevaluated when a relation is true.
evalb(Re(x)<Re(x+1));
ℜ⁡x<1+ℜ⁡x
In some cases, you must force the subtraction of the right-hand side from the left-hand side when using <, <=, >, or >=.
evalb(Re(x)-Re(x+1)<0);
true
See Also
evalb
Index of New Maple 9.5 Features
Repository Management
Download Help Document