Est. 2007 Intermediate

Maple 11

The 2007 release of Maplesoft's Maple computer algebra system, which added self-documenting smart documents, hardware-float procedures, user-level multithreading and stricter parameter declarations to the Maple programming language.

Created by Maplesoft (Waterloo Maple Inc.); Maple originated in the Symbolic Computation Group at the University of Waterloo

Paradigm Procedural, with functional and module-based programming, embedded in a computer algebra system
Typing Dynamic, with optional type declarations on parameters checked at call time
First Appeared 2007
Latest Version Maple 11.02 (late 2007); superseded by Maple 12 in May 2008

Maple 11 is the 2007 release of Maple, the computer algebra system (CAS) developed by Maplesoft of Waterloo, Ontario. Maple is a mathematics environment and a programming language at the same time. Users type expressions to factor, integrate, solve or plot, and they extend the system by writing procedures in the Maple language, the same language in which most of Maple’s own library is written.

Maple 11 is remembered for two kinds of change. For document users it added “smart documents”, where context-menu actions record themselves as editable steps. For programmers it added hardware floating-point procedures, a Threads package for user-level multithreading, and further refinements to the parameter-declaration system that Maple 10 had introduced. It was superseded by Maple 12 in May 2008. Maple itself is still developed, and the current release is Maple 2026.

History & Origins

Maple at Waterloo (1980–1988)

According to the history page of the University of Waterloo’s Symbolic Computation Group, the Maple project was conceived in November 1980. The goal was a computer algebra system “accessible to large numbers of researchers in mathematics, engineering, and science, and to large numbers of students.” The designers made space efficiency as important as speed. They chose a systems implementation language from the BCPL family rather than LISP. Maple was first written in B on a Honeywell computer, but C soon became the obvious choice. They also designed for portability to the microcomputers then coming onto the market. The group compared algorithms by the measure “space squared times CPU time”.

By the first week of December 1980 there was an operational system with limited capabilities. Within a couple of months it was supporting a Waterloo course, Introduction to Symbolic Computation. The design criteria were published at EUROCAL ‘83 as The design of Maple: A compact, portable, and powerful computer algebra system by B. W. Char, K. O. Geddes, W. M. Gentleman and G. H. Gonnet. By the end of 1983 there were about 50 external installations.

In 1984 the group arranged for WATCOM Products Inc. to license and distribute Maple. Ports to IBM VM/CMS and DEC VMS and a rewritten User’s Guide delayed distribution until about mid-1985, and by 1987 there were about 300 installations worldwide. In late 1987 the decision was made to incorporate Waterloo Maple Software, now Maplesoft. Wikipedia dates the company’s founding to 1988.

From Maple V to Maple 10

The Maple language changed a lot over the following decades. The milestones that matter for Maple 11 are:

ReleaseDate (per the 12000.org Maple chronology and Wikipedia)Relevance to Maple 11
Maple V1990Long-running series of the 1990s
Maple 6December 1999Some NAG Numerical Libraries included
Maple 92003Java-based “Standard” interface introduced
Maple 10May 2005Document mode; keyword parameters and enhanced parameter declarations
Maple 11February 2007Smart documents, option hfloat, Threads, further parameter enhancements
Maple 12May 2008Successor

Sources disagree by a few days on some of these dates. For example, the 12000.org chronology gives Maple 10 as 16 May 2005 and Wikipedia gives 10 May 2005.

Release of Maple 11 (2007)

Maplesoft announced Maple 11 on 9 January 2007 as a major release. A Digital Engineering news item from the same month said it would ship in March. Buyers who purchased or upgraded before then received Maple 10 with an automatic upgrade to Maple 11. Professional licences were listed at US$1,895, including the Maple Toolbox for MATLAB, MapleNet and a year of the Maplesoft Elite Maintenance Program.

The widely cited release date is 21 February 2007, from the 12000.org version history and Wikipedia’s version list. The Internet Archive holds a copy of Maplesoft’s Maple 11 Installation and Licensing Guide captured on 24 February 2007, which supports a February release. Maplesoft’s Maple Reporter newsletter covered the launch in its February 2007 issue and highlighted shipping in March 2007. The likeliest explanation is a February release with boxed shipments ramping up in March, but no single Maplesoft “now shipping” release was found to settle it.

