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 .