updatesv42
New features that have been added to Maple for version 4.2 ----------------------------------------------------------Extended syntax of the repetition statement------------------------------------------- In addition to the previous form of the repetition statement (for-from-by-to-while), a new form (for-in-while) has been added. Specifically, the syn-tax of the new form is: for <name> in <expr> while <expr> do <statseq> odwhere any of `for <name>', `in <expr>', or `while <expr>' may be omitted. Thesuccessive values of the loop index (i.e., the <name> specified in the for-partof the statement) are the successive operands of <expr>. The value of theindex may be tested in the while-part of the statement and, of course, thevalue of the index is available when executing the <statseq>. As in the otherform of the repetition statement, if the `while <expr>' part is present thenthe test for termination is checked at the beginning of each iteration.Notation for inert functions---------------------------- In general, the convention to represent the inert form of a function isto capitalize the first letter of the function name. The following inert func-tions are known to the pretty-printer: Int, Sum, and Product. More generally,inert functions are used when it is desired to control the domain of computa-tion (see next item).Specifying the domain of computation------------------------------------ The general mechanism to cause a computation to be performed with respectto a specific coefficient domain is as follows. The function to be computed isspecified in its inert form (by capitalizing the first letter) and then theappropriate evaluator is applied to the function. At present, this mechanismis operational for two coefficient domains:(i) integers modulo m, via the mod operator;(ii) rational expressions extended by algebraic numbers (specified using the RootOf notation), via the evala function.The following inert functions are known to the mod operator and to the evalafunction: Content Divide Factor Gcd Gcdex Interp Prem Primpart Quo Rem Resultant RootOf SpremExtended prettyprint facility----------------------------- The prettyprint facility now knows about special symbols for int, sum,and product (also Int, Sum, and Product, their inert counterparts), and diff.Furthermore, it now correctly prints expressions involving the following opera-tors: &-operators (neutral operators), $, mod, union, intersect, minus, andangle-bracket operators.New Packages------------ Several new packages of library functions have been added; the completelist of packages in this version of Maple is: difforms: differential forms package grobner: Groebner basis package group: permutation and finitely-presented group package linalg: linear algebra package np: Newman-Penrose formalism package numtheory: number theory package orthopoly: orthogonal polynomial package powseries: formal power series package simplex: linear optimization package stats: statistics package student: student calculus packageImproved automatic simplifications---------------------------------- The automatic simplification of trigonometric functions with respect toinverse trigonometric functions has been added.Improved limit and integration facilities----------------------------------------- Much of the limit function has been rewritten to improve its mathematicalpower, as well as its efficiency. The int facility for indefinite integration has been significantlyenhanced by the installation of a complete Risch decision procedure for tran-scendental elementary functions. The numerical integration facility (`evalf/int`) has been improved tohandle a much wider class of integrands, particularly integrands involvingsingularities and infinite limits of integration.Efficiency improvements----------------------- The overall efficiency of Maple has increased about 10%. This has beenachieved by moving a few routines to the compiled kernel as well as by improvedalgorithms in the external library.New functions (use "help(f);" in a Maple session for information about f):-------------------------------------------------------------------------- primpart: primpart(a,x) = a / content(a,x).- eqn and latex: eqn (rewritten) and latex (new) produce typesetter output from mathematical expressions.- singular: Find all singularities of an expression.- RootOf: The RootOf procedure does basic simplifications. The RootOf func- tion notation is generally a placeholder for representing roots of equations.- S, C: New math fcns, the Fresnel integrals S(x) and C(x). These functions are known to various routines, including evalf, diff, taylor, and int.- bspline: The function bspline(d,v,k) computes the B-spline of degree "d" as a list of segment polynomials in "v" defined on the knots "k" where "k" is a list of d+2 numbers or symbols (multiplicities allowed).- zip: The function zip(f,u,v) zips u and v (two lists or vectors) into a new list or vector by application of the binary function f to each pair of ele- ments u[i], v[i].- evala: The evala function is used for evaluation in the domain of rational expressions extended by algebraic numbers (using the RootOf notation).- match: for pattern matching.- student[combine] - This routine is used to rewrite unevaluated Sums and Integrals as one Sum or Integral.- student[Eval] - This routine is used to cause unevaluated Sums, Limits, and Integrals to evaluate.- student[makeproc] - This is an alternative name for the Maple function unap- ply().- student[changevar] - This function now handles infinite bounds correctly.- convert routine in student package: convert(...,nested) rewrites an expres- sion involving functional composition as nested function application; con- vert(...,`@`) rewrites nested function applications using composition of functions.Modified functions (use "help(f);" in a Maple session for information):----------------------------------------------------------------------- mod: The functions `mod`, modp, and mods have been extended to work on lists, sets, and equations.- ConvexHull: deleted; now use simplex[convexhull].- testeq now successfully works for: (a) square roots when not mixed with trigonometric functions; (b) nested algebraic numbers and functions; (c) floating-point numbers.- resultant(p,q,x): now allows p and q to be non-polynomial in variables other than x.- gcdex(p,q,x,'s','t'): now allows p and q to be non-polynomial in variables other than x.- diophant(p,q,r,x,'s','t'): now deleted; see gcdex for this functionality.- numtheory[jacobi]: improved from cubic time / quadratic space to quadratic time / linear space.- asympt: asympt( sum(..), ..) now uses Euler-Maclaurin expansions when appropriate.- plot: now accepts an ln03 laser printer as a plotdevice and vt100 using the dec-graphics character set. Plot can also produce postcript-compatible out- put.- indets: indets(expr,typename) returns all of the subexpressions in expr which are of type "typename".- minimize: extended and improved functionality.- type: type(a, type_set); where type_set is a set of type names, will return true if a is any one of the types contained in the set.- type/algnum: test for an algebraic number.- type/polynom: The code has a user interface allowing for user-defined coef- ficient domains. For example: type(a, polynom, v, d); tests whether "a" is a polynomial in the variable(s) "v" with coefficients of type "d".- type/ratpoly: The code has the same extension as type/polynom. For example: type(a, ratpoly, [x,y], algnum) tests whether "a" is a rational function in the indeterminates "x" and "y" with coefficients which are algebraic numbers.- type/point: A point is formally defined to be a set of equations with vari- ables as left-hand-sides (identical to the explicit output format of the solve function). Many functions will now take points as arguments -- for example, limit now accepts points as well as single equations, as in: limit( 1/(x+a), {x=0,a=0} ) .- int/def: all of the non-parametric definite integrals of the CRC tables have been included in the definite integration tables (when they are not otherwise computed by the integration algorithm).- trace: The trace facility has been improved so that not only entry and exit points are displayed, but also statements executed within the procedure (but not in sub-procedures) are displayed. Also, option "trace" may be specified for a procedure (this is the mechanism used by the trace function).- sum: a new algorithm has been implemented for the summation of tri- gonometrics and exponentials. Also, there is a user interface such that if `sum/<funcname>` is defined as a procedure then it will be invoked by sum when the arbitrary function <funcname> is encountered in an expression.- taylor: When floats are present, all coefficients are now evaluated by evalf.- iroots: removed; it is now part of isolve.- mod functions: The mod functions (names beginning with m) have been deleted; now use inert (capitalized) function names and the mod operator. I.e. mfactor --> Factor(..) mod p mgcd --> Gcd(..) mod p mgcdex --> Gcdex(..) mod p minterp --> Interp(..) mod p mquo --> Quo(..) mod p mrem --> Rem(..) mod p mres --> Resultant(..) mod p- solve: improvements include solving inequalities, solving equations contain- ing RootOfs, and solving equations with radicals in a general form.- solve: solve( identity( <eqn>, x ), <vars> ) solves identities in a single, given variable. This is equivalent to a powerful pattern matching in one main variable.- msolve: special code is now used for solving large systems of equations mod 2.