Summary of New Features in 7.0

The introduction of Mathematica 6 in 2007 represented a revolutionary redefinition of Mathematica. Arriving only 18 months after Mathematica 6, Mathematica 7 represents another major R&D achievement, building on more than 20 years of Mathematica development, broadening and deepening almost every major area of the system, and adding several key new areas to the domain of Mathematica.

Core Language

open all close all

List & Expression Manipulation

Gather, GatherBy, SplitBy for generalized list partitioning and grouping

DeleteDuplicates to remove elements without sorting

ArrayPad to pad multidimensional arrays with arbitrary expressions

LengthWhile, TakeWhile extended to arbitrary heads

Ratios for successive ratios of elements in list

Programming & Development

Support for themed groups of messages »

Check, Quiet, On, Off support named message groups

DiscreteIndicator conditional function added

String-Related Functions

SequenceAlignment to find an optimal alignment of sequences of elements

SimilarityRules, GapPenalty for fine tuning of the optimal alignment

LongestCommonSequence, LongestCommonSubsequence added

HexadecimalCharacter pattern in StringExpression added

StringTrim to remove surrounding spaces in strings

Similarity and Distance Measures

DamerauLevenshteinDistance string distance added

SmithWatermanSimilarity, NeedlemanWunschSimilarity measures added

ChessboardDistance added

Parallel Computing

New language primitives to take advantage of multiprocessor and parallel architecture »

Parallelize for evaluation using automatic parallelization

ParallelTry to evaluate several expressions in parallel

ParallelMap, ParallelTable, ParallelSum, ... parallel analogues added

SetSharedVariable, DistributeDefinitions to synchronize data and definitions

ParallelSubmit, WaitAll, ... to evaluate expressions concurrently

Dynamic Interactivity

Interactive Manipulation

Bookmarks added for Manipulate to specify predefined control settings

InterpolationOrder option for Manipulate to specify smooth autorun sequence

UnsavedVariables support in DynamicModule, Interpretation, etc.

General symbolic Control object added in Manipulate

Symbolic Controls

New ButtonBar, ChoiceButtons controls added

Added support for Delimiter in CheckboxBar and RadioButtonBar

"Scrollable" pane to display large content »

"Limited" appearance for TabView to limit the number of displayed tabs »

Support for various appearances in Panel

ImageMargins option for RadioButtonBar added

UnsavedVariables option for DynamicModule added

PreemptProtect option added to prevent interruption by preemptive evaluations

Mathematics and Algorithms

Discrete Calculus

New comprehensive framework for discrete calculus added »

Sum, Product extended to support indefinite sums

DifferenceDelta, DiscreteShift, DiscreteRatio for discrete differences and ratios

SumConvergence added to find conditions for convergence of sums

ContinuedFractionK to construct a continued fraction from a formula for terms

RSolve modified to support recurrences and discrete functional equations

RecurrenceTable to generate values from recurrences and functional equations

DifferenceRoot for symbolic representation of solutions of difference equations

DifferenceRootReduce to simplify DifferenceRoot objects

FunctionExpand extended to expand DifferenceRoot and DifferentialRoot objects

GeneratingFunction, ... to construct generating function given n th series coefficient

SeriesCoefficient to find a series coefficient for a given generating function

DiscreteConvolve, DirichletConvolve to convolve two discrete functions

DirichletTransform added

FourierSequenceTransform discrete Fourier transform

ZTransform, InverseZTransform expanded to support multidimensional sequences

Integer Sequence Functions

FindSequenceFunction to find closed form for integer sequence

FindGeneratingFunction to find generating function given series coefficients

FindLinearRecurrence to find minimal linear recurrence reproducing the sequence

LinearRecurrence to generate a sequence given recurrence coefficients

Boolean Computation

Conjunction, Disjunction, Equivalent, Xnor functions added

BooleanFunction for general multivariate Boolean function

BooleanMinterms, BooleanMaxterms for combination of minterms and maxterms

BooleanConvert, BooleanMinimize for conversion among standard forms

BooleanCountingFunction, Majority counting functions added

BooleanTable to generate truth table for a given function

BooleanVariables for a list of Boolean variables in expression

