I'm not normally a believer in Jungian synchronicity, but sometimes events come together in unplanned yet very apt ways. The decision to pair Maple and MuPAD in this review was pragmatic: Maplesoft's Maple 9.5 was launched in May, and coverage of the release of SciFace Software's MuPAD 3.0 is overdue. Yet, considering them together showed a deeper connection. I've seen a handful of references to MuPAD as a Maple clone, and there are superficial resemblances: a shared display convention, red for input, blue for output; the same term, ' procedures', for stored programs; and a similar architecture, a small C/C++ kernel that calls code libraries written in their native language. Whether this is intentional, coincidence or convergent evolution, they make an interesting pairing.

Dr Oliver Kluge, CEO of SciFace and one of MuPAD's major developers, is very clear on this point. 'MuPAD was never intended to be a clone. It originated independently in pure research. We wanted a language that was easy to learn, in a style already known, and so drew on the format of languages such as Algol and Pascal, with C++ influences in the Object Oriented Programming constructs.'

MuPAD ('Multi Processing Algebra Data tool') originated in 1990, in the purest of research: work at the University of Paderborn for handling bulky data from investigations of group theoretical structure in non-linear systems. Paderborn's MuPAD Group developed it into an open-source, cross-platform algebra system, until, in 1998, funding pressure led the Group into a separate commercial launch by the newly-created SciFace Software. I think this offshoot can be judged as having gone well. SciFace has a long-standing distribution partnership with MacKichan Software in the USA, and a further vote of confidence from MacKichan's recent decision to drop its joint use of Maple, and use MuPAD as the sole computer algebra engine for its scientific typesetting range.

MuPAD 3.0 has been launched for Microsoft Windows 95 to XP, and offers a large symbolic and numerical command set in a standard notebook format, with typeset formula output and a 'virtual camera' graphics viewer, Vcam. For programmers, MuPAD Pro contains a source-code debugger for troubleshooting user procedures, and advanced users can add 'dynamic modules', compiled run-time C/C++ applications. The picture is similar for other platforms, except for the older versions: 2.5.2 for MacOS X and 2.5.3 for Linux.

MuPAD's mathematical repertoire is large, but distinctly slanted toward 'purity'. Practical libraries such as statistics and unit conversion are there. But, in contrast to Maple's strong expansion into PDE solution, MuPAD has almost no coverage of this physically important equation type (the manual says 'one should not expect miracles from detools:pdesolve'). However, concepts such as rings, fields, and Groebner bases are supported, and additions to MuPAD 3.0 go further into pure mathematics territory with a stronger, more configurable, Simplify function; extension of the ODE Solver to several new classes; a Graph Theory library; and updates to special functions, number theory and linear algebra handling.

A key feature is MuPAD's support of 'axioms', 'categories' and 'domains', for storage and symbolic manipulation of algebraic structures. But they also behave similarly to object-oriented programming (OOP) classes, allowing OOP operations such as 'overloading' functions with user definitions to extend their application outside their normal data type. Much of this gets rapidly into the area of advanced mathematics and advanced programming. I'm not a programmer beyond routine procedural code, and frankly this lost me beyond the basic use of variable domains. The print tutorials don't go into it beyond this level, and the on-disk ones assume a high level of knowledge. But the functions are there.

Connectivity is another theme of MuPAD 3. Individual expressions can be exported in MathML format, and MuPAD 3.0 has import/export commands for Microsoft Word. I found these a little shaky; Rich Text Format worked two-way, but with Word .doc files, import gave a Sharing Violation error. Connectivity, in fact, seemed a weak point, as I could not get the Scilab link to work either. This is an open-source, Matlab clone, maintained and developed by the Scilab Consortium. MuPAD 3.0 has been bundled with it since last year. It's there to be called from inside MuPAD as a dynamic module, where commands prefixed with scilab:: draw on its fast numerical routines for, say, matrix operations. It ran well by itself, but MuPAD calls just gave 'slot not found' (others have reported this on Usenet).

