Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Web Development

Mathematica 7: A Review

Mike Riley is a Dr. Dobb's contributing editor. He can be contacted at [email protected]

When I was a freshman in high school, my older -- and much smarter -- brother Frank was in all the math AP classes. For the holidays, Frank successfully convinced my parents to buy him a Texas Instruments TI-59 calculator. At that time, the TI-59 was the most advanced and expensive portable calculator on the market. It had more buttons than I had ever seen before on a hand-held device, but its coolest feature was that it was programmable. By running custom magnetic strips through the built-in card reader, programs could be easily reloaded into the calculator. The buttons, the strips, the 10-digit display and the speed at which this little machine could almost instantaneously calculate factorials just blew me away. The TI-59 sparked my interest in both mathematics and programming in a way no other technology had in the past. While I had seen Apple IIs and TRS-80s at the store, those computers were priced in the stratosphere, especially for a 14-year old kid in the late '70s.

Fast forward to the holidays of 2008, where my own kids use technologies light-years more powerful than that now quaint programmable calculator. My 14-year old daughter has a multi-core Linux PC in her bedroom that she uses for work and play, while her brother who is two years older casually uses an Apple TV to browse the expanding universe of YouTube videos. And just before the Thanksgiving holiday this year, a parcel arrived from Wolfram Research that recaptured the enthusiasm and excitement I experienced with the TI-59 almost 30 years ago. Mathematica 7 is Wolfram's most advanced, sophisticated, and feature-packed release yet, and has so much algorithmic power and flexibility packed into its bits that you could spend a lifetime mastering the millions of computational permutations it is capable of.

Mathematica 7 ships with over 500 new features beyond its predecessor (Mathematica 6) that was released over a year ago. Rather than list all 500+ additions, I focus on the highlights oriented toward the programming and engineering audience that dominates Dr. Dobb's readership. Each version of Mathematica delivers a plethora of new capabilities with a few that stand far above the addition of a new function or graph type. In Mathematica 6, the killer feature was the Manipulate function which brought to life the once static results of numeric and graphic output. Manipulate lets you add dynamic variables to a statement which would render the output with sliders, buttons and drop-down lists that could be used to quickly visualize changes to variable input. The other huge step forward in that version was Wolfram's release of its Mathematica Player, which allowed compiled notebooks to be freely distributed and interacted with using the Mathematica Player client. And because this client runs on the same platforms (Windows, Mac OSX, and Linux) that Mathematica does, cross-platform code execution is a worry-free reality.

[Click image to view at full size]
Figure 1: Mathematica 7's new 3-D Spline support delivers OpenGL-driven data visualization.

Mathematica 7 also has its share of killer features, but if I had to pick two areas, they would be image manipulation and parallel computation. Over 15 new graphic primitives have been added, ranging from BezierCurves to SplineKnots. An number of chart types, including Bar, Bubble, Histogram, Pie, and Sector, and their 3D counterparts, have been added. Numerous 2D and 3D functions have been added or enhanced to visualize Contour, Stream and Vector Density Plots as well as various visualization directives and options such as Transparent, PolarAxes, and ContourLabels.

[Click image to view at full size]
Figure 2: The new VectorPlot function can be used for such requirements as visualizing fluid dynamics.

But the coolest data visualization features are Mathematica 7's new image processing and analysis functions. These let you treat images just like any other data type and manipulate them accordingly. The new functions like ImageCompose, ImagePartition, MorphologicalComponents, and TopHatTransform go far beyond the other Photoshop or GIMP-like image functions also included in Mathematica, such as Blur, ImageResize, ImageReflect, ImageRotate, Sharpen and the various filters like Charcoal, OilPainting and SaltPepperNoise that can be applied to image data via the ImageEffect function. Using these new image analysis and transformation functions, you could leverage Mathematica's power to create powerful image manipulation workflows within minutes. Everything from medical imagery to satellite topology photos could be interrogated, manipulated and rapidly evaluated for various research and commercial purposes.

[Click image to view at full size]
Figure 3: The new image manipulation features allow images to be treated as any other data type.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.