The table below shows a few preliminary benchmarks obtained from
,
and compares them with equivalent programs in Axiom and C.
The
figures were obtained for compilation to both C
and Lisp target environments.
Program S1 is a symbolic computation benchmark, performing polynomial
arithmetic to compute a Hilbert function of a monomial ideal [3].
This test compares
on Lisp and C bases against the
same computation in Axiom. This test is not applicable to C so no
figures appear in those positions in the table.
Program N1 is a numeric benchmark computing a 600 by 600 region of
the Mandelbrot set using a naive method.
The
version of the code is that given in Section 5.
The Axiom version is a simple transcription of this program.
The C version is carefully written, with the complex arithmetic
expanded by hand to operations on the real and imaginary parts.
For
and C, the tests have been run both with and without compiler
optimizations in effect. In Axiom the optimizer is always on so no
entries appear in the ``unopt'' columns for that row.
All times are in seconds, measured on an IBM RS/6000 model 530E.
The same XLC C compiler was used for both the C and
(C) timings
and the same AKCL Lisp environment was used for both Axiom and
(Lisp).
The Axiom time includes garbage collection, and excludes time needed
to initialize the domains and packages used by the program.
The
time includes garbage collection, as well as initializations.
An extended version of this paper provides the precise
benchmark examples [27].
As can be seen from the above, both Axiom and
generate
suboptimal code for the test N1. The
compiler is
then able to transform this code into equivalent code that runs at
nearly the same speed as carefully written C.