In contrast to the obscurer maths and programming, the new graphics capabilities are evident to anyone. The renderer and Vcam have been entirely rewritten, including OpenGL drivers for 3D plots, and the efficiency improved by the use of 80+ object types, whose internal attribute trees can be inspected and manipulated interactively (for instance, to insert changes in lighting and axis style). Animations are a strong point, with most attributes time-variable. 'It's easier to specify what can't be animated than what can,' Dr Kluge explained. For instance, camera fly-bys or colour changes can be programmed.

**Documentation**

The documentation for MuPAD 3.0 currently comprises two print books (a somewhat dry tutorial and a very friendly programming guide, MuPAD Pro Computing Essentials) backed up by on-disk command references as .dvi hypertext files. There's more help on the internet, although MuPAD's web presence is a little labyrinthine as it's distributed across several sites. SciFace itself (www.sciface.com) is the commercial site, which runs a Trust Assured Network (TAN) download server - a secure but nerve-wracking system where every action reassigns your password, and mistakes lose you 'lives' until 'even the MuPAD team cannot help to get access'. There are also sites for the University of Paderborn MuPAD research group (www.mupad.de); the online mathPAD journal (www.mupad.com/ mathpad/); and schools (www.mupad.de/ schule25/).

The educational market, both school and university, is the most significant one for MuPAD. 'In Germany at least,' Dr Kluge says, 'the market is very favourable, as our site licences for schools are much lower than with other packages'. Paderborn is in the federal state of North Rhine-Westphalia (NRW) and it's unsurprising that MuPAD, as a home-grown quality product, is recommended by the NRW Ministry of Education. This has involved it a number of initiatives: the German wing of Intel's Innovation in Education project to promote new media in education; NRW's regional teams for its 'E-nitiative NRW' for training teachers in new media; and SciFace's own 'Mumm' project to equip selected schools with free MuPAD site licenses. ('Mumm', grit or determination, is a German acronym for 'mathematics instruction with MuPAD').

As to developments in the pipeline, Dr Kluge says, 'We are working on MuPAD 3.0 for Macintosh 0S 9.2/10, planned for release later this year, and longer-term on MuPAD Pro for Linux - probably under Qt - as the Linux 2.5 is quite old-fashioned, and lacks a notebook format. There's some demand for this on the French market where, in academia and science at least, they'd rather use Linux than Microsoft'. There's also a prototype MuPAD Computing Server, a Java applet akin to existing systems for Maple and Mathematica, that can access a MuPAD kernel,

I was disappointed in the rough edges to the connectivity, but the overall picture - especially the superb graphics upgrade - is very innovative. One other extremely nice MuPAD development deserves mentioning in conclusion. Several years ago Wolfram Research produced a Mathematica Link for Microsoft Word, no longer extant for current versions. SciFace has brought the idea up to date with a MuPAD for Word add-in. It installs as a small toolbar of pull-down formula templates and evaluation controls, and gives in situ MuPAD 3.0 evaluation to Microsoft Word 2000 or higher. This is a considerably tidier solution than inserting a MuPAD notebook as an OLE object. One current aim of SciFace is to integrate MuPAD with standard office products. Even though it's only at version 1.0, MuPAD for Word does this very well and, I think, has strong potential to shake up the market in mathematical word processing.

**MAPLE 9.5**

Maple was, in the past, the stereotypical 'pure mathematics' package. While that's still very much its strength, recent releases have shown a steady development of its capacity for applied mathematics; for instance, the addition of units and scientific constants. This may explain why the byline 'command the brilliance of 1000 mathematicians' (which I've always found faintly sinister) has been dropped in favour of a more general pitch as a technological tool.

