Katana VentraIP

Maple (software)

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

For other uses, see Maple (disambiguation).

Developer(s)

1982

2024 (6 March 2024 (2024-03-06)) [±][1]

C, Java, Maple

Windows (7, 8 and 10), macOS, Linux

English, Japanese, and limited support in additional languages[2]

Maple's capacity for symbolic computing include those of a general-purpose computer algebra system. For instance, it can manipulate mathematical expressions and find symbolic solutions to certain problems, such as those arising from ordinary and partial differential equations.


Maple is developed commercially by the Canadian software company Maplesoft. The name 'Maple' is a reference to the software's Canadian heritage.

Overview[edit]

Core functionality[edit]

Users can enter mathematics in traditional mathematical notation. Custom user interfaces can also be created. There is support for numeric computations, to arbitrary precision, as well as symbolic computation and visualization. Examples of symbolic computations are given below.


Maple incorporates a dynamically typed imperative-style programming language (resembling Pascal), which permits variables of lexical scope.[3] There are also interfaces to other languages (C, C#, Fortran, Java, MATLAB, and Visual Basic), as well as to Microsoft Excel.


Maple supports MathML 2.0, which is a W3C format for representing and interpreting mathematical expressions, including their display in web pages.[4] There is also functionality for converting expressions from traditional mathematical notation to markup suitable for the typesetting system LaTeX.

Architecture[edit]

Maple is based on a small kernel, written in C, which provides the Maple language. Most functionality is provided by libraries, which come from a variety of sources. Most of the libraries are written in the Maple language; these have viewable source code. Many numerical computations are performed by the NAG Numerical Libraries, ATLAS libraries, or GMP libraries.


Different functionality in Maple requires numerical data in different formats. Symbolic expressions are stored in memory as directed acyclic graphs. The standard interface and calculator interface are written in Java.

History[edit]

The first concept of Maple arose from a meeting in late 1980 at the University of Waterloo.[5] Researchers at the university wished to purchase a computer powerful enough to run the Lisp-based computer algebra system Macsyma. Instead, they opted to develop their own computer algebra system, named Maple, that would run on lower cost computers. Aiming for portability, they began writing Maple in programming languages from the BCPL family (initially using a subset of B and C, and later on only C).[5] A first limited version appeared after three weeks, and fuller versions entered mainstream use beginning in 1982.[6] By the end of 1983, over 50 universities had copies of Maple installed on their machines.


In 1984, the research group arranged with Watcom Products Inc to license and distribute the first commercially available version, Maple 3.3.[6] In 1988 Waterloo Maple Inc. (Maplesoft) was founded. The company's original goal was to manage the distribution of the software, but eventually it grew to have its own R&D department, where most of Maple's development takes place today (the remainder being done at various university laboratories[7]).


In 1989, the first graphical user interface for Maple was developed and included with version 4.3 for the Macintosh. X11 and Windows versions of the new interface followed in 1990 with Maple V. In 1992, Maple V Release 2 introduced the Maple "worksheet" that combined text, graphics, and input and typeset output.[8] In 1994 a special issue of a newsletter created by Maple developers called MapleTech was published.[9]


In 1999, with the release of Maple 6, Maple included some of the NAG Numerical Libraries.[10] In 2003, the current "standard" interface was introduced with Maple 9. This interface is primarily written in Java (although portions, such as the rules for typesetting mathematical formulae, are written in the Maple language). The Java interface was criticized for being slow;[11] improvements have been made in later versions, although the Maple 11 documentation[12] recommends the previous ("classic") interface for users with less than 500 MB of physical memory.


Between 1995 and 2005 Maple lost significant market share to competitors due to a weaker user interface.[13] With Maple 10 in 2005, Maple introduced a new "document mode" interface, which has since been further developed across several releases.


In September 2009 Maple and Maplesoft were acquired by the Japanese software retailer Cybernet Systems.[14]

Support for symbolic and numeric computation with

arbitrary precision

and special mathematical function libraries

Elementary

and interval arithmetic

Complex numbers

Arithmetic, and factorization for multivariate polynomials over the rationals, finite fields, algebraic number fields, and algebraic function fields

greatest common divisors

Limits, series and

asymptotic expansions

Gröbner basis

Differential Algebra

tools including support for sparse arrays

Matrix manipulation

Mathematical and animation tools

function graphing

Solvers for , diophantine equations, ODEs, PDEs, DAEs, DDEs and recurrence relations

systems of equations

Numeric and symbolic tools for discrete and continuous including definite and indefinite integration, definite and indefinite summation, automatic differentiation and continuous and discrete integral transforms

calculus

Constrained and unconstrained local and global

optimization

including model fitting, hypothesis testing, and probability distributions

Statistics

Tools for data manipulation, visualization and analysis

Tools for probability and problems

combinatoric

Support for time-series and unit based data

Connection to online collection of financial and economic data

Tools for financial calculations including bonds, annuities, derivatives, options etc.

Calculations and simulations on random processes

Tools for including regular expressions

text mining

Tools for and linear and non-linear control systems

signal processing

tools including number theory

Discrete math

Tools for visualizing and analysing directed and undirected

graphs

Group theory including permutation and finitely presented groups

Symbolic tensor functions

Import and export filters for data, image, sound, , and document formats

CAD

Technical word processing including

formula editing

Programming language supporting , functional and object-oriented constructs

procedural

Tools for adding to calculations and applications

user interfaces

Tools for connecting to , Java, .NET, C++, Fortran and http

SQL

Tools for generating code for , C#, Fortran, Java, JavaScript, Julia, Matlab, Perl, Python, R, and Visual Basic

C

Tools for

parallel programming

Features of Maple include:[30]

Animation of function of two variables

MapleNet allows users to create pages and Java Applets. MapleNet 12 and above also allow users to upload and work with Maple worksheets containing interactive components.

JSP

an engineering simulation tool.[32]

MapleSim

Maple Quantum Chemistry Package from RDMChem computes and visualizes the electronic energies and properties of molecules.

[33]

The Maple engine is used within several other products from Maplesoft:


Listed below are third-party commercial products that no longer use the Maple engine:

– official website

Maplesoft, division of Waterloo Maple, Inc.