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
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:
| Release | Date (per the 12000.org Maple chronology and Wikipedia) | Relevance to Maple 11 |
|---|---|---|
| Maple V | 1990 | Long-running series of the 1990s |
| Maple 6 | December 1999 | Some NAG Numerical Libraries included |
| Maple 9 | 2003 | Java-based “Standard” interface introduced |
| Maple 10 | May 2005 | Document mode; keyword parameters and enhanced parameter declarations |
| Maple 11 | February 2007 | Smart documents, option hfloat, Threads, further parameter enhancements |
| Maple 12 | May 2008 | Successor |
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:
| Platform | Versions listed |
|---|---|
| Windows | 2000 Professional, 2000 Server, XP Pro, XP Home, 2003 Server (Pentium III 650 MHz or compatible) |
| Mac OS X | 10.4.4 or later on Intel; 10.3.9 or later on PowerPC G4/G5 |
| 32-bit Linux | Red Hat Enterprise 3 and 4; SuSE 9.2, 10.1, 10.2 |
| 64-bit Linux | SuSE Enterprise 9/10 and Red Hat Enterprise 3/4 on AMD x86-64 (Opteron or equivalent); SuSE Enterprise 9 on Intel Itanium II |
| Sun Solaris | Solaris 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
colorandcolour, or indexed names such asaxis1,axis2. Keyword parameters are now matched before positional and ordered parameters. - A new
seqmodifier lets one parameter match a sequence of zero or more arguments of a given type. - A new
dependsmodifier 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) andDifferentialGeometry(manifolds, tensor analysis, jet spaces, Lie algebras and groups). - Gröbner bases. The
Groebnerpackage 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
PDEToolscommands, and an interactive DE plotting assistant. - Symbolic improvements.
solvecould return complete solutions of parametric inequalities aspiecewiseexpressions, 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/compatibilityandupdates/Maple11/index; current help pagesparameter_classes,parameter_modifiersandoption hfloatfor 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
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.