Like all Computer Algebra Systems, Axiom has both online documentation, and various other web pages devoted to its description.

**HyperDoc**

If you are using Axiom under linux, or under Windows with the Xming X-server, you will have access to the HyperDoc help browser. Although this can look a little old-fashioned (in terms of its widgets), it is extraordinarily powerful, and very useful. It contains:

- the complete text of the book “Axiom: The Scientific Computation System” by Richard Jenks and Robert Sutor (Springer, 1992), in a convenient hypertext format
- masses of examples
- a useful search facility
- a browse system, where you can browse Axiom by commands, or libraries. For example, you can find all the commands which apply to finite fields, what they do, and how they can be used.

HyperDoc is started automatically when you start Axiom. Although HyperDoc can be used as a stand-alone help browser, it connects with Axiom using a socket, so it can run Axiom commands.

Here are a couple of screenshots; one with graphics, one with algebra (click on each image to show a full-sized version):

**Other help from within Axiom**

If you only have a console based Axiom, then there is limited help available from within Axiom itself. However, there are a few commands you can use to provide some information. Suppose, for example, you wish to list all operations containing the string “`diff`

“. Then you enter

`)wh op diff`

which is an abbreviation for

`)what operations diff`

and receive the output

Operations whose names satisfy the above pattern(s): diff difference differentialVariables differentiate exteriorDifferential mergeDifference setDifference symmetricDifference totalDifferential To get more information about an operation such as differentiate, issue the command )display op differentiate

To list domains, categories or packages, you can write

)wh do diff )wh ca diff )wh pa diff

The command

`)wh th diff`

which is an abbreviation for

`)what things diff`

lists *everything* which contains the substring “`diff`

“.

Now suppose we want to find out about the operation “`difference`

“:

`)d op difference`

which is an abbreviation for

`)display operation difference`

and which produces

There are 2 exposed functions called difference : [1] (D,D1) -> D from D if D has SETAGG D1 and D1 has SETCAT [2] (D,D) -> D from D if D has SETAGG D1 and D1 has SETCAT

If you want to find out what “`difference`

” actually *does*, without using HyperDoc, and from within Axiom itself, you can’t.

However, a very handy command is `show`

, which when applied to a domain lists all operations defined on that domain. Here for exmaple, we find out about Cliiford alegbras, whose type has abbreviation `CLIF`

:

`)sh CLIF`

with output

CliffordAlgebra(n: PositiveInteger,K: Field,Q: QuadraticForm(n,K)) is a constructor Abbreviation for CliffordAlgebra is CLIF This constructor is exposed in this frame. Issue )edit /usr/local/axiom/mnt/linux/../../src/algebra/CLIF.spad to see source code for CLIF ------------------------------- Operations ------------------------------- ?*? : (%,K) -> % ?*? : (K,%) -> % ?*? : (%,%) -> % ?*? : (Integer,%) -> % ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % ?-? : (%,%) -> % -? : % -> % ?/? : (%,K) -> % ?=? : (%,%) -> Boolean 1 : () -> % 0 : () -> % ?^? : (%,PositiveInteger) -> % coerce : K -> % coerce : Integer -> % coerce : % -> OutputForm dimension : () -> CardinalNumber e : PositiveInteger -> % hash : % -> SingleInteger latex : % -> String one? : % -> Boolean recip : % -> Union(%,"failed") sample : () -> % zero? : % -> Boolean ?~=? : (%,%) -> Boolean ?*? : (NonNegativeInteger,%) -> % ?**? : (%,NonNegativeInteger) -> % ?^? : (%,NonNegativeInteger) -> % characteristic : () -> NonNegativeInteger coefficient : (%,List PositiveInteger) -> K monomial : (K,List PositiveInteger) -> % subtractIfCan : (%,%) -> Union(%,"failed")

It seems that we can add, subtract, multiply and divide elements in a Clifford algebra, as well as raising an element to an integer power. As well as other operations.

**Local help outside Axiom**

If you have a complete Axiom system, or have compiled it from scratch and also compiled the documentation, you’ll find some useful files in the

`mnt/linux/doc`

directory, of which the most important and useful are:

`Rosetta.dvi`

- This is the “Rosetta Stone” and provides a “collection of synonyms for various operations in the computer algebra systems Axiom, Derive, GAP, Gmp, DoCon,

Macsyma, Magnus, Maxima, Maple, Mathematica, MuPAD, Octave, Pari, Reduce, Scilab, Sumit and Yacas.” Without being comprehensive, it is nonetheless an incredibly useful document, especially if you’re coming to a new CAS after experience with another. `book.dvi`

- This is the Jenks/Sutor book, with additions – 1136 pages! Not for printing!
`bookvol1.dvi`

- This is a Tutorial volume, and a very good starting place for learning about Axiom. It exists also in printed form, available from lulu.com.

**Online help**

There is also some very good material online. First off is an xhtml version of the Jenks/Sutor book, at http://axiom-wiki.newsynthesis.org/uploads/contents.xhtml

Complete pdf files of all Axiom user documentation are available at

http://www.axiom-developer.org/axiom-website/documentation.html

This page also contains a link to the beginnings of a new browser-based interface to the HyperDoc material.

For tutorials, the best one in English is by Martin Dunstan, from as long ago as 1996, at

http://www.dcs.st-and.ac.uk/~mnd/documentation/axiom_tutorial.

There are some excellent tutorials in French, by Daniel Augot at

http://www-rocq.inria.fr/codes/Daniel.Augot/axiom_intro.pdf

and by Christophe Conil and Quentin Carpent at

http://la.riverotte.free.fr/axiom.

Now – get out there and learn about Axiom!