An introduction to Axiom (8): Documentation

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):

Graphics in HyperDoc Algebra in HyperDoc

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!

Leave a Reply

Your email address will not be published. Required fields are marked *