[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Axiom volunteer work ideas

From: Tim Daly
Subject: [Axiom-developer] Axiom volunteer work ideas
Date: Sat, 27 Feb 2010 03:36:37 -0500
User-agent: Thunderbird (Windows/20090302)

(Note that I have copied the mailing list)

Well my todo list is way too long to print.
Here are some interesting ideas that I have "in the queue" to do.
If one of them interests you let me know.

Interactive 3D Object in Axiom documentation

Axiom is being rewritten into a literate programming style.
That means that all of the source code will be in pdfs.
There is a site:
which allows someone to put a 3D object into a pdf yet keep
it interactive. Axiom can create 3D images. I'd like to be able
to put one of those images into the Axiom pdfs. If you look at
Volume 1, Chapter 10 it shows how to draw 3D objects.
Demonstrate an Axiom 3D graph being used interactively in a pdf.

Axiom Browser and Canvas work

Axiom documentation is in "hyperdoc" which is a browser-like program
we wrote in the late 70s. This program will start when Axiom starts.
I have been moving this documentation from hyperdoc to html so it
can be used in a standard browser. All of the "glue code" exists.
The new firefox version of Axiom documentation is in Volume 11
but it is incomplete. However, there are plans to be able to use
the new HTML5 Canvas tag to do the standard Axiom graphics. This
involves several problems:

 How do I do interactive graphics in a canvas?
 Demonstrate generating the data from Axiom and displaying it in the
 Axiom browser

 How do I generate graphviz "dot" graphs in a canvas?
    In particular, I now generate the full graph of Axiom's
    Categories (see:
    but I want the graph automated in a page.
 Demonstrate creating and drawing a graphviz dot graph from Axiom
 and displaying it in the Axiom browser

Latex in HTML

Axiom uses MathML for direct output but it uses latex everywhere else.
It would be useful to be able to do latex output in html. See:
Demonstrate pages in Volume 11 that render static text in latex in
a browser window

Fortran Library work

If you want something more mathematical there are a large number of
fortran library routines that were part of the commercial version of
Axiom but were not released to open source. See Volume 10.3 and look
for the ASP domains. These are Axiom "covers" for the NAG fortran
library. There are 2 possible paths to explore, either to find a
standard fortran library and rewrite the cover routines or find
algorithms (e.g. runga-kutta integration) and write lisp routines
to fit "under the covers" (Axiom is written in Lisp).
Demonstrate the lisp or fortran routine being used from Axiom.

Lisp in a Browser

Axiom is lisp code. How can I get lisp interactivity directly
into the browser? As in:
Demonstrate putting the Axiom command prompt in a browser
(note that this works in the Axiom browser for limited cases)


Axiom generates Fortran output. I want to change this to also
generate Python output. See )set output fortran on
I want to be able to do )set output python on
Demonstrate automatically constructing a python program from Axiom

Fast Fourier Transform

I have a need for FFTs. Figure out how to implement this in Lisp:
Demonstrate an FFTW in Axiom called from the command line


These four systems all do trigonometric functions but they have
different branch cuts. I have done some investigation and found
that Axiom and Maple tend to agree and Mathematica and Macsyma
tend to agree but the two sets give different answers. This can
be changed so that Axiom falls into the Mathematica/Macsyma camp.
We need to figure out which trig identities agree and which do not.
Demonstrate the differences between Axiom and the other systems
in a systematic way.

CATS (Computer Algebra Test Suite)

Axiom has 2 major test suites in the src/input subdirectory.
One is the Schaums integration set and the other is the Kamke
differential equation set. There is a great need for other
fully worked problems based on published standards. Pick an
area of mathematics or otherwise and write a test suite.
(I found 4 errors in the Schaums published values so be sure
to check the published results as well as Axiom's results).
One useful test suite would be on infinite sequences and series.
See src/input/schaum* and src/input/kamke*
Demonstrate a new test suite.

If you want to do something fun there is a book called
CRC Standard Curves and Surfaces by David von Seggarn ISBN 0-8493-0196-3
that has both the equations and the curves. You can draw multiple
curve in a single viewport. See:
Demonstrate a new test suite of graphs from the book.

Bronstein's PMINT

Manuel Bronstein wrote an integration routine in 95 lines of code.
Rewrite this in Axiom as an input file. See:
See also: src/input/pmint.input.pamphlet
Demonstrate the correct solutions of integrals.

Line Breaking

One of the problems we have is the length of the output line.
This will vary by the width of the browser screen so we need
a line-breaking algorithm. Write a javascript implementation of:
Demonstrate a variable length dynamic line break in a browser.


For a more mathematical problem, write a new pamphlet file
(see src/input/* for examples) that computes the matrix pseudo-inverse:
Demonstrate pseudo-inverses with a test suite.

Immutable Data Structures

Axiom needs to implement immutable data structures as I have
several plans in the works for parallel programming. Look at
Clojure (a lisp language), document their 32-trie copy-on-write
algorithms, and make common lisp implementations. See:
Purely Functional Data Structure by Chris Okasaki ISBN 0-521-66350-4
Demonstrate immutable data structures in common lisp.

3D Solid Models

I am currently working with a robot I built. I want to be able
to model the robot and the parts it manipulates in Axiom. In
particular, I'd like to interface to a 3D solid model program
from Axiom with some general purpose interface so they can both
communicate. See
for possible candidates. Also see the domain DHMATRIX in
volume 10.3 for the DH-matrix code which I use for the robot.
Demonstrate creating a 3D model from Axiom

Functionally Active Parse Structures

Currently Axiom parses to data structures. This is "old school".
I want to parse to lisp functions, not data (See the MIT lectures on Structure and
Interpretation of Computer Programs. The book is available at
The key idea is that there are no data structures, everything is
a function. I want to parse directly to executable lisp code rather
than to data structures. I have a plan for parallel work off this.
Demonstrate a parser that returns compiled, executable lisp code.

Note that the last item is pure research, a small piece of my
proviso research effort.

I could go on but it is 3am here.
Feel free to ask questions.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]