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