In this section:

About Mathematica

Mathematica and economics

Tips and tricks

About us

Version 4-watch

Contents

Introduction

Version 4.0 of Mathematica was released in 1999. This page lists a few of the new features for the benefit of version 3.0 users who haven't yet updated. At some stage, this page will become a version 5 watch.

Enhancements to the Front-end

Spelling correction
The new Mathematica spellcheck works both on text cells and code cells: it assumes that you capitalise each word in a LongMathematicaStyleObjectName.
Automatic indenting of brackets
This isn't completely clear from the documentation so far - but now, in addition to highlighting matching brackets (as in version 3), unmatched brackets, braces and parentheses are coloured magenta. This is good news!
Improved Importing and Exporting
Mathematica's TeX and HTML export have both improved, MathML is supported, and even PDF using the Export[] function. For graphics, Mathematica now handles GIF, TIFF, WMF and JPEG files (and can convert between them -- batch file image conversion in the making?)
Real-time 3D Graphics / OpenGL
Version 4 offers an Experimental context which includes OpenGL real-time 3D. Based on a recent job posting from Wolfram to the MathGroup mailing list, there is going to be more extensive support of OpenGL in the front end.
Character replacement
Version 4 replaces characters as you type. For example, as shown it reformats TeX and LaTeX as the proper logo symbols.
* Inline Cells
Short Names and Abbreviations of certain functions
Selection by style of cell
Ken Levasseur reported to MathGroup: With a Mac you can select all cells of any style by holding the option key down while clicking on any one cell of that style. I don't think that the Windows version had that in V3.0, but I think it's in 4.0.

Enhancements to the Kernal and calculation functionality

"Packed array" technology
This seems to have happened. Check out this page for a discussion. This page also shows the ultra-high precision calculations. This Q&A page includes a table showing the relative speeds of version 3 and 4 on simple calculations on large matrices. See also the table on the page you are reading now for improvements relative to Gauss.
Trace of a matrix using tr[matrix]
Changed Implementation of Fourier[]
Apparently this will speed many things up.
  • For the general case, it will still use a mixed radix algorithm
  • For lengths which are products of small primes (also 4,8,16 and 9) it uses a self-sorting prime factor algorithm, (after Temperton), which in many cases is faster that even the radix 2 with bit reversal.
  • For large prime factors it uses an algorithm which is about three times slower than for a nearby factorable number, but much faster than the usual O(n^2) algorithm for prime factors.
Algebraic Fourier and Integral Transforms now in the kernel
These were previously in separate standard packages.
Specifying whether something is Real or an Integer is now possible
This eliminates one of the most common questions asked on MathGroup.
Enhanced simplification and function expansion

Table of results for Numerical Calculations by Stefan Steinhaus

The table below shows the time Mathematica took to complete a particular task as a ratio to the time taken by Gauss in his tests. So if Mathematica was as fast as Gauss, the number will be one. If Mathematica was faster (slower) on that test, the number will be less (greater) than one. A decline in the ratio between 1997 and 1999 means that Mathematica has improved relative to Gauss, not just in absolute terms.

Test in 1997 Report 1997 Ratio 1999 Ratio Test in 1999 Report
400*400 random matrix^1000 1.82 0.67 1000x1000 random matrix^ 1000
Eigenvalues of a 300*300 random matrix 1.02 0.422 Eigenvalues of a 600x600 random matrix
Inverse of a 500*500 random matrix 5.17 1.75 Inverse of a 1000x1000 random matrix
Sorting 500,000 random values 13.23 0.614 Sorting of 2000000 random values
Creating 800*800 Toeplitz matrix 109.0 2.747 Creation of a 1400x1400 Toeplitzmatrix
Cholesky decomposition of a 500*500 random matrix 226.25 1.11 Cholesky decomposition of a 1000x1000 random matrix
Creation of a 500*500 cross-product matrix 2.1 1.03 1000x1000 crossproduct matrix
FFT over 100,000 random values 3.32 0.3033 FFT over 1048576 (= 2^ 20) random values
Gaussian error function over a 500 * 500 random matrix 13.77 5.62 Gaussian error function on a 1000x1000 random matrix
Gamma function on a 600*600 random matrix 35.17 10.57 Gamma function on a 1000x1000 random matrix
Linear regression over a 500 * 500 random matrix >150 0.241 Linear regression over a 1000x1000 random matrix
More Numerics
The following has been gleaned by comparing the 1997 and 1999 versions of Stefan Steinhaus' report on various mathematical software at http://www.scientificweb.com/ncrunch.
  • Markov models are now listed as being available, in an add-on package, after being listed as unavailable in version 3.
  • A large array of filtering functions are listed as being available in an add-on, including Haar, Daubechies, Coiflet, Chebyshev , Butterworth and Bessel. Hodrick-Prescott filters are listed as being unavailable, but of course you can always use my version .
  • Bootstrapping and Monte Carlo simulations are listed as being in an add-on.
  • Strangely, neural networks are listed as unavailable in version 4 despite being available as an add-on in version 3 (in fact there is a whole book about them). This is consistent with the previously observed tendency GAUSS-focussed authors to get things wrong about Mathematica.
  • There now seems to be a Fibonacci[] function.

New Packages

Standard Atmospheres
For calculations of atmospheric pressure at difference altitudes
Resonance Absorption Lines
A chemical application
BlackBody Radition
The physicists will like this one, presumably
MultiDiscreteDistributions
Includes the multinomial, negative multinomial, and multiple Poisson