Maple(ID:909/map006)MapleB. Char, K. Geddes, G. Gonnet, M. Monagan & S. Watt, U Waterloo, Canada 1980. Symbolic math system, Uni of Waterloo Maple chosen because it is Canadian, not an acronym Waterloo Maple Software. Related languages
References: in [ACM SIGACT-SIGPLAN] Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1982 , Albuquerque, Mexico view details in [ACM SIGACT-SIGPLAN] Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1982 , Albuquerque, Mexico view details (The name "Maple" is not an acronym but rather it was simply chosen as a name with a Canadian identity.) The primary motivation for the development of Maple when the project started in December, 1980, was to provide user accessibility to symbolic computation. In particular, there was a need for a system which large numbers of students could use simultaneously on a time-sharing mainfxame computer, or alternatively on microprocessor-based workstations. This general goal has translated into two subsidiary goals: to be portable across several kinds of computer systems, and to provide an efficient system for both student and general-purpose scientific usage. In order to pursue the former goal, Maple was implemented with a package of macros using the Margay macro processor written at Waterloo. The macros are designed to be easily expanded into "BCPL-Iike" languages. Currently, Maple runs in B on Honeywell GCOS-8 systems, and in C on DEC VAX/Berkeley Unix, Spectrix 68000/Xenix and DEC 20/TOPS20 systems. Demonstration ports have also been made to Pixel and SUN Microsystems computers. There are several ways in which Maple was designed to meet the latter goal. One is through compactness. Maple initially loads a small kernel of modest power, implemented completely in the system implementation language (e.g., B or C). This kernel contains facilities such as integer and rational arithmetic, simple polynomial manipulation, the garbage collector, prettyprinting, file input/output and the user command interpreter. Most of the other capabilities of the system are contained in external library routines which are automatically loaded as required. These library routines are coded in the user-level language, which is Algol-like in syntax. in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details Maple The name of this program gives its country of origin away. Unlike many of the other math toolbox purveyors - even those with similar roots in academia - Waterloo Maple Software (Waterloo, Ontario) has yet to fully embrace the wider world of business and industry, although it shows signs of changing its orientation. Maple is the direct descendent of a system for symbolic mathematical computation developed at the University of Waterloo beginning in 1980. Written in C, the program consists of a system kernel and a library of mathematical procedures. The kernel supports basic facilities such as polynomial arithmetic and the software's programming language. The library code is loaded as required to perform the 2000-plus functions offered. "It's a measurement and modeling tool, useful to anyone solving equations, doing integrations and higher-level math," said Janet E. Cater, marketing manager. "Maple is probably much more versatile and much more sound than Mathematica, it's just not so pretty," commented Kahan. "The people at Maple have been very diligent about fixing bugs," he added. At present, Maple runs on 42 different platforms ranging from personal computers to parallel processors. Versions for the Amiga, Atari, and Macintosh cost $395 (the Macintosh version is also sold through Brooks-Cole, Scotts Valley, Calif.), while versions for MS-DOS and the DEC Vaxstation's VMS cost $695. Most Unix versions (including those for 386/ix, Apollo, HP 9000/300, and Sun workstations) cost $2495. A single Cray 2 license costs $5195. Waterloo has promised that the Unix versions of the next major release of the software will support X-Windows. Mathematica. Introduced to great fanfare two years, ago, Mathematica, from Wolfram Research Inc. (Champaign, Ill.), has consistently garnered more attention, even in academic circles, than either of its older and more established direct competitors. Most of the press the program has gotten has been quite positive. in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details Another symbolic solver, Maple, can also trace its origins to an educational institution. Work on Maple began at the University of Waterloo, Ontario. Waterloo Maple Software distributes versions of Maple for 80386-based IBM PC- and PS/2-compatible computers, workstations, and mainframes. In North America, Brooks-Cole Publishing distributes a Macintosh-based version. Actually, there are two Macintosh versions, one for 68000-based machines with at least 1M byte of RAM and another for Macs with a 68030 [microprocessor]. Brooks-Cole ships both versions in one box, however. in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details very readable manual for Maple. However, many people do not do symbolic calculations every day and may need to use the program only occasional- ly. This is a manual for those people. It is totally incomplete, it has examples instead of general syntax description of the commands, it only accounts for a small fraction of the existing functions. The basic idea is: look here for the function you need, and if there is not enough information about it here (there typically won't be) use the on-line documentation or read the real manual. The Maple-version described here is version V. Caveat: since the functions are mostly explained by examples, most of them have more facilities and are more powerful than it appears here. in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details A BRIEF HISTORICAL SKETCH ------------------------- The development of systems for symbolic mathematical computation first became an active area of research and implementation during the decade 1961-1971. . . . . . . To put the decade 1961-1971 into perspective, let us recall that FORTRAN appeared about 1958 and ALGOL in 1960. These two languages were designed primarily for numerical mathematical computation. Then in 1960/1961 came the development of LISP, a language for list processing. LISP was a major advancement on the road to languages for symbolic computation. An operation such as symbolic differentiation which is foreign to FORTRAN and ALGOL is relatively easy in LISP. (Indeed this is one of the standard programming assignments for students first learning LISP.) As will be noted later, several computer algebra systems were written in LISP. 1961-1966 --------- In 1961, James Slagle at M.I.T. wrote a LISP program called SAINT for Symbolic Automatic INTegration. This was one of the earliest applications of LISP to symbolic computation and it was the first comprehensive attempt to program a computer to behave like a freshman calculus student. The program was based on a number of heuristics for indefinite integration and it performed about as well as a good calculus student. One of the first systems for symbolic computation was FORMAC, developed by Jean Sammet, Robert Tobey, and others at IBM during the period 1962-1964. It was a FORTRAN preprocessor (a PL/I version appeared later) and it was designed for the manipulation of elementary functions including, of course, polynomials and rational functions. Another early system was ALPAK, a collection of FORTRAN-callable subroutines written in assembly language for the manipulation of polynomials and rational functions. It was designed by William S. Brown and others at Bell Laboratories and was generally available about 1964. A language now referred to as Early ALTRAN was designed at Bell Laboratories during the period 1964-1966. It used ALPAK as its package of computational procedures. There were two other significant systems for symbolic computation developed during this period. George Collins at IBM and the University of Wisconsin (Madison) developed PM, a system for polynomial manipulation, an early version of which was operational in 1961 with improvements added to the system through 1966. The year 1965 marked the first appearance of MATHLAB, a LISP-based system for the manipulation of polynomials and rational functions, developed by Carl Engelman at M.I.T. It was the first interactive system designed to be used as a symbolic calculator. Included among its many firsts was the use of two-dimensional output to represent its mathematical output. The work of this period culminated in the first ACM Symposium on Symbolic and Algebraic Manipulation held in March 1966 in Washington, D.C. That conference was summarized in the August 1966 issue of the Communications of the ACM. 1966-1971 --------- In 1966/1967, Joel Moses at M.I.T. wrote a LISP program called SIN (for Symbolic Integrator). Unlike the earlier SAINT program, SIN was algorithmic in approach and it was also much more efficient. In 1968, Tony Hearn at Stanford University developed REDUCE, an interactive LISP-based system for physics calculations. One of its principal design goals was portability over a wide range of platforms, and as such only a limited subset of LISP was actually used. The year 1968 also marked the appearance of Engelman's MATHLAB-68, an improved version of the earlier MATHLAB interactive system, and of the system known as Symbolic Mathematical Laboratory developed by William Martin at M.I.T. in 1967. The latter was a linking of several computers to do symbolic manipulation and to give good graphically formatted output on a CRT terminal. The latter part of the decade saw the development of several important general purpose systems for symbolic computation. ALTRAN evolved from the earlier ALPAK and Early ALTRAN as a language and system for the efficient manipulation of polynomials and rational functions. George Collins developed SAC-1 (for Symbolic and Algebraic Calculations) as the successor of PM for the manipulation of polynomials and rational functions. CAMAL (CAMbridge Algebra system) was developed by David Barton, Steve Bourne, and John Fitch at the University of Cambridge. It was implemented in the BCPL language, and was particularly geared to computations in celestial mechanics and general relativity. REDUCE was redesigned by 1970 into REDUCE 2, a general purpose system with special facilities for use in high-energy physics calculations. It was written in an ALGOL-like dialect called RLISP, avoiding the cumbersome parenthesized notation of LISP, while at the same time retaining its original design goal of being easily portable. SCRATCHPAD was developed by J. Griesmer and Richard Jenks at IBM Research as an interactive LISP-based system which incorporated significant portions of a number of previous systems and programs into its library, such as MATHLAB-68, REDUCE 2, Symbolic Mathematical Library, and SIN. Finally, the MACSYMA system first appeared about 1971. Designed by Joel Moses, William Martin, and others at M.I.T., MACSYMA was the most ambitious system of the decade. Besides the standard capabilities for algebraic manipulation, it included facilities to aid in such computations as limit calculations, symbolic integration, and the solution of equations. The decade from 1961 to 1971 concluded with the Second Symposium on Symbolic and Algebraic Manipulation held in March 1971 in Los Angeles. The proceedings of that conference constitute a remarkably comprehensive account of the state of the art of symbolic mathematical computation in 1971. 1971-1981 --------- While all of the languages and systems of the sixties and seventies began as experiments, some of them were eventually put into "production use'' by scientists, engineers, and applied mathematicians outside of the original group of developers. REDUCE, because of its early emphasis on portability, became one of the most widely available systems of this decade. As a result it was instrumental in bringing computer algebra to the attention of many new users. MACSYMA continued its strong development, especially with regard to algorithm development. Indeed, many of the standard techniques (e.g. integration of elementary functions, Hensel lifting, sparse modular algorithms) in use today either came from, or were strongly influenced by, the research group at M.I.T. It was by far the most powerful of the existing computer algebra systems. SAC/ALDES by G. Collins and R. Loos was the follow-up to Collins' SAC-1. It was a non-interactive system consisting of modules written in the ALDES (Algebraic DEScription) language, with a translator converting the results to ANSI FORTRAN. One of its most notable distinctions was in being the only major system to completely and carefully document its algorithms. A fourth general purpose system which made a significant mark in the late 1970's was muMATH. Developed by David Stoutemyer and Albert Rich at the University of Hawaii, it was written in a small subset of LISP and came with its own programming language, muSIMP. It was the first comprehensive computer algebra system which could actually run on the IBM family of PC computers. By being available on such small and widely accessible personal computers, muMATH opened up the possibility of widespread use of computer algebra systems for both research and teaching. In addition to the systems mentioned above, a number of special purpose systems also generated some interest during the 1970's. Examples of these include: SHEEP, a system for tensor component manipulation designed by Inge Frick and others at the University of Stockholm; TRIGMAN, specially designed for computation of Poisson series and written in FORTRAN by W. H. Jeffreys at University of Texas (Austin); and SCHOONSCHIP by M. Veltman of the Netherlands for computations in high-energy physics. Although the systems already mentioned have all been developed in North America and Europe, there were also a number of symbolic manipulation programs written in the U.S.S.R. One of these is ANALITIK, a system implemented in hardware by V. M. Glushkov and others at the Institute of Cybernetics, Kiev. 1981-1991 --------- Due to the significant computer resource requirements of the major computer algebra systems, their widespread use remained (with the exception of muMATH) limited to researchers having access to considerable computing resources. With the introduction of microprocessor-based workstations, the possibility of relatively powerful desk-top computers became a reality. The introduction of a large number of different computing environments, coupled with the often nomadic life of researchers (at least in terms of workplace locations) caused a renewed emphasis on portability for the computer algebra systems of the 1980's. More efficiency (particularly memory space efficiency) was needed in order to run on the workstations that were becoming available at this time, or equivalently, to service significant numbers of users on the time-sharing environments of the day. This resulted in a movement towards the development of computer algebra systems based on newer "systems implementation'' languages such as C, which allowed developers more flexibility to control the use of computer resources. The decade also marked a growth in the commercialization of computer algebra systems. This had both positive and negative effects on the field in general. On the negative side, users not only had to pay for these systems but also they were subjected to unrealistic claims as to what constituted the state of the art of these systems. However, on the positive side, commercialization brought about a marked increase in the usability of computer algebra systems, from major advances in user interfaces to improvements to their range of functionality in such areas as graphics and document preparation. The beginning of the decade marked the origin of MAPLE. Initiated by Gaston Gonnet and Keith Geddes at the University of Waterloo, its primary motivation was to provide user accessibility to computer algebra. MAPLE was designed with a modular structure: a small compiled kernel of modest power, implemented completely in the systems implementation language C (originally B, another language in the "BCPL family'') and a large mathematical library of routines written in the user-level MAPLE language to be interpreted by the kernel. Besides the command interpreter, the kernel also contained facilities such as integer and rational arithmetic, simple polynomial manipulation, and an efficient memory management system. The small size of the kernel allowed it to be implemented on a number of smaller platforms and allowed multiple users to access it on time-sharing systems. Its large mathematical library, on the other hand, allowed it to be powerful enough to meet the mathematical requirements of researchers. Another system written in C was SMP (Symbolic Manipulation Program) by Stephen Wolfram at Caltech. It was portable over a wide range of machines and differed from existing systems by using a language interface that was rule-based. It took the point of view that the rule-based approach was the most natural language for humans to interface with a computer algebra program. This allowed it to present the user with a consistent, pattern-directed language for program development. The newest of the computer algebra systems during this decade were MATHEMATICA and DERIVE. MATHEMATICA is a second system written by Stephen Wolfram (and others). It is best known as the first system to popularize an integrated environment supporting symbolics, numerics, and graphics. Indeed when MATHEMATICA first appeared in 1988, its graphical capabilities (2-D and 3-D plotting, including animation) far surpassed any of the graphics available on existing systems. MATHEMATICA was also one of the first systems to successfully illustrate the advantages of combining a computer algebra system with the easy-to-use editing features on machines designed to use graphical user-interfaces (i.e. window environments). Based on C, MATHEMATICA also comes with its own programming language which closely follows the rule-based approach of its predecessor, SMP. DERIVE, written by David Stoutemyer and Albert Rich, is the follow-up to the successful muMATH system for personal computers. While lacking the wide range of symbolic capabilities of some other systems, DERIVE has an impressive range of applications considering the limitations of the 16-bit PC machines for which it was designed. It has a friendly user interface, with such added features as two-dimensional input editing of mathematical expressions and 3-D plotting facilities. It was designed to be used as an interactive system and not as a programming environment. Along with the development of newer systems, there were also a number of changes to existing computer algebra systems. REDUCE 3 appeared in 1983, this time with a number of new packages added by outside developers. MACSYMA bifurcated into two versions, DOE-MACSYMA and one distributed by SYMBOLICS, a private company best known for its LISP machines. Both versions continued to develop, albeit in different directions, during this decade. AXIOM, (known originally as SCRATCHPAD II) was developed during this decade by Richard Jenks, Barry Trager, Stephen Watt and others at the IBM Thomas J. Watson Research Center. A successor to the first SCRATCHPAD language, it is the only "strongly typed'' computer algebra system. Whereas other computer algebra systems develop algorithms for a specific collection of algebraic domains (such as, say, the field of rational numbers or the domain of polynomials over the integers), AXIOM allows users to write algorithms over general fields or domains. As was the case in the previous decade, the eighties also found a number of specialized systems becoming available for general use. Probably the largest and most notable of these is the system CAYLEY, developed by John Cannon and others at the University of Sydney, Australia. CAYLEY can be thought of as a "MACSYMA for group theorists.'' It runs in large computing environments and provides a wide range of powerful commands for problems in computational group theory. An important feature of CAYLEY is a design geared to answering questions not only about individual elements of an algebraic structure, but more importantly, questions about the structure as a whole. Thus, while one could use a system such as MACSYMA or MAPLE to decide if an element in a given domain (such as a polynomial domain) has a given property (such as irreducibility), CAYLEY can be used to determine if a group structure is finite or infinite, or to list all the elements in the center of the structure (i.e. all elements which commute with all the elements of the structure). Another system developed in this decade and designed to solve problems in computational group theory is GAP (Group Algorithms and Programming) developed by J. Neubueser and others at the University of Aachen, Germany. If CAYLEY can be considered to be the "MACSYMA of group theory,'' then GAP can be viewed as the "MAPLE of group theory.'' GAP follows the general design of MAPLE in implementing a small compiled kernel (in C) and a large group theory mathematical library written in its own programming language. Examples of some other special purpose systems which appeared during this decade include FORM by J. Vermaseren, for high energy physics calculations, LiE, by A.M. Cohen for Lie Algebra calculations, MACAULAY, by Michael Stillman, a system specially built for computations in Algebraic Geometry and Commutative Algebra, and PARI by H. Cohen in France, a system oriented mainly for number theory calculations. As with most of the new systems of the eighties, these last two are also written in C for portability and efficiency. Research Information about Computer Algebra ------------------------------------------- Research in computer algebra is a relatively young discipline, and the research literature is scattered throughout various journals devoted to mathematical computation. However, its state has advanced to the point where there are two research journals primarily devoted to this subject area: the "Journal of Symbolic Computation" published by Academic Press and "Applicable Algebra in Engineering, Communication and Computing" published by Springer-Verlag. Other than these two journals, the primary source of recent research advances and trends is a number of conference proceedings. Until recently, there was a sequence of North American conferences and a sequence of European conferences. The North American conferences, primarily organized by ACM SIGSAM (the ACM Special Interest Group on Symbolic and Algebraic Manipulation), include SYMSAM '66 (Washington, D.C.), SYMSAM '71 (Los Angeles), SYMSAC '76 (Yorktown Heights), SYMSAC '81 (Snowbird), and SYMSAC '86 (Waterloo). The European conferences, organized by SAME (Symbolic and Algebraic Manipulation in Europe) and ACM SIGSAM, include the following whose proceedings have appeared in the Springer-Verlag series "Lecture Notes in Computer Science": EUROSAM '79 (Marseilles), EUROCAM '82 (Marseilles), EUROCAL '83 (London), EUROSAM '84 (Cambridge), EUROCAL '85 (Linz), and EUROCAL '87 (Leipzig). Starting in 1988, the two streams of conferences have been merged and they are now organized under the name ISSAC (International Symposium on Symbolic and Algebraic Computation), including ISSAC '88 (Rome), ISSAC '89 (Portland, Oregon), ISSAC '90 (Tokyo), ISSAC '91 (Bonn) and ISSAC '92 (Berkeley). ----------------------------------------------- Professor Keith Geddes Symbolic Computation Group Department of Computer Science University of Waterloo Waterloo ON N2L 3G1 CANADA in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details This introductory article contains basic information for the new user of Maple who wants to spend only a couple of hours learning Maple. This document covers how to use Maple as a calculator, recovering from errors, Maples notation for arithmetic, mathematical constants and functions, how to get help, how to solve equations, do linear algebra, and to define and plot mathematical functions in two and three dimensions. For each section there are several examples. At the end there are some exercises which you can try to solve. Note, we have not attempted to show any of Maples programming facilities in this article. Getting Started You should be able to start Maple by typing maple. The Maple logo should appear almost immediately. After the Maple prompt > has appeared, Maple is ready to receive your input commands. You should see Note, on workstations running X Windows, you can run a version of Maple which has a more sophisticated user interface called xmaple. Just type xmaple instead of maple. After a few seconds the Maple session window should appear which contains the Maple logo followed by the Maple prompt. You can now enter a command. External link: online at UIC in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details 4.3) a symbolic computation language. Using these programs, you can use a computer to perform many mathematical operations typically required in a calculus course. This package also serves to demonstrate the abilities of symbolic manipulation as applied to typical problems in mathematics. The package is available only on CMS and requires the use of the language Maple in which all the programs in the package are writ- ten. CALCULUS is supported by Neil Berger in the Department of Mathematics, Statistics and Computer Science. Please send an electronic note to U34625@UICVM.UIC.EDU with any comments, questions or problems you may have. Please note that symbolic computation may use many units. In particu- lar, the integration of very complicated functions is fairly expensive, and should not be undertaken lightly. When doing such problems using CALCULUS, you are cautioned to monitor the resources used in a problem, and use you computer units wisely. in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details Waterloo Maple Software clearly regards its new release as a major upgrade. About five years ago, it shifted to what it called Maple V and gave subsequent releases subnumbers, so, for example, the most recent version that we reviewed was Maple V, Release 5.1. Waterloo has dropped the V and called the new version Maple 6. The most significant change is a total revamping of the underlying engine for numeric calculations to address what was the weakest element of this symbolic math and graphical powerhouse. Other improvements include Excel connectivity, new programming constructs, and a new Structured Data Browser. Numeric improvements focus both on the basics and on numeric linear algebra. The most noteworthy change in the latter area is the inclusion of the celebrated algorithms from Numerical Algorithms Group (NAG; www.nag.com) that give you access to these algorithms in the setting of arbitrary precision real numbers and also using hardware floating-point versions for speed. Special matrices include not only routines for sparse matrices (an area pioneered by MatLab) but also banded and triangular matrices. Matrix import/export has been made flexible enough to support the differing formats favored by C and FORTRAN. Maple has extended its IEEE standards for numeric forms to arbitrary precision and exact arithmetic. It now includes special handling for events like division by zero (using NaN concepts) and has added a special new data type for complex numbers that allows the handling of both sides of a branch cut. in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details For many professionals, the biggest mathematical need is number crunching, the ability to perform complex calculations, typically on large data sets. While Maple and Mathematica have vastly improved their number-crunching speeds over the years, there is no question that for serious numerical calculations you want to use either custom C programming or else use programs written in one of the mathematical programming languages that are matrix based. The leading such language is MATLAB ($1,900 for the base product; toolboxes run from $500-$1000 or more each), which has oodles of functions and lots of toolboxes containing additional specialized routines and functions. With several toolboxes added, MATLAB can be quite pricey, which makes the $265 O-Matrix an attractive alternative to consider. In compatibility mode, O-Matrix will run Matlab mfiles that use functions in the extensive O-Matrix library, which includes Matrix and special functions, ODE solvers, and 2D and 3D plots. Another Matrix language is Octave. in Journal of Guidance, Control, and Dynamics, Vol. 14, No. 6, Nov/Dec 1991 view details Resources |