SatisfiabilityCount, SatisfiableQ to check if a function can ever be true

SatisfiabilityInstances to find values that make the function true

TautologyQ to test if the function is identically true

Number Theory

PrimeNu, PrimeOmega for number of distinct prime factors

IntegerPartitions modified to restrict number of returned partitions

New functions PrimeZetaP, RiemannR, DirichletL added

MangoldtLambda added

LiouvilleLambda added

DirichletCharacter added

FactorialPower added

Hyperfactorial added

DivisorSum to sum over divisors of an integer

Mathematical Functions

QBinomial, QFactorial, ... q-Series related functions added »

Haversine, InverseHaversine added

BarnesG, LogBarnesG functions added

HurwitzZeta, HurwitzLerchPhi added

AngerJ, DawsonF, WeberE functions added

Gudermannian, InverseGudermannian added

BernsteinBasis, BSplineBasis, BezierFunction, BSplineFunction added

DiracComb utility function added

Log10, Log2 utility functions added

SquareWave, TriangleWave, SawtoothWave utility functions added

LucasL polynomial support added

FiniteGroupCount, FiniteAbelianGroupCount added

UnitBox, UnitTriangle convenience functions added

HeavisideLambda, HeavisidePi distributions added

Symbolic Computation

Tensor derivative support in D added

"CompensatedSummation" method for Accumulate added to control error

Regularization option for Sum and Product to specify regularization type

RSolve now supports many types of functional equations

Wronskian and Casoratian functions added

Support for multiple methods in Sum and Product

Support for transcendental and general equations in Root

Option to RootApproximant allows control of the "simplest" approximation

Test for irreducible polynomials IrreduciblePolynomialQ added

CoefficientRules, FromCoefficientRules operations on polynomials added

MonomialList to extract and sort monomials from a polynomial

Assumptions and Method options for SeriesCoefficient added


ArgMin, ArgMax to find a value that provides extremal value

MaxValue, MinValue to obtain an extremal value

FindArgMin, FindArgMax to try to find extremal point given its approximation

FindMinValue, FindMaxValue to try to find extremal value

NArgMax, NArgMin, NMaxValue, NMinValue to find extremum numerically

Fourier Analysis

FourierSeries for a Fourier series expansion

FourierSinSeries, FourierCosSeries for expansion over Sin and Cos

FourierTrigSeries for expansion over Sin and Cos

FourierCoefficient for a coefficient in a Fourier series

FourierCosCoefficient, FourierSinCoefficient for coefficients in Sin or Cos series

FourierSequenceTransform for discrete Fourier transform

InverseFourierSequenceTransform added

DiracComb, HeavisidePi, HeavisideLambda added

DiscreteConvolve, Convolve operators added

General Numerics

FindDivisions added to divide interval into "nice" sub-intervals

Differential Equations

Delay differential equation support added in NDSolve

DifferentialRoot for symbolic representation of solutions to linear differential equations

Wronskian to test linear independence of functions or ODE solutions

DifferentialRootReduce to simplify DifferentialRoot objects

Matrices & Linear Algebra

RealBlockDiagonalForm option to allow real-valued diagonal blocks

DiagonalMatrix modified to allow off-diagonal elements and padding

IdentityMatrix now allows rectangular matrices and sparse arrays

ConstantArray and DiagonalMatrix now support sparse arrays

UpperTriangularize, LowerTriangularize added to extract parts of matrix

SymmetricMatrixQ test added

PauliMatrix matrix generator added

CrossMatrix, DiamondMatrix, DiskMatrix, BoxMatrix shape matrices added

GaussianMatrix added

LeviCivitaTensor for a totally antisymmetric tensor

Statistics & Data Analysis

FindCurvePath for reconstruction of sampled curves

Median, Quartiles, QuartileDeviation, ... added support for built-in distributions

LinearModelFit, NonlinearModelFit to construct regression models from data

LogitModelFit, ProbitModelFit, GeneralizedLinearModelFit added

Interpolation now allows immediate calculation of interpolated values

InverseGammaDistribution, InverseChiSquareDistribution added

LevyDistribution added

StudentTDistribution extended to have multiple parameters

ExpectedValue extended to support sampled data