Two all-platform maintenance updates followed:

  • Maple 11.01, available by July 2007 (the first archived copy of its download page is dated 11 July 2007). Maplesoft said that “with this release, Maple 11 now runs on Windows models featuring Microsoft’s most recent release, Windows Vista.” It also brought improvements to differential equations, Maplets, the Physics package, plot legends and VectorCalculus.
  • Maple 11.02, available by late 2007 (Wikipedia says November 2007, and the first archived download page is dated 1 December 2007). It added built-in language packs for Chinese, Korean and Greek and extended the MATLAB link to MATLAB 2007b, with further changes to 3-D animations, embedded components, the Physics package, solvers and data import.

Both updates were for the English edition only. A separate Maple 11 Japanese Edition had its own update pages.

Platforms

The archived February 2007 installation guide lists these supported systems for Maple 11.0:

PlatformVersions listed
Windows2000 Professional, 2000 Server, XP Pro, XP Home, 2003 Server (Pentium III 650 MHz or compatible)
Mac OS X10.4.4 or later on Intel; 10.3.9 or later on PowerPC G4/G5
32-bit LinuxRed Hat Enterprise 3 and 4; SuSE 9.2, 10.1, 10.2
64-bit LinuxSuSE Enterprise 9/10 and Red Hat Enterprise 3/4 on AMD x86-64 (Opteron or equivalent); SuSE Enterprise 9 on Intel Itanium II
Sun SolarisSolaris 8, 9, 10 on SPARC (listed under network licensing)

The guide recommended 512 MB of RAM and 650 MB of disk space on every platform. For low-memory configurations it recommended the Classic Worksheet interface over the Java-based Standard interface, and it noted that Classic was not available on the Mac or on 64-bit Linux. Windows Vista is not in the February 2007 list. Vista support arrived with the 11.01 update.

Design Philosophy

Maple’s architecture follows the original Waterloo design. A compiled kernel provides the core language and data structures, and a much larger library of mathematical algorithms is written in the Maple language itself and loaded as needed. As Wikipedia puts it, most library code has “viewable source code”. A Maple 11 user who wanted to know how a command worked could usually print the procedure and read it.

This makes the Maple language a real programming language, not a macro layer. It is dynamically typed and imperative in style. Wikipedia describes it as resembling Pascal, with lexically scoped variables. Procedures are first-class values, and modules group procedures and data into packages. In Maple 11 the plots package itself was converted from a table-based package to a module-based one.

Key Features of the Language

Procedures and control flow

A Maple procedure is written proc ... end proc and is usually assigned to a name:

fact := proc(n::nonnegint)
    local i, result;
    result := 1;
    for i from 2 to n do
        result := result * i
    end do;
    result
end proc:

fact(20);

The ::nonnegint annotation is a parameter type, checked when the procedure is called. Because Maple is a CAS, integers have arbitrary precision, so fact(20) returns the exact value 2432902008176640000.

Parameter declarations in Maple 11

Maple 10 had introduced enhanced parameter declarations and argument processing, including keyword parameters written in braces. Maple 11’s Language and System Changes page lists four further enhancements:

  • Optional parameters can raise an exception if the next argument does not match the declared type. If there are no more arguments, the default value is used without a warning.
  • Keyword parameters can have alternative spellings such as color and colour, or indexed names such as axis1, axis2. Keyword parameters are now matched before positional and ordered parameters.
  • A new seq modifier lets one parameter match a sequence of zero or more arguments of a given type.
  • A new depends modifier makes dependent types explicit, where the type of one parameter depends on the value of another.

Maplesoft’s current help pages show all four. A keyword with two spellings looks like this:

f := proc( { [color, colour]::symbol := RED } )
    sprintf("color=%a", color)
end proc:

f(colour = GREEN);    # "color=GREEN"

A seq parameter collects a run of arguments of the same type:

biggest := proc( x::seq(integer) )
    max(x)
end proc:

biggest(3, 9, 4);     # 9

And depends lets one parameter’s type refer to another parameter. Here p must be a polynomial in whichever variable is passed as v:

roots_in := proc( p::depends(polynom(integer, v)), v::symbol )
    [ solve(p = 0, v) ]
end proc:

roots_in(t^2 - 4, t);   # the roots 2 and -2

The keyword-first matching order was a deliberate break with Maple 10. The Maple 11 compatibility notes say that matching keywords after positional parameters “was rarely desirable”, based on user feedback. They also note that combining the uneval or evaln modifiers with optional or keyword parameters “sometimes produced unpredicatable results in obscure cases” in Maple 10, so some user procedures needed their declarations reorganized.

Hardware floating point: option hfloat

