2
\section{What is Maxima?}
4
Maxima (pronounced \maxp\footnote{The acronym \Max\ is the corruption of the main project name MACSYMA, which stands for Project MAC's
5
SYmbolic MAnipulation System. {\it MAC} itself is an acronym, usually
6
cited as meaning Man and Computer or Machine Aided Cognition. The
7
Laboratory for Computer Science at the Massachusetts Institute of Technology
8
was known as Project MAC during the initial development of MACSYMA. The name
9
MACSYMA is now trademarked by Macsyma Inc.})
10
is a large computer program designed for the manipulation
11
of algebraic expressions. You can use \Max\
12
for manipulation of algebraic expressions involving
13
constants, variables, and functions. It can
14
differentiate, integrate, take limits, solve equations,
15
factor polynomials, expand functions in power series, solve differential
16
equations in closed form, and perform many other
17
operations. It also has a programming language that you can use to
18
extend Maxima's capabilities.
21
\subsection*{The Dangers of Computer Algebra}
25
With all this marvelous capability, however, you must bear in mind the
26
limitations inherent in any such tool. Those considering the use of
27
computers to do mathematics, particularly
28
students, must be warned that these systems are no substitute for
29
hands on work with equations and struggling with concepts. These systems
30
do not build your mathematical intuition, nor will they strengthen
31
your core skills. This will matter a great deal down the road, especially
32
to those of you who wish to break new ground in theoretical mathematics
33
and science. Do not use a computer as a substitute for your basic
36
By the same token, however, proficiency with computers and computer
37
based mathematics is crucial for attacking the many problems which
38
literally cannot be solved by pencil and paper methods. In many cases
39
problems which would take years by hand can be reduced to seconds
40
by powerful computers. Also, in the course of a long derivation, it
41
is sometimes useful for those who have already mastered the fundamentals
42
to do work in these systems as a guard against careless errors, or
43
a faster means than a table of deriving some particular result. Also,
44
in case of an error, fixing the resulting error can often be much
45
quicker and simpler courtesy of a mathematical notebook, which can
46
be reevaluated with the correct parameters in place.
48
But just as a computer can guard against human error, the human must
49
not trust the computer unquestioningly. All of these systems have
50
limits, and when those limits are reached it is quite possible for
51
bizarre errors to result, or in some cases answers which are actually
52
wrong, to say nothing of the fact that the people who programmed these
53
systems were human, and make mistakes. To illustrate the limits of
54
computer algebra systems, we take the following example: when given the
55
integral \verb@Integrate 1/sqrt(2-2*cos(x))@ \verb@from x=-pi/2 to pi/2@,
56
Mathematica 4.1 gives, with no warnings, \verb@\!\(2\ Log[4] - 2\ Log[Cos[\[Pi]\/8]]@
57
\verb@+ 2\ Log[Sin[\[Pi]\/8]]\)@ which \verb@N[%]@ evalutates numerically to
58
give 1.00984. Maxima 5.6 returns the integral unevaluated, the commercial
59
Macsyma says the integral is divergent, and Maple 7 says infinity. (Cite Maxima
61
Had the person who wished to learn the result blindly trusted most of the
62
systems in question, he might have been misled. So remember to think about
63
the results you are given. The computer is not always necessarily right,
64
and even if it gives a correct answer that answer is not necessarily complete.
66
\section{A Brief History of Macsyma}
69
The birthplace of Macsyma, where much of the original coding took place, was
70
Project MAC at MIT in the late 1960s and earlier 1970s. Project MAC was an MIT
71
research unit, which was folded into the current Laboratory for Computer
72
Science. Research support for Macsyma included the Advanced Research Projects
73
Agency(ARPA), Department of Defense, the US Department of Energy, and other
74
government and private sources.
76
The original idea, first voiced by Marvin Minsky, was to automate the kinds
77
of manipulations done by mathematicians, as a step toward understanding the
78
power of computers to exhibit a kind of intelligent behavior. \cite{MAC-M-124}
79
The undertaking grew out of a previous effort at MITRE Corp called Mathlab,
80
work of Carl Engelman and others, plus the MIT thesis work of Joel Moses on
81
symbolic integration, and the MIT thesis work of William A. Martin. The new
82
effort was dubbed Macsyma - Project MAC's SYmbolic MAnipulator. The original
83
core design was done in July 1968, and coding began in July 1969. This was long
84
before the days of personal computers and cheap memory - initial development
85
was centered around a single computer shared with the Artificial Intelligence
86
laboratory, a DEC PDP-6. This was replaced by newer more powerful machines
87
over the years, and eventually the Mathlab group acquired its own DEC-PDP-10,
88
MIT-ML running the ITS operating system. This machine became a host on the
89
early ARPANET, predecessor to the internet, which helped it gain a
90
wider audience. As the effort grew in scope and ability the general
91
interest it created led to attempts to "port" the code - that is, to
92
take the series of instructions which had been written for one machine
93
and operating system and adapt them to run on another, different
94
system. The earliest such effort was the running of Macsyma in a MacLisp
95
environment on a GE/Honeywell Multics mainframe, another system
96
at MIT. The Multics environment provided essentially unlimited address
97
space, but for various reasons the system was not favored by
98
programmers and the Multics implementation was never popular.
99
The next effort came about when a group at MIT designed and implemented a machine
100
which was based on the notion that hardware support of Lisp would make
101
it possible to overcome problems that inhibited the solution of
102
many interesting problems. The Lisp machine clearly had to support
103
Macsyma, the largest Lisp program of the day, and the effort paid off with
104
probably the best environment for Macsyma to date (although requiring something
105
of an expert perspective). Lisp machines, as well as other special
106
purpose hardware, tended to become slow and expensive compared to
107
off-the-shelf machines built around merchant-semiconductor CPUs, and
108
so the two companies that were spun off from MIT (Symbolics Inc, and
109
LMI) both eventually disappeared. Texas Instruments built a machine called
110
the Explorer bases on the LMI design, but also stopped production.
112
Around 1980, the idea of porting Macsyma began to be more interesting,
113
and the Unix based vaxima distribution, which ran on a Lisp system
114
built at the University of California at Berkeley for VAX UNIX demonstrated
115
that it was both possible and practical to run the software on less expensive
116
systems. (This system, Franz Lisp, was implemented primarily in Lisp with
117
some parts written in C.) Once the code stabilized, the new version opened up
118
porting possibilities, ultimately producing at least six variations on the
119
theme which included Macsyma, Maxima, Paramax/Paramacs, Punimax, Aljbar, and
120
Vaxima. These have followed somewhat different paths, and most were destined
121
to fade into the sunset. The two which survived obscurity, Maxima and
122
Macsyma, we will discuss below. Punimax was actually an offshoot of Maxima -
123
some time around 1994 Bruno Haible (author of clisp) ported maxima to clisp.
124
Due to the legal concerns of Richard Petti, then the owner of the commercial
125
Macsyma, the name was changed to Punimax. It has not seen much activity since
126
the initial port, and although it is still available the ability of the main
127
Maxima distribution to compile on Clisp makes further development of
130
There is a certain surprising aspect in this multiplicity of versions
131
and platforms, given how the code seemed tied to the development environment,
132
which included a unique operating system. Fortunately, Berkeley's building
133
a replica of the Maclisp environment on the MIT-ML PDP-10, using tools
134
available in almost any UNIX/C environment, helped solve this problem.
135
Complicating the matter was the eventual demise of the PDP-10 and
136
Maclisp systems as Common Lisp (resembling lisp-machine lisp), influenced by
137
BBN lisp and researchers at Stanford, Carnegie Mellon University, and Xerox, began to take
138
hold. It seemed sensible to re-target
139
the code to make it compatible with what eventually
140
became the ANSI Common Lisp standard. Since almost everything needed for
141
for Macsyma can be done in ANSI CL, the trend toward standardization
142
made many things simpler. There are a few places
143
where the language is not standardized, in particular connecting to
144
modules written in other languages, but much of the power of the
145
system can be expressed within ANSI CL. It is a trend the Maxima
146
project is planning to carry on, to maintain and expand on this
147
flexibility which has emerged.
149
With all these versions, in recent history there are two which have
150
been major players, due this time more to economics than to code
151
quality. 1982 was a watershed year in many respects for Macsyma - it
152
marks clearly the branching of Macsyma into two distinct products,
153
and ultimately gave rise to the events which have made Maxima both
154
possible and desirable. MIT had decided, with the gradual spread of
155
computers throughout the academic world, to put Macsyma on the market
156
commercially, using as a marketing partner the firm of Arthur D. Little, Inc.
157
This version was sold to the Symbolics Inc., which, depending on your
158
perspective, either turned the project into a significant marketing effort
159
to help sell their high-priced lisp machines, or was a diversionary
160
tactic to deny their competitors (LMI) this program. At the same
161
time MIT forced UC Berkeley (Richard Fateman) to withdraw the
162
copies from about 50 sites of the VAX/UNIX and VAX/VMS versions
163
of Macsyma that he had distributed with MIT's consent, until some
164
agreement could be reached for technology transfer. Symbolics hired some of
165
the MIT staff to work at Symbolics in order to improve the code,which was
166
now proprietary. The MIT-ML PDP-10 also went
167
off the Arpanet in 1983. (Interestingly, the closing of the MIT Lisp
168
and Macsyma efforts was a key reason Richard Stallman decided to form
169
the Free Software Foundation.) Between the high prices, closed
170
source code, and neglecting all platforms in favor of Lisp Machines
171
pressure came to bear on MIT to release another version to accommodate
172
these needs, which they did with some reluctance. The new version was distributed
173
via the National Energy Software Center, and called DOE Macsyma. It
174
had been re-coded in a dialect of lisp written for the VAX at MIT
175
called NIL. There was never a complete implementation. At about the
176
same time a VAX/UNIX version "VAXIMA" was put into the same library by
177
Berkeley. This ran on any of hundreds of machines running the Berkeley version of
178
VAX Unix, and through a UNIX simulator on VMS, on any VAX system.
179
The DOE versions formed the basis of the subsequent non-Symbolics
180
distributions. The code was made available through the National Energy
181
Software Center, which in its attempt to recoup its costs, charged
182
a significant fee \verb@($1-2k?).@ It provided full source, but in a
183
concession to MIT, did not allow redistribution. This prohibition seems
184
to have been disregarded, and especially so since NESC disappeared. Perhaps
185
it didn't recoup its costs! Among all the new activity centered around DOE
186
Macsyma, Prof. William Schelter began maintaining
187
a version of the code at UT Austin, calling his variation Maxima. He
188
refreshed the NESC version with a common-lisp compatible code version.
191
There were, from the earliest days, other computer algebra systems
192
including Reduce, CAMAL, Mathlab-68, PM, and ALTRAN. More
193
serious competition, however, did not arrive until Maple and Mathematica were
194
released, Maple in 1985 (Cite list of dates) and Mathematica in 1988 (cite
195
wolfram website). These systems were inspired by Macsyma in terms of their
196
capabilities, but they proved to be much better at the challenge of building
197
mind-share. DOE-Macsyma, because of the nature of its users and maintainers, never
198
responded to this challenge. Symbolics' successor Macsyma Inc, having
199
lost market share and unable to meet its expenses, was sold in the summer of
200
1999 after attempts to find endowment and academic buyers failed. (Cite Richard
201
Petti usenet post.) The purchaser withdrew Macsyma from the market
202
and the developers and maintainers of that system dispersed. Mathematica and Maple
203
appeared to have vanquished Macsyma.
205
It was at this point Maxima re-entered the game. Although it was not
206
widely known in the general academic public, W. Schelter had been
207
maintaining and extending his copy of the code ever since 1982. He
208
had decided to see what he could do about distributing it more widely.
209
He attempted to contact the NESC to request permission to distribute
210
derivative works. The duties of the NESC had been assumed in 1991 by
211
the Energy Science and Technology Software Center, which granted him
212
virtually unlimited license to make and distribute derivative works,
213
with some minor export related caveats.
215
It was a significant breakthrough. While Schelter's code had been available
216
for downloading for years, this
217
activity became legal with the release from DOE granted in Oct. 1998, and
218
Maxima began to attract more attention.
219
When the Macsyma company abruptly vanished in 1999, with no warning or
220
explanation, it left their customer base hanging. They began looking
221
for a solution, and some drifted toward Maxima.
223
Dr. Schelter maintained the Maxima system until his untimely death in
224
July, 2001. It was a hard and unexpected blow, but Schelter's obtaining
225
the go-ahead to release the source code saved the project and possibly
226
even the Macsyma system itself. A group of users and developers who
227
had been brought together by the email list for Maxima decided to try and
228
form a working open source project around the Maxima system, rather
229
than let it fade - which is where we are today.