Maple 9.5 builds on the dual-format package introduced with Maple 9, offering the choice 'Standard' and 'Classic' interfaces (which might be caricatured as 'modern but memory-hungry' and 'old but efficient'). There are many additions across the board, but the showpieces are a numerical Optimization package and a 5000-term Mathematical Dictionary. To introduce the new package, the press pack repeats the commonly told - and quite probably apocryphal - story that George Dantzig, inventor of the Simplex method for linear programming, first tried it out to minimise the price of his household food budget. Maple already provided Simplex linear optimisation, but Optimization generalises and extends this with a set of fast Numerical Algorithms Group (NAG) routines for linear, nonlinear and quadratic programming, as well as linear and nonlinear least-squares problems. These routines are nicely implemented for ease of use; while specific commands such as LPSolve and NLPSolve are available, Minimize and Maximize will choose the algorithm automatically, or else the arguments can be chosen with the interactive Optimization Assistant.

This is one of several Assistants in Maplet form, self-contained GUI pop-ups that pass results back to Maple. Others include the Curve Fitting Assistant (which generates a symbolic fit for hand-input data points); the Library Browser (for programmers to view, organise and edit the Maple code libraries); Matrix Builder; ODE Analyzer (for inputting equations and initial conditions); Unit Converter; and Plot Builder (which guides you through picking a suitable plot for an expression). A Maplet system is also used for the Tutors, 40 interactive tutorials for student use in pre-calculus, calculus (expanded in Maple 9.5 to multivariate calculus) and linear algebra.

Both Assistants and Tutors can be called from the Tools menu of the Standard interface, but command line works in both Standard and Classic. Which you choose is partly a matter of taste. The Classic is old-style Maple: basic worksheet functions on the toolbar and optional floating palettes for common formulae, Greek letters, and matrix and vector templates. The Standard, in contrast, has a clean modern style with graphical palettes in a permanent sidebar. However, only Classic is available for Unix, and even on Windows, Maplesoft advises using it on older systems with limited RAM. On a 500MHz Pentium with 320Mb RAM (650MHz and 256Mb is recommended) I found that the Standard ran comfortably within a single Maple window, but opening Example Worksheets, which launch a second Maple session, dropped the performance dramatically: 30 seconds to load, 30 seconds to follow a hyperlink between examples. With Classic, which uses multiple windows within a single session, the same tasks were completed nearly instantaneously.

If you can run it, though, the Standard interface has other advantages. Its help system uses a Windows-style two-pane format with a collapsible topic tree, which I find much clearer to use than the Classic's multi-pane text system. The new Dictionary is part of the help system, and either launches from a help screen tab or by direct access (for instance, '?mantissa') from the worksheet. It's mainly a guide to pure and applied mathematics terminology, also including some historical, physical and biographical entries. The peripheral coverage, however, shows signs of compression for economy. Prolific mathematicians, such as Fourier and Riemann, get separate biographies alongside things named after them. But Babbage and Turing turn up only as footnotes to their machines; 'Julia set' is there but not Gaston Julia himself; and Mandelbrot doesn't get a mention.

Maple 9.5 also includes graphics enhancements, though not as radical as MuPAD's (it already has an icon-driven control panel for editing the parameters of a finished plot). Additions, most of which work only with the Standard interface, include a cursor readout for 2D plot coordinates, scaling and panning in plots, slider controls for parameters in plots (both animation time and general variables), and extra options in the Plot Builder such as multiple plot support.

The rest, mostly, involves minor tweaks 'under the hood' and updates to existing packages. Ones that struck me as useful for science were the good range of additions to ODE and PDE solvers; a new numerical RootFinding package that improves on fsolve by finding multiple roots concurrently; and MmaTranslator, which translates Mathematica code into Maple. This has a Maplet interface, and translates both hand-typed code or a .nb file. It works very well on straight mathematics where it's just a case of translating bracket type and equivalent functions - for instance, NSolve[ ] becomes fsolve( ). But it's easy to throw it with special Mathematica functions that have no Maple equivalent.

Maple 9.5 is, overall, a nice mid-version release, with highlights in the new Optimization package, and the convenient front-menu access to important Maplet packages such as the Plot Builder. The only area for caution is the slower performance of the Standard worksheet, even on mildly underpowered hardware.