Before Maple 11, fast hardware-float evaluation meant running code inside the restricted evalhf environment, which allowed only floating-point values and Arrays. Maple 11 added option hfloat for procedures and an HFloat constructor. A procedure marked option hfloat converts its floating-point constants and numeric arguments to hardware floats and uses hardware arithmetic wherever possible, while keeping access to the rest of the language.

damped := proc(t, k)
    option hfloat;
    exp(-k*t) * cos(2.0*Pi*t)
end proc:

Maplesoft’s Maple 11 Efficiency Improvements page claims that “for numeric intensive procedures, this can increase performance by factors of 2 to 10 or more”. It gives no benchmark, hardware or baseline beyond the comparison with Maple’s default software floats. Treat it as a vendor estimate.

Multithreading: the Threads package

According to the same efficiency page, “Maple 11 introduces the ability to write and execute multi-threaded code”, with the new Threads package as the user interface. This was Maple’s first user-level parallelism. Maplesoft’s current multithreading documentation still warns that most of the Maple library is not thread-safe, so parallel code needs care. Maple 11 also let the gcfreq setting of kernelopts adjust garbage-collection frequency dynamically as memory use grows.

External code

On the C side, Maple 11 added MapleCheckInterrupt to the external API, so compiled code called from Maple could abort long computations when the user pressed Stop or Ctrl-C. External calls to Fortran were extended to the Intel Fortran compiler on Windows.

Mathematics in Maple 11

Maple 11 also added new mathematics. Maplesoft’s New Features index lists:

  • New packages. These were GraphTheory (over 150 functions and over 35 predefined special graphs), Physics (noncommutative variables, spacetime tensors, Einstein summation) and DifferentialGeometry (manifolds, tensor analysis, jet spaces, Lie algebras and groups).
  • Gröbner bases. The Groebner package switched its default engine to Jean-Charles Faugère’s FGb library, a C implementation of his F4 algorithm, for systems with rational coefficients and graded orders.
  • Differential equations. New elliptic solutions to classes of nonlinear ODEs, a new symmetry-based approach to exact PDE solutions with 20 new PDETools commands, and an interactive DE plotting assistant.
  • Symbolic improvements. solve could return complete solutions of parametric inequalities as piecewise expressions, and there was a new command for linear integral equations.

The Gröbner change is the clearest example of the performance work in this release. On its Efficiency Improvements page, Maplesoft computes a Gröbner basis of the cyclic-6 polynomial system in total-degree order and shows 0.018 seconds with the new default engine against 17.235 seconds with Buchberger’s algorithm (method = buchberger), both run in the same session. The page does not say what hardware or exact Maple build produced those timings, and the copy checked is the one Maplesoft hosts today, so the absolute numbers should not be read as 2007 measurements. The comparison is between two algorithms inside one Maple, not between Maple 11 and Maple 10. The same page claims that a sample GCD of polynomials with algebraic-number coefficients is “about 10 times faster than in Maple 10”, again without stating the hardware.

The Smart-Document Interface

Maple 10 had introduced document mode, where mathematics is typed in 2-D notation inside a word-processor-like document instead of at a command prompt. Maple 11 extended it with:

  • Self-documenting context menus. Right-click actions such as solve, factor or plot record each step and the variables used, so a document builds a reusable record of the calculation.
  • 2-D math in plots, in titles, labels, legends and tick marks, plus annotation tools for sketching, text, lines, arrows and shapes.
  • Slide-show mode and equation references across documents.
  • Task assistants such as the Back-Solver, which solves a formula for any of its variables, and a Favorites palette.

Digital Engineering also reported a preview of handwritten-math recognition, a special-functions assistant covering more than 200 functions, and a scientific-constants database of more than 20,000 constants and element properties. Those figures come from Maplesoft’s launch material and were not independently checked.

Evolution and Current Relevance

Maple 11 was a step in an annual or near-annual release cycle. Maple 12 followed in May 2008 and Maple 13 in April 2009. In 2009 Maplesoft was acquired by Japan’s Cybernet Systems (Wikipedia dates the acquisition to September 2009, and Maplesoft’s own news release URL is dated 30 July 2009). From 2015 onward the product has been versioned by year, and Maple 2026 was released in March 2026.

Much of what Maple 11 added is still part of the language. The Maple 11 parameter modifiers (seq, depends, alternative keyword spellings) and option hfloat are documented in today’s help system, and the Threads package is still documented alongside a Task Programming Model, which the Maple 11 release notes do not mention. Maple 11 itself is long out of support. It is no longer sold, and none of its platforms, such as Windows 2000/XP, PowerPC Mac OS X or Solaris 8–10, are current. No Docker image or free distribution of Maple 11 exists.