Standardize to adjust constant shift and variance of the data

FittedModel for symbolic representation of fitted models

DesignMatrix to construct the design matrix for a linear model

Entropy function to measure randomness in data added

ContraharmonicMean added

Visualization and Graphics

Graphics Language and Primitives

BSplineCurve, BezierCurve primitives for curves of any degree

BSplineSurface primitive for NURB surface of any degree

BernsteinBasis, BSplineBasis spline basis functions added

SplineDegree, SplineKnots, SplineWeights, SplineClosed, ... options for splines

Tube, Cone graphics primitives added

Multi-Sphere support added

Precision support for UnitVector added

Arrow modified to support 3D graphics and Tube, Line, and other primitives

Charting Functions

Histogram, Histogram3D for 2D and 3D histograms

BarChart, BarChart3D to display data as bars

PieChart, PieChart3D to display data as part of the whole

SectorChart, SectorChart3D to display data with variable sector sizes and radii

RectangleChart, RectangleChart3D to display data as rectangles of variable sizes

BubbleChart, BubbleChart3D to display data as bubbles

Primitives for arbitrary chart labels and legends added »

Options for chart styling and layout added »

Chart annotations using ChartLegends, ChartLabels, Placed, Legended added

Chart Element Schemes palette added

Geometric Transformations

Rotate extended to allow more rotation specifications

Generalized Rotate outside Graphics

Seamless conversion of Rotate constructs into explicitly transformed coordinates

Graphics and Options and Directives

CapForm, JoinForm to customize polygon edges

RoundingRadius for rounded corners for Rectangle, Framed, etc.

CoordinatesToolOptions option for Graphics added »

2D & 3D Visualization

ContourPlot support for simulated lighting »

StreamPlot, VectorPlot for vector field visualization

StreamDensityPlot, VectorDensityPlot for combined vector and density plots

LineIntegralConvolutionPlot, ListLineIntegralConvolutionPlot added

VectorPlot3D for a 3D plot of a vector field

ListStreamDensityPlot, ListVectorDensityPlot added

ListVectorPlot, ListVectorPlot3D, ListStreamPlot added

ListCurvePathPlot for interpolation through data points

SphericalPlot3D enhanced

DateListLogPlot added for plotting time series data

FindCurvePath to reorder points along a curve

Visualization Options and Directives

VertexColors, VertexNormals options for Line, Point, etc.

DefaultLabelStyle, DefaultFrameStyle, DefaultAxesStyle, ... default options added

ContourLabels modified to support labels and tooltips

StreamPoints, StreamScale, StreamStyle, StreamColorFunction, ... added

VectorColorFunction, VectorPoints, VectorScale, VectorStyle, ... added

Transparent color directive added

PolarAxesOrigin, PolarAxes, PolarGridLines, PolarTicks options added


SpokenString for a spoken representation of an expression

Speak to emit spoken form of an expression using computer's sound system

Data Manipulation

Import & Export

Added support for secure socket layer (SSL, https) in Import

New chemical and biological formats: "GenBank", "PDB", "SDF", "SMILES", "MMCIF", "MOL2"

New GIS formats: Shape ("SHP"), "TIGER", "SDTSDEM", "SP3"

Image Processing & Analysis

New image processing functionality with many functions added »

Image as symbolic representation of an image added

ImageQ to test if the expression represents an image

ImageDimensions, ImageChannels, ImageType, ... to obtain image properties »

ImageResize, ImageRotate, ImageReflect for basic image operations »

ImagePad, ImageTake, ImageCrop added

Thumbnail for a thumbnail version of an image

ImageData to extract raster data as array

ImageAdjust to adjust brightness, contrast etc.

Sharpen, Blur image operations added

ImageEffect for special photographic effects

ImageConvolve, ImageCorrelate, ... for image filtering »

GaussianFilter, LaplacianFilter, GradientFilter, ... added »

DiskMatrix, BoxMatrix, DiamondMatrix, ... convolution kernels added

Dilation, Erosion, Opening, Closing, ... morphological operations added »

HitMissTransform, TopHatTransform, ... morphological transforms added »

ImageCompose to overlay images

ImagePartition, ImageAssemble to split and combine parts of an image

