by Dr. Rolf Mertig, consultant, rolfm@nikhef.nl
After several years of research and development the US-based company Wolfram Research has finished version 3.0 of the well-known computer program collection Mathematica. This substantially extended version looks very promising and continues the design idea outlined nearly ten years ago: gather and unify as much as possible programming constructs and mathematical algorithms, based on a consistent new mathematical high-level programming language - which unfortunately has no own name, it is sometimes called "Mathematica-language" or labeled by insiders as "top-level code". In fact, Mathematica 3.0 is more than a computer algebra system or a programming environment, it aims at a uniform technical computing and documentation environment, including graphics, programmable typesetting, multimedia and high-precision numerics.
With the system comes an extensive manual, "The Mathematica Book", available also independently through book-stores, like the two previous editions by Stephen Wolfram, the chief designer of Mathematica.
Two main streams of focus seemed to have lead the development in the last years: Improvements of the calculational engine, the so-called "Kernel", and a complete reconstruction and modernization of the interaction with the user, the "Notebook Interface", which allows now a 2-dimensional LaTeX-like, but WYSIWYG (what you see is what you get) editor. Usually mathematicians and other practical users of such workhorse-tools as Mathematica may disregard any fancy interface as basically superfluous and unnecessary luxory. This is a valid point of view and therefore I outline in this review the functional and algorithmic improvements of the kernel first. After a cursory description of the Notebook Interface I will shortly mention why it is indeed useful even in serious applications, quite contrary to the elitist scientific opinion about user-interfaces mentioned above - which I shared also at first while using Mathematica in research problems involving Feynman diagram calculations in particle physics.
The Calculational engine or "The Kernel"
The existing library of algorithms has been
cleaned up (i.e., a lot of bugs have been eliminated) and extended.
E.g. some previously poorly implemented part of the program
like polynomial factorization was
rewritten and extended to include factorization over extended algebraic
fields,
e. g., can now
easily be factored into
by the command
.
Polynomial manipulations in general are faster and offer extended
functionality.
Definite and indefinite symbolic integration have been extended impressively
,
including nearly all indefinite integrals, which can be expressed
in closed form and for which special functions exist in Mathematica,
found in standard integral table books.
For real-life problems it is sometimes still necessary to do some
preprocessing of the expression to be integrated, but this is in general no
problem and can be easily automatized and adapted to the specific problem
at hand.
For definite integrals involving parameters, assumptions can now be specified locally, e.g.,
Integrate[Exp[a x^2],{x,0,Infinity}, Assumptions -> a < 0].
This closes a gap which existed in comparison with other computing
systems like
Maple and Macsyma.
In fact a new gap opened, leaving Axiom, Maple and Macsyma behind in
definite integration of products of log's and special functions
(check for example the integral of The space here is too limited to go into details of all the further additions in the kernel, so I will only list some key topics; more detailed information can be found at the home-page of Wolfram Research, Inc.: www.wolfram.com or via the email address info@wolfram.com.
Using the front-end typesetting capabilities it is now also possible to produce labels and text in plots in a professional way.
The Typesetting System or "The Notebook Interface"
The idea of the new Notebook interface is to provide automatic real-time typesetting (including non-trivial line-breaking of long formulae) of expressions produced by the Mathematica kernel and to provide a WYSIWYG editor, i.e., a fully editable two-dimensional typeset input and output. There are over 700 special characters for mathematical and other technical notation. The naming of the characters is quite consistent, but need not even be remembered since all special characters can be entered in a user-friendly way clicking on predefined palettes. The strength of the Notebook Interface lies in the automatic typesetting and its programmability. It is obvious that a traditional-like two-dimensional output contains more information on the same area than the archaic ASCII output. Thus, when developping programs and checking tables or formulae it is extremely useful - and by no means luxory - to see response from the computer system in an as much as possible traditional way, so that errors can be found easier. Due to the programmable palettes a simple push-button input interface can be constructed easily. All this is also just more fun to work with.
However, probably no (relatively cheap) system in the world can currently
compete
with the established standard.
While Mathematica 3.0 incorporates automatic equation and page numbering and
referencing, it has currently no possibility to construct a bibliography with automated references. In the future this will be added as an additional Mathematica program, but right now the tools are not there.
There are also (still) no hyphenation facilities in the editor, which limits its use in writing books. It is also advisable to use a rather fast computer (> 100Mhz Pentium will do) if serious publishing work needs to be done, since the editor is quite slow.
Still, especially with the possibility of translating notebooks to HTML,
Postscript and even directly to the Notebook Interface is a truly
useful improvement.
A quite impressive application of the Notebook Interface is the vastly
improved
on-line help. In a help-browser commands can be looked up in an easy manner
and corresponding notebooks from the Mathematica book, which can be
completely
installed on-line if you have enough free disk space, are opened.
To conclude: Mathematica 3.0 is big step forward in technical computation and documentation and will certainly be used in even wider areas of industry and education.
The distributor in Holland is CAN-diensten.