MATHEMATICS, SIMULATION AND MODELLING
21 May 2008
Reviewed by Felix Grant
This release of Maple continues the process, evident for several generations now, of developing intuitive usability as well as power. The ride has settled down somewhat, after the initial fireworks, but is no less impressive for that.
The graphical document user interface continues to flower and enrich, blending productive tricks with home grown engineering. The prepackaged interactivity of 'Explore' allows quick and easy generation of visual links between outputs and inputs. New or enhanced interactive control objects extend the range of investigative or illustrative constructs which can be built. Command completion becomes more flexible, formatting more subtle and controllable, backed up by new predesigned templates. A start-up code region allows hidden auto-loading of objects, commands, used packages, or anything else, every time a document is opened to define the environment within which work is done in that document – a great time saver in many circumstances. For those who use the command line, there is an option on persistent history across sessions.
I was delighted to find that the two separate mathematical engines previously provided have now become one, with the kernel starting up in single threaded mode and switching to multi-thread on its own initiative when a command is called from the Threads package. Suddenly, efficient exploitation of multiple processor cores has become, if not simple, at least much less head bending. Other programming developments include specified sparse or dense handling of, application of 'max' and 'min' to, and Matlab structure indexing of, dimensioned structures.
As one who regularly uses generic mathematics packages to do heavy lifting work in preparation of large data sets, I was also pleased with the execution speed gains provided by efficiency savings in several areas. The showcased examples check out when tried, but the realisable applied benefits are significant too – up to 1,000 per cent acceleration in some cases, typically between 300 per cent and 500 per cent, on my own trials with old data. The results are most impressive when combining large arrays, but are everywhere worthwhile; in aggregate, over a period, even the more modest time savings in symbolic expansion would mount up.
Both symbolic and numeric usage have been enriched and tidied up. 'Solve' makes increased use of Groebner bases to good effect, while 'fsolve' now deals with multiple argument procedure systems. MPQS stars in the expansion of integer optimisation, complex numerics are now supported in compiled code, user control gains deterministic ordering of set elements and improved availability of inert functions. Faster, more flexible Zeilberger; multidimensional array interpolation; minimal additive decomposition; 'equate' access to physics vector package structures.
In support, a dozen packages (including statistics) see significant enhancement and five new ones arrive. 'Bits' and 'Security' are perhaps self evident and beyond brief examination here. 'CAD' is an impressive tool kit for computational interaction with CAD models, drawing data from within them and feeding results back as modifications; it only works with Solidworks or Autodesk Inventor so far, but since the linkage is a modular call it should be readily extensible to other products. 'Database' provides SQL connection, while 'DynamicSystems' does what it says on the tin with a range of object and signal tools.
As always with Maple, this is a substantial and worthwhile advance with plenty to justify upgrade by any type of user.