ImageAdd, ImageSubtract, ImageApply, ImageMultiply, ... for image arithmetic »

ImageHistogram, ImageLevels for color analysis of the image

ColorQuantize for color approximation of the image

ColorCombine, ColorSeparate to work with image channels

GeodesicDilation, GeodesicErosion morphology functions added

MorphologicalComponents added


Functions for geodetic computations added »

DMSList, DMSString for symbolic representation of angles

FromDMS to convert between representations of angular values

GeodesyData for information on reference ellipsoids and datums

GeoProjectionData for information on cartographic projections

GeoDistance, GeoDestination, GeoDirection for geodetic measurements

GeoPosition for symbolic representation of geodetic position

GeoGridPosition for projection of a position to a cartographic grid

GeoPositionENU, GeoPositionXYZ added

FindGeoLocation to find your current position from IP

Latitude, Longitude, LatitudeLongitude to obtain cartographic coordinates

$GeoLocation for default geodetic location to use

Computable Data

Large Collections of Curated Data

AstronomicalData enhanced with many new objects and properties

New FiniteGroupData, FiniteGroupCount, FiniteAbelianGroupCount

DictionaryLookup added support for many languages

New GenomeData for properties of human genes

New GenomeLookup for fast lookup of human genome sequences

New ProteinData for information about protein structure and function

New WeatherData for current and historical weather measurements

Curator-checked ChemicalData with extended entities and properties

New GeodesyData for data on geodetic coordinate systems

GraphData enhanced with many new properties

PolyhedronData enhanced with many new properties

Notebooks and Documents

General Interface Features

Improved startup user experience

New horizontal insertion cursor between cells

New handling of interactive style settings for cells

Improved heuristics and display of special functions in TraditionalForm

UsingFrontEnd allows using front end functionality from a standalone kernel

Right-click contextual menus added for many notebook elements

NotebookPrint can be used with arbitrary expressions

ActiveStyle, BaseStyle new style option for Hyperlink

Updated Make Template mechanism »

Basic Math Assistant , etc. quick-start palettes added

TooltipDelay option added

Symbolic Placeholder construct added

Support for bookmarks in Manipulate added

CoordinatesToolOptions option to use in Get Coordinates tool added »

CheckboxBar now supports delimiters, background color, and margins

Support for round corners in Framed

Options for customization of Row added

Formatting & Styling

DefaultAxesStyle, DefaultFrameStyle, ... default options added

Systems Interfaces & Deployment

Core System

Improved Windows and Linux installers

SendMail to send email directly from the Wolfram System

SystemOpen to open any kind of file in the associated external program

SystemInformation improved

Uncompress supports arbitrary head

Files & File Names Operations

FindFile to locate the path to an existing file

AbsoluteFileName to find the full absolute name of an existing file

ExpandFileName to expand a file name to an absolute form

FileExistsQ to check if a file exists

DirectoryQ to check if a directory exists

FileNameSplit, FileNameJoin, ... to manipulate names of files and directories »

FileBaseName, FileExtension to extract parts of a file name

FileHash to compute a hash code for the contents of a file

FileDate, SetFileDate to get and set access, creation, and modification times for a file

NotebookFileName for the name of the current evaluation notebook

Parallel Computing

New extensive built-in framework for doing parallel computations »

New cluster and kernel configuration tab in Edit Preferences

LaunchKernels to start preconfigured worker kernels

Parallelize for automatic parallel expression evaluation

ParallelTry, ParallelEvaluate to evaluate expressions concurrently

CriticalSection locking mechanism added

General ParallelCombine utility added

ParallelMap, ParallelTable, ParallelDo, ... added for parallel evaluation

Kernels, $ConfiguredKernels, $KernelCount, AbortKernels ... for kernel management

KernelObject for symbolic representation of available worker kernel

ParallelSubmit to queue expressions for evaluation

EvaluationObject symbolic representation of a queued expression

DistributeDefinitions to share definitions among kernels

SetSharedVariable, SetSharedFunction added

$SharedFunctions, $SharedVariables for list of shared objects

WaitAll, WaitNext, ... for control of concurrent evaluations

$TimedOut as a result of operations that could not be completed in the given time frame