FAQ

Kris Katterjohn Leo Butler Jaime E. Villate
There is a newer version of this page. You can find it here.

(Website Home)

Frequently Asked Questions about Maxima

1. Introduction and installation of Maxima

What is Maxima?

Maxima is a descendant of DOE Macsyma, which had its origins in the late 1960s at MIT. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was the first of a new breed of computer algebra systems, leading the way for programs such as Maple and Mathematica. This particular variant of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under GPL. It was his efforts and skill which have made the survival of Maxima possible, and we are very grateful to him for volunteering his time and skill to keep the original Macsyma code alive and well. Since his passing a group of users and developers has formed to keep Maxima alive and kicking. Maxima itself is reasonably feature complete at this stage, with abilities such as symbolic integration, 3D plotting, and an ODE solver, but there is a lot of work yet to be done in terms of bug fixing, cleanup, and documentation. This is not to say there will be no new features, but there is much work to be done before that stage will be reached, and for now new features are not likely to be our focus.

What license is Maxima under?

It is licensed under GPL and hosted at SourceForge.net.

How can I download Maxima?

You can choose among the different downloading options in the Download page, which will redirect to the appropriate sourceforge.net download page. The code is available as prepackaged Windows and Linux binaries as well as in source code form.

How do I install Maxima?

  • Windows. Install a package from the Maxima-Windows section of the Maxima file manager.
  • Linux. If your distribution uses RPM packages, install a package from the Maxima-Linux section of the Maxima file manager. For other Linux distributions, build a package from source as explained below.
  • MacOSX. Install a DMG package from the Maxima-MacOS section of the Maxima file manager
  • Building from source. Decompress in your system a package from the Maxima-source section of the Maxima file manager and follow the instructions in the INSTALL file.
  • Other operating systems. Try to build a package from source as explained in the previous item.

2. General

Who’s maintaining it now?

Since William Schelter’s passing a group of users and developers has formed to keep Maxima under active development. There are currently 25 developers who can make changes to the source code. To get in touch with them, the preferred channel is the mailing list

Is it free?

Yes. Maxima is distributed under the GNU General Public License, with some export restrictions from the U.S. Department of Energy.

Can I post a copy of Maxima in my local server for my students/customers to easily download it?

Yes. You can distribute Maxima, provided you keep the copyright notice intact.

Who wrote it?

Maxima is a descendant of DOE Macsyma, which had its origins in the late 1960s at MIT. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was the first of a new breed of computer algebra systems, leading the way for programs such as Maple and Mathematica. This particular variant of Macsyma was maintained by William Schelter from 1982 until he passed away in 2001. In 1998 he obtained permission to release the source code under GPL. It was his efforts and skill which have made the survival of Maxima possible, and we are very grateful to him for volunteering his time and skill to keep the original Macsyma code alive and well.

What's the difference among Macsyma, DOE-Macsyma, Symbolics Macsyma and Maxima?

The system developed at MIT was called Macsyma (although the nicknames MACSYM and MAXIMA were sometimes used since filenames were limited to six uppercase-only characters in sixbit character code).

Symbolics licensed Macsyma from M.I.T. and registered ”Macsyma” as a trademark at some point (presumably with M.I.T.’s permission).

When Macsyma source ceased to be freely available, pressure was put on M.I.T. (mostly by Fateman) to transfer the code which had been developed largely with Department of Energy (DOE) funding to the DOE, which then released it to others under certain conditions.

That codebase was called DOE Macsyma. I don’t know what legal rights the DOE had to the name Macsyma as opposed to the codebase, but presumably the non-commercial users of DOE Macsyma wanted to avoid any legal wrangling around the name, and started using the name Maxima at some point (but I don’t know when that was).

So the short answer as I understand it is that Maxima is simply the most recent name for the branch that started under the name DOE Macsyma.

What is the appropriate way to cite Maxima in an academic context?

We suggest something like

Maxima.sourceforge.net. Maxima, a Computer Algebra System.
Version 5.30.0 (2013). http://maxima.sourceforge.net/

(or replace the version number and release year, if you are using a different version).