Why It Matters

Maple 11 is a snapshot of computer algebra at an important moment. Multi-core desktop processors had just become common, and Maple 11’s Threads package was Maplesoft’s first answer to them. Its option hfloat narrowed the long-standing gap in CAS languages between exact symbolic arithmetic and fast numerical code. Its stricter, keyword-first parameter declarations brought Maple’s procedure interface closer to what programmers expected from mainstream languages. And its Gröbner engine switch showed the pattern that has kept Maple competitive since 1980: specialist algorithm research, often from outside Maplesoft, built into the system and called through the same language users write their own code in.

Sources and Verification Notes

  • Origins, 1980–1988: University of Waterloo Symbolic Computation Group, History of Maple (scg.uwaterloo.ca/history.shtml).
  • Release dates: 12000.org A little bit of Maple history version list; Wikipedia, Maple (software); Internet Archive captures of maplesoft.com pages (Installation Guide, 24 Feb 2007; 11.01 update page, 11 Jul 2007; 11.02 update page, 1 Dec 2007).
  • Announcement, price and shipping: Digital Engineering, “Maple 11 Unveiled” (January 2007); automation.com, “Maplesoft enhances math software”; Maplesoft Maple Reporter archive.
  • Language and efficiency changes: Maplesoft online help, updates/Maple11/language, updates/Maple11/programming, updates/Maple11/efficiency, updates/Maple11/compatibility and updates/Maple11/index; current help pages parameter_classes, parameter_modifiers and option hfloat for syntax.
  • Not verified: the exact first-shipment date (February versus March 2007); exact release days for 11.01 and 11.02 (only “by” dates from archive captures); the hardware behind the timings on Maplesoft’s efficiency page; the 200-function and 20,000-constant figures from launch coverage.

Timeline

1980
The Maple project is conceived at the University of Waterloo in November 1980. By the first week of December an operational system with limited capabilities is running, implemented in B on a Honeywell computer before moving to C
1983
Char, Geddes, Gentleman and Gonnet present 'The design of Maple: A compact, portable, and powerful computer algebra system' at EUROCAL '83. By the end of 1983 there are about 50 external installations
1984
The Waterloo research group arranges for WATCOM Products Inc. to license and distribute Maple. Distribution in this form begins around mid-1985
1988
Waterloo Maple Software (now Maplesoft) is founded to market, distribute and support Maple. The Waterloo history says the decision to incorporate was made in late 1987; Wikipedia dates the founding to 1988
2005
Maple 10 introduces the document-mode interface, along with keyword parameters and the enhanced parameter-declaration facilities that Maple 11 later extends
2007
Maplesoft announces Maple 11 in January 2007. It is released on 21 February 2007 according to a widely used version chronology, and Maplesoft's newsletter highlighted its shipping in March
2007
Maple 11.01, an all-platform maintenance update, is available by July 2007. It adds support for Windows Vista along with fixes to differential equations, Maplets, the Physics package, plot legends and VectorCalculus
2007
Maple 11.02 follows in late 2007, adding built-in language packs for Chinese, Korean and Greek and extending the MATLAB link to MATLAB 2007b
2008
Maple 12 is released in May 2008, superseding Maple 11

Notable Uses & Legacy

MIT Athena

MIT's Athena computing environment made Maple 11.0 available in April 2007 (started with 'add maple' and 'maple -ver 11.0'), with plans to make it the Athena default during summer 2007.

Dartmouth College mathematics courses

Dartmouth's Mathematics 5 course pages (Winter 2008) gave students Maple 11 installers for Mac OS X and Windows, licensed through a campus network license server.

Maple Toolbox for MATLAB

Maple 11 Professional bundled the Maple Toolbox for MATLAB, which let MATLAB users call the Maple engine for symbolic work. Its 11.01 update added validation for MATLAB 2007a, and the main Maple 11.02 update extended the link to MATLAB 2007b.

Maple 11 Introductory Programming Guide

Maplesoft's 2007 programming guide by M. B. Monagan, K. O. Geddes, K. M. Heal, G. Labahn, S. M. Vorkoetter, J. McCarron and P. DeMarco taught the Maple 11 language: expressions, data structures, loops and conditionals, procedures, I/O, debugging and Maplets.

Running Today

Run examples using the official Docker image:

docker pull
Last updated: