Symaxx - frontend for Maxima computer algebra system
#################################################################################
### Important news 2001/04/06. . . . . . . . . . . . . . . . . . . . . . . . .###
### There has been a complete rewrite of Symaxx, called Symaxx/2. . . . . . . ###
### It is much more flexible (can even handle Maxima programs) and also . . . ###
### looks better. There is even a manual. I suggest you download . . . . . . .###
### 'Symaxx2_Prexx_tar.gz' instead of the old 'Symaxx_1.xx_tar.gz'. . . . . . ###
### It runs quite stable, but bug reports are always welcome. . . . . . . . . ###
#################################################################################
General download site
Maxima is a very powerful and efficient computer algebra system,
which has been around for more than 30 years. Recently, it was released under
a GNU public license.
It has its homepage here
(source and binary for Linux/Intel), the download site is here
(maxima-386-linux-5.2-bin.tgz).
For convenience, I have 'mirrored' a RPM archive here, which also contains a more recent version.
(maxima-5.4-1.i386.rpm).
Here are installation instructions.
Its main disadvantage is, that it runs in ASC-text
mode only.
I started to write 'Symaxx'
to provide a graphical user interface for Maxima
as a platform for doing 'everyday mathematics' in an efficient, simple
and 'safe' way.
As a guideline,
I try to keep it as simple as possible. People doing 'heavy duty' computing
will use the established (commercially available) tools anyway.
Symaxx provides those 5 % of features, that are needed to do 95 % of your
work.
Then, it has some 'features' that you won't find anywhere else:
It sketches out the 'information flow' of the calculation with arrows.
Each time, you refer to an existing equation, an arrow is drawn.
It keeps track on changes: If you change an equation, all the 'dependent'
expressions (those that refer to it) will be marked with a red warning
sign.
You can add documentation text to each equation and each variable.
The 'Variable Manager' lists all variable names
and associated properties (real, complex, integer, greater than something,..)
Here is a screenshot:
Another example is here.
Brief description:
In general, Symaxx leaves all the calculating to Maxima.
The user enters mathematical expressions and Maxima commands.
Every equation gets a unique identifier:
It can be referred to by writing @ID@, as in .
This looks a little bit cryptic at first glance, but in the end it just
means 'insert the equations 6 and 7 verbatim into the ev(...,numer)-command
(which calculates a numeric result, because of ,numer).
In a similar way, the statement
inserts expressions 1,2,3,4 into expression 5 (,eval means: insert
repeatedly into the first argument, so order does not matter).
Each of the @ID@-statements results in an arrow drawn to the corresponding
equation.
If a 'referenced' expression is changed, a red warning sign lights up:
It means, that the result is not up-to-date anymore:
Every 'thing' that you see on the screen has two slots: One for the
equation (which is actually displayed), and one for an (optional) Maxima-command:
The 'equation'-slot is labeled 'Expr', the Maxima-command-slot
'Max Expr'.
Entering a Maxima-command or right-clicking the gray area runs
the command through Maxima, and puts the result into the 'equation'
slot.
Plotting
There is a very basic interface to Gnuplot for 2-D plots on linear
and logarithmic scales and export to EPS format. Also, Maxima's plotting
functions can be invoked from Symaxx. Here is an example for Gnuplot:
'Instant Solve'
I'm planning a couple of features that simplify algebraic 'everyday' manipulations.
Instant
Solve is the first one to be implemented:
Highlight any subexpression, press F10, and you get the selected expression
isolated on the left side. Simple as that! (of course: 'garbage in -> garbage
out')
Now there is also a Tools-window, which contains some of the most important Maxima-commands (more info
here).
Documentation:
Look at the Tutorial and the example files, that come with the distribution.
They should help to get you started.
I'll write a 'real' manual sooner or later, but if somebody volunteers..?
Anyway, much more important is the original Maxima
documentation.
Help
There is a monitored discussion forum at sourceforge.net (I get a copy
of any question via e-mail).
Requirements:
Linux, but it should run under other Unix systems, too. Recently, I got it running under Solaris on a Sun.
A working Maxima installation, which you obtain by installing the
binary distribution (actually, you can even view the tutorial without Maxima).
Here are instructions for compiling Maxima yourself!
Perl Tk, which you can get from CPAN.org or from your Linux distribution. If you'd like to install it, I have written some Tk installation instructions.
Implementation details
Symaxx is 100 % perl Tk. But don't laugh, speed is definitely not
an issue, at least not on my P I 266.
It should be mentioned, that Symaxx starts a new Maxima session each time you evaluate an expression (t<<1 sec). Therefore, it can't happen that you assign a value to a variable by accident and then wonder, why your results are strange.
License
It's free. Artistic license, same as 'perl'.
Status
Late Beta. I use it myself and squash all the bugs I can find,
but you'll probably want to verify your results (and this never hurts,
anyway).
Motivation
Mostly frustration with licensing politics of commercially available
systems.
Contact
You can contact me here,
Please *do* report bugs! If I don't know of a bug, I can't fix it.
If you would like to contribute some example
or documentation-please, go ahead!
Download
Download is available here
(look at the version numbers and pick the highest one).
Installation
Move 'Symaxx_1.xx_tar.gz' to some directory (for example /home/yourname/symaxx).
gzip -dc Symaxx_1.xx_tar.gz | tar -xvf -
chmod a+x symaxx
run with
symaxx
Load 'Tutorial.mth' and go to the top-left corner.
Also look at the one-line examples available through the Tools-menu at the end of the 'Tools'-list. There you find a handful of real-world, down-to-earth one-line examples.
If you want to link to symaxx, you have to edit the file 'symaxx' and put the absolute path in the right place - see comments.
BUGS
Yes.
If you find one, please put it on the forum or send a mail!
This page is hosted at .