If you use Bibtex for your citations, we recommend that you add the following entry in your bibtex database:

@ELECTRONIC{maxima,
  author = {Maxima},
  year = {2013},
  title = {Maxima, a Computer Algebra System.  Version 5.30.0},
  address = {http://maxima.sourceforge.net/},
  url = {http://maxima.sourceforge.net/},
  owner = {maxima},
  timestamp = {2013.04.03}
}

What Lisp implementations will Maxima work with?

Clisp, CMUCL, Scieneer Common Lisp (SCL), GCL (ANSI-enabled only) and SBCL can compile and execute Maxima. Allegro Common Lisp, OpenMCL and ECL might also work, but have not
been fully tested. Ports to other ANSI lisps should be straightforward and are welcome; please contact the developers if you are interested in working on a port.
See also the Lisp Implementations page.

Installation problems

While installing the Maxima RPM file in Linux, I get an error that "maxima_exec" is a missing dependency; how can I solve that?

You must install at least two rpms, maxima and maxima_exec. Go back to the SourceForge file manager and download a maxima-exec package and install that at the same time as the maxima package.

While installing RPM files file from Maxima, I get messages about failed dependencies on stuff other than maxima_exec; what does that mean?

The Maxima RPMs were created on a specific Linux system. Other systems have different versions of various libraries. To install Maxima, the library versions must be the same.
You might be able to find rpms for your specific Linux version via the Maxima ports page.
You can recompile Maxima on your system. The rpms created that way have the right dependencies for your system.

To recompile Maxima, you need a Lisp implementation. I’ll recommend Clisp.
Once you have Clisp installed, download the Maxima src.rpm from the SF file manager. Unpack it and launch rpmbuild to create the rpm files:

$ sudo rpm -ih maxima-5.9.3.src.rpm
$ cd /usr/src/local   # or whereever it is that rpm puts the source code
$ sudo rpmbuild -bb SPECS/maxima.spec

Then install the rpm files which were created in /usr/src/local/RPMS.

You almost certainly need superuser privileges to write files to /usr/src/local, hence the use of sudo. Perhaps you can get your friendly system administrator to handle it.

If you create RPMs, we can host them in the Sourceforge file manager; it would be helpful to anyone running the same Linux flavor.

The installation notes at http://maxima.sourceforge.net/download.html say a little bit more about rebuilding Maxima. In particular, follow the links to README.lisps and README.rpms.

4. Run-time problems

In Windows, I can launch the Maxima GUI (either Xmaxima or WxMaxima), but then there is a timeout message and I don’t get any response when I enter some expression.

  • Problem 1. Blocked socket. Maxima GUI programs talk to the computational engine through a socket. Antivirus and/or firewall programs see that and try to block it (because some malicious programs open sockets too).
    Solution: Try to find the control panel for the antivirus and/or firewall. Find the Maxima GUI on the list of blocked programs and disable blocking for it. The GUI program might appear as ”Tcl/Tk” (the name of the GUI toolkit for Xmaxima).
  • Problem 2. Data execution prevention (DEP). Some Lisp implementations execute code in data areas of memory. Windows DEP sees that and blocks it (because some malicious programs execute code in data areas too).
    Solution: Include the full program path of the Maxima executable, for example: C:\Program Files\Maxima-5.10.0\lib\maxima\5.10.0\binary-gcl\maxima.exe in the list of DEP exceptions (Control Panel → System → Advanced → Performance → DEP)

In Linux, I get a message about an invalid entry for localhost in /etc/hosts file

Make sure there is an entry that matches: 127.0.0.1 localhost, otherwise wxmaxima and/or xmaxima will be unable to resolve "localhost" to a valid IP and then fail with "maxima terminated".

In MacOS, wxmaxima starts but every attempt to execute Maxima commands reports "Not connected to maxima!"

Probably your best bet is to report this problem on the wxMaxima user forum.
There are reports that wxMaxima does not work if Maxima is compiled with clisp or sbcl. If you are using one of those Lisp versions, you might want to try compiling Maxima with cmucl.