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*.

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

SequenceAlignment to find an optimal alignment of sequences of elements

SimilarityRules,

GapPenalty for fine tuning of the optimal alignment

StringTrim to remove surrounding spaces in strings

Similarity and Distance Measures

New language primitives to take advantage of multiprocessor and parallel architecture

»
Parallelize for evaluation using automatic parallelization

ParallelTry to evaluate several expressions in parallel

SetSharedVariable,

DistributeDefinitions to synchronize data and definitions

ParallelSubmit,

WaitAll, ... to evaluate expressions concurrently

Bookmarks added for

Manipulate to specify predefined control settings

InterpolationOrder option for

Manipulate to specify smooth autorun sequence

General symbolic

Control object added in

Manipulate
"Scrollable" pane to display large content

»
"Limited" appearance for

TabView to limit the number of displayed tabs

»
Support for various appearances in

Panel
PreemptProtect option added to prevent interruption by preemptive evaluations

Mathematics and Algorithms

New comprehensive framework for discrete calculus added

»
Sum,

Product extended to support indefinite sums

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

GeneratingFunction, ... to construct generating function given

n series coefficient

SeriesCoefficient to find a series coefficient for a given generating function

DiscreteConvolve,

DirichletConvolve to convolve two discrete functions

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

BooleanFunction for general multivariate Boolean function

BooleanMinterms,

BooleanMaxterms for combination of minterms and maxterms

BooleanConvert,

BooleanMinimize for conversion among standard forms

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

PrimeNu,

PrimeOmega for number of distinct prime factors

IntegerPartitions modified to restrict number of returned partitions

DivisorSum to sum over divisors of an integer

QBinomial,

QFactorial, ...

*q*-Series related functions added

»
BarnesG,

LogBarnesG functions added

AngerJ,

DawsonF,

WeberE functions added

DiracComb utility function added

Log10,

Log2 utility functions added

LucasL polynomial support added

UnitBox,

UnitTriangle convenience functions added

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

MonomialList to extract and sort monomials from a polynomial

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

FourierSeries for a Fourier series expansion

FourierTrigSeries for expansion over

Sin and

Cos
FourierCoefficient for a coefficient in a Fourier series

FourierSequenceTransform for discrete Fourier transform

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

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

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

PauliMatrix matrix generator 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

Interpolation now allows immediate calculation of interpolated values

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

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

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

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

»
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.

ContourPlot support for simulated lighting

»
StreamPlot,

VectorPlot for vector field visualization

StreamDensityPlot,

VectorDensityPlot for combined vector and density plots

VectorPlot3D for a 3D plot of a vector field

ListCurvePathPlot for interpolation through data points

DateListLogPlot added for plotting time series data

FindCurvePath to reorder points along a curve

Visualization Options and Directives

ContourLabels modified to support labels and tooltips

Transparent color directive added

SpokenString for a spoken representation of an expression

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

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

Import
New chemical and biological formats:

"GenBank",

"PDB",

"SDF",

"SMILES",

"MMCIF",

"MOL2"
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

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

»
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

ImageHistogram,

ImageLevels for color analysis of the image

ColorQuantize for color approximation of the image

ColorCombine,

ColorSeparate to work with image channels

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

GeoPosition for symbolic representation of geodetic position

GeoGridPosition for projection of a position to a cartographic grid

FindGeoLocation to find your current position from IP

Latitude,

Longitude,

LatitudeLongitude to obtain cartographic coordinates

$GeoLocation for default geodetic location to use

Large Collections of Curated Data

AstronomicalData enhanced with many new objects and properties

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

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

Updated Make Template mechanism

»
, etc. quick-start palettes added
TooltipDelay option added

Symbolic

Placeholder construct added

Support for bookmarks in

Manipulate added

CoordinatesToolOptions option to use in tool added

»
CheckboxBar now supports delimiters, background color, and margins

Support for round corners in

Framed
Options for customization of

Row added

Systems Interfaces & Deployment

Improved Windows and Linux installers

SendMail to send email directly from

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

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

New extensive built-in framework for doing parallel computations

»
New cluster and kernel configuration tab in

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

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

WaitAll,

WaitNext, ... for control of concurrent evaluations

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