\documentclass{book}
%\newcommand{\VolumeName}{Volume 2: Axiom Users Guide}
%\input{bookheader.tex}
\pagenumbering{arabic}
\mainmatter
\setcounter{chapter}{0} % Chapter 1

\usepackage{makeidx}
\makeindex
\begin{document}
\begin{verbatim}
\start
Date: Wed, 8 Sep 2010 17:46:29 +0100
From: Martin Baker
To: list
Subject: alternative geometry/graphics framework

I have written an alternative geometry/graphics framework.

I have put links to the code and documentation at the bottom of this
page here:
http://www.euclideanspace.com/maths/standards/program/mycode/graph/

It is based on a scenegraph structure which allows
lines, surfaces and higher dimensional structures to be defined and
modified by transforms, clipping boxes, material (line width, colour and
so on) which control individual nodes or whole branches in the
scenegraph. This means that, for example, transforms can be applied
continuously to a whole branch without altering the nodes in that branch,
this means that we can avoid a cumulative build up of floating point errors
when many transforms are applied.

This framework supports all the 2D and 3D draw and plotting that the
existing framework supports. Use of transforms in the scenegraph means that
many plots can be combined together, either overlayed or next to each other
and combined with various show scales, grids text annotations and so on.

The framework supports:
* Different algebras: vector, matrix, complex numbers and Clifford Algebra.
* Different geometries: Euclidean, projective, conformal (hyperbolic to be
  added later)
* Different coordinate systems: Cartesian coordinates, Argand Plane,
  Spherical, Cylindrical.
* Different number of dimensions: 2,3 (4 and more to be added)

The aim is not just to draw plots but also to allow experimentation with
arbitrary shapes being transformed, for instance to transform a given shape
by reflecting in a circle. To see the sort of thing I am trying to do here
see first chapter of [Dorst,Fontijne & Mann 2007] except this is not just
limited to Clifford algebra and conformal space.

Currently Axiom/FriCAS has domains that represent transforms:
(for example: dhmatrix.spad.pamphlet, moebius.spad.pamphlet and so on) but
they are just standalone domains which don't fit into a wider graphics
framework so it is more difficult to combine them with other things and
to experiment. The aim of this framework is to create a way for geometry
and graphics related entities to interwork.

This scenegraph framework currently exports to file formats like: SVG,X3D,
VRML and Wavefront(obj) but currently there is not the capability to interact
directly in a graphical way, that is, there is no xwindow support. The
existing graphics framework allows user interaction in a very limited way in
that the graphics can be displayed in an xwindow and there is then the
ability to do simple transforms like pan and zoom.
However this is not suitable for the new framework because the existing
framework builds a data structure to represent the graphics
using SPAD and then passes this to 'C' code. The 'C' code then does the pan,
zoom and so on and can then save to a file format.

Apart from being very messy trying to mix different languages, this would not
work for the new framework because:
* We want to use non-linear as well as linear transforms.
* I would like to be able to work with discontinuous (fractal) shapes.
* I want to use different algebras such as vector, matrix, complex numbers
  and Clifford algebras and I would not want to implement these algebras
  using 'C'.

Possible options might be:
* Implement an OpenGL canvas in SPAD which allows SPAD to directly output to
  OpenGL (a thin wrapper for OpenGL calls) and also to read and process mouse
  position.
* Implement Axiom/FriCAS as library code that can be called from other
  languages.
* Implement some form of two-way API which allows other programs to use SPAD
  algebra.

Bill Page mentioned that there is an OpenGL binding for lisp.
http://common-lisp.net/project/cl-opengl/
http://repo.or.cz/w/cl-glfw.git
Would it be possible to create a thin wrapper to allow these functions to be
called from SPAD?
OpenGL consists of a couple of hundred function calls but this would only need
a small subset of those (because transforms would be done by SPAD and not 
OpenGL).
We would also need the ability to read mouse movements from SPAD to allow user
interaction.

Do you think this would be possible?

\start
Date: Wed, 08 Sep 2010 21:33:33 -0400
From: Tim Daly
To: Martin Baker
Subject: Re: alternative geometry/graphics framework

I'll look into it as soon as I'm able. --Tim

Martin Baker wrote:
> I have written an alternative geometry/graphics framework.
>
> I have put links to the code and documentation at the bottom of this
> page here:
> http://www.euclideanspace.com/maths/standards/program/mycode/graph/
>
> It is based on a scenegraph structure which allows
> lines, surfaces and higher dimensional structures to be defined and
> modified by transforms, clipping boxes, material (line width, colour and
> so on) which control individual nodes or whole branches in the
> scenegraph. This means that, for example, transforms can be applied
> continuously to a whole branch without altering the nodes in that branch,
> this means that we can avoid a cumulative build up of floating point errors
> when many transforms are applied.
>
> This framework supports all the 2D and 3D draw and plotting that the
> existing framework supports. Use of transforms in the scenegraph means that
> many plots can be combined together, either overlayed or next to each other
> and combined with various show scales, grids text annotations and so on.
>
> The framework supports:
> * Different algebras: vector, matrix, complex numbers and Clifford Algebra.
> * Different geometries: Euclidean, projective, conformal (hyperbolic to be
>   added later)
> * Different coordinate systems: Cartesian coordinates, Argand Plane,
>   Spherical, Cylindrical.
> * Different number of dimensions: 2,3 (4 and more to be added)
>
> The aim is not just to draw plots but also to allow experimentation with
> arbitrary shapes being transformed, for instance to transform a given shape
> by reflecting in a circle. To see the sort of thing I am trying to do here
> see first chapter of [Dorst,Fontijne & Mann 2007] except this is not just
> limited to Clifford algebra and conformal space.
>
> Currently Axiom/FriCAS has domains that represent transforms:
> (for example: dhmatrix.spad.pamphlet, moebius.spad.pamphlet and so on) but
> they are just standalone domains which don't fit into a wider graphics
> framework so it is more difficult to combine them with other things and
> to experiment. The aim of this framework is to create a way for geometry
> and graphics related entities to interwork.
>
> This scenegraph framework currently exports to file formats like: SVG,X3D,
> VRML and Wavefront(obj) but currently there is not the capability to interact
> directly in a graphical way, that is, there is no xwindow support. The
> existing graphics framework allows user interaction in a very limited way in
> that the graphics can be displayed in an xwindow and there is then the
> ability to do simple transforms like pan and zoom.
> However this is not suitable for the new framework because the existing
> framework builds a data structure to represent the graphics
> using SPAD and then passes this to 'C' code. The 'C' code then does the pan,
> zoom and so on and can then save to a file format.
>
> Apart from being very messy trying to mix different languages, this would not
> work for the new framework because:
> * We want to use non-linear as well as linear transforms.
> * I would like to be able to work with discontinuous (fractal) shapes.
> * I want to use different algebras such as vector, matrix, complex numbers
>   and Clifford algebras and I would not want to implement these algebras
>   using 'C'.
>
> Possible options might be:
> * Implement an OpenGL canvas in SPAD which allows SPAD to directly output to
>   OpenGL (a thin wrapper for OpenGL calls) and also to read and process mouse
>   position.
> * Implement Axiom/FriCAS as library code that can be called from other
>   languages.
> * Implement some form of two-way API which allows other programs to use SPAD
>   algebra.
>
> Bill Page mentioned that there is an OpenGL binding for lisp.
> http://common-lisp.net/project/cl-opengl/
> http://repo.or.cz/w/cl-glfw.git
> Would it be possible to create a thin wrapper to allow these functions to be
> called from SPAD?
> OpenGL consists of a couple of hundred function calls but this would only need
> a small subset of those (because transforms would be done by SPAD and not 
> OpenGL).
> We would also need the ability to read mouse movements from SPAD to allow user
> interaction.
>
> Do you think this would be possible?

\start
Date: Sat, 25 Sep 2010 01:47:38 -0500
From: Tim Daly
To: list
Subject: Axiom September 2010 Release

Axiom has been released for September 2010.
The website has the sources and the ubuntu binary.
Other binaries are being built and will appear when they pass testing.

Tim Daly

=============================================================================

September 2010 Release

This release concentrated on treeshaking the compiler code into book volume 9.
Due to the complexity of this task it will take several releases to complete.

Additional global changes included collecting all of the Axiom-related
latex macros into axiom.sty and removing references to Aldor.

Makefile 
  always run help extractions in parallel
  build src/input quietly

books/bookvol0
   remove references to aldor

books/bookvol1
   remove references to aldor

books/bookvol5
   expose StreamTensor, U32Vector, U32VectorPolynomialOperations
   mark pure common lisp routines
   merge ptrop, varini
   move latex macros to axiom.sty
   remove POLYVEC
   remove compile, duplicated in vol9
   remove memq
   remove references to aldor
   treeshake
   remove $useNewParser

books/bookvol7.1
   move latex macros to axiom.sty
   remove references to aldor
   rewrite \pagehead to \pagetitle

books/bookvol9
   cross-reference functions and variables
   move latex macros to axiom.sty
   remove memq
   treeshake the compiler code
   remove $useNewParser

books/bookvol10
   move latex macros to axiom.sty
   move GOPT0 from bookvol10.3

books/bookvol10.1
   move latex macros to axiom.sty

books/bookvol10.2
   move latex macros to axiom.sty

books/bookvol10.3
   add U32Vector, move GOPT0 from bookvol10.4
   move latex macros to axiom.sty

books/bookvol10.4
   add StreamTensor, U32VectorPolynomialOperations
   fix ScriptTensor regression test
   move latex macros to axiom.sty
   remove POLYVEC
   update Chinese Remainder documentation

books/bookvol10.5
   move latex macros to axiom.sty

books/bookvolbib
   Parnas & Madey [PM95], Parnas & Jin [PJ10], GCL92, AS64, NIST10, RF94, 
   Hamdy [Ham04], Steele [Ste90], Tim Lahey's Sage Integration Test Suite

books/ps/
   v103guessoptionfunctions0, v103u32vector, v104streamtensor,
   v104u32vectorpolynomialoperations, v104u32vectorpolynomialoperations

src/algebra
   Makefile help and test for StreamTensor
   Makefile help and test for U32Vector
   Makefile remove references to aldor
   Makefile test and help for POLYVEC
   Makefile remove POLYVEC
   Makefile add help and test for new algebra
   Makefile handle case-insensitive MAC filesystem
   Makefile remove new algebra scaffolding code

src/doc
   axiom.sty collect all script commands in one place
   axiom.sty consolidate latex macros

src/input
   Makefile add guess.input, manuel.input, risch.input
   guess.input test examples of the GUESS package
   kamke3.input clean up broken tests
   manuel.input add Manuel's integral to test suite
   richlog300-391.input clean up broken tests
   richtrig800-899.input clean up broken tests
   risch.input illustrate the Risch algorithm
   setcmd.input clean up broken tests
   test.input clean up broken tests

src/interp
   Makefile merge varini
   Makefile remove nspadaux, mark, pspad1, pspad2, ptrop, wi1, wi2
   *.lisp remove memq
   treeshake compiler -- br-con, cattable, compiler
   remove nspadaux.lisp, mark.lisp, pspad1.lisp, pspad2.lisp, 
   remove ptrop.lisp, wi1.lisp, wi2.lisp
   add HTMLFormat code i-output.lisp, vmlisp.lisp

src/scripts/tex
   axiom.sty collect all script commands
   axiom.sty consolidate latex macros

src/axiom-website/
   documentation.html add Knuth quote per W. Sit
   download.html add debian, fedora, mandriva, opensuse, slackware, vector
   download.html update ubuntu yum advice

\start
Date: Fri, 24 Sep 2010 20:46:05 +0200
From: Ingo Rullhusen
To: list
Subject: wrong sign in limit?

perhaps i have found a bug in the limit operation. I am using

                        AXIOM Computer Algebra System
                         Version: Axiom (July 2010)
              Timestamp: Wednesday August 18, 2010 at 11:16:49

on a x86_64 with linux. There seems to be an error in the sign, if you
compare the limit result with the de L'Hospital one.

>>>>Example

-- problem with limit

)clear

Z:=sqrt(a^2+h^2)-a
N:=a*sqrt(a^2+h^2) - a^2 - h^2

limit( Z/N, h=0 )

-- this seems to be wrong!
-- because de L'Hospital says

dZ:=differentiate( Z, h, 2 )
dN:=differentiate( N, h, 2 )

eval(dZ/dN,h=0)

-- which seems to be right (see graph): opposite sign!

>>>>EndExample

which generates the output:

                        AXIOM Computer Algebra System
                         Version: Axiom (July 2010)
              Timestamp: Wednesday August 18, 2010 at 11:16:49
-----------------------------------------------------------------------------
   Issue )copyright to view copyright notices.
   Issue )summary for a summary of useful system commands.
   Issue )quit to leave AXIOM and return to shell.
   Visit http://axiom-developer.org for more information
-----------------------------------------------------------------------------
 
   Re-reading compress.daase   Re-reading interp.daase
   Re-reading operation.daase
   Re-reading category.daase
   Re-reading browse.daase
(1) ->
(1) -> )read hos.input

-- problem with limit

)clear
 
   Use )clear all to clear everything in the workspace. Use )clear
      completely to clear everything in the workspace and internal
      tables. Other )clear keyword arguments are
             modes
             operations
             properties
             types
             values
      or abbreviations thereof. Issue )clear? for more information.

Z:=sqrt(a^2+h^2)-a
 

         +-------+
         | 2    2
   (1)  \|h  + a   - a
                                                     Type: Expression
Integer
N:=a*sqrt(a^2+h^2) - a^2 - h^2
 

          +-------+
          | 2    2     2    2
   (2)  a\|h  + a   - h  - a
                                                     Type: Expression
Integer

limit( Z/N, h=0 )
 

        1
   (3)  -
        a
                        Type: Union(OrderedCompletion Expression
Integer,...)

-- this seems to be wrong!
-- because de L'Hospital says

dZ:=differentiate( Z, h, 2 )
 

                  2
                 a
   (4)  -------------------
                  +-------+
          2    2  | 2    2
        (h  + a )\|h  + a
                                                     Type: Expression
Integer
dN:=differentiate( N, h, 2 )
 

                      +-------+
             2     2  | 2    2     3
        (- 2h  - 2a )\|h  + a   + a
   (5)  ----------------------------
                       +-------+
               2    2  | 2    2
             (h  + a )\|h  + a
                                                     Type: Expression
Integer

eval(dZ/dN,h=0)
 

               1
   (6)  - ----------
            +--+
            | 2
          2\|a   - a
                                                     Type: Expression
Integer
(7) ->
(7) ->

(see sign)

\start
Date: Sun, 26 Sep 2010 14:46:31 -0400
From: Tim Daly
To: list
Subject: Re: wrong sign in limit?

  Interesting. I'll look at it further. --Tim

On 9/24/2010 2:46 PM, Dr.-Ing. Ingo D. Rullhusen wrote:
> Hello,
>
> perhaps i have found a bug in the limit operation. I am using
>
>                          AXIOM Computer Algebra System
>                           Version: Axiom (July 2010)
>                Timestamp: Wednesday August 18, 2010 at 11:16:49
>
> on a x86_64 with linux. There seems to be an error in the sign, if you
> compare the limit result with the de L'Hospital one.
>
>>>>> Example
> -- problem with limit
>
> )clear
>
> Z:=sqrt(a^2+h^2)-a
> N:=a*sqrt(a^2+h^2) - a^2 - h^2
>
> limit( Z/N, h=0 )
>
> -- this seems to be wrong!
> -- because de L'Hospital says
>
> dZ:=differentiate( Z, h, 2 )
> dN:=differentiate( N, h, 2 )
>
> eval(dZ/dN,h=0)
>
> -- which seems to be right (see graph): opposite sign!
>
>>>>> EndExample
> which generates the output:
>
>                          AXIOM Computer Algebra System
>                           Version: Axiom (July 2010)
>                Timestamp: Wednesday August 18, 2010 at 11:16:49
> -----------------------------------------------------------------------------
>     Issue )copyright to view copyright notices.
>     Issue )summary for a summary of useful system commands.
>     Issue )quit to leave AXIOM and return to shell.
>     Visit http://axiom-developer.org for more information
> -----------------------------------------------------------------------------
>
>     Re-reading compress.daase   Re-reading interp.daase
>     Re-reading operation.daase
>     Re-reading category.daase
>     Re-reading browse.daase
> (1) ->
> (1) ->  )read hos.input
>
> -- problem with limit
>
> )clear
>
>     Use )clear all to clear everything in the workspace. Use )clear
>        completely to clear everything in the workspace and internal
>        tables. Other )clear keyword arguments are
>               modes
>               operations
>               properties
>               types
>               values
>        or abbreviations thereof. Issue )clear? for more information.
>
> Z:=sqrt(a^2+h^2)-a
>
>
>           +-------+
>           | 2    2
>     (1)  \|h  + a   - a
>                                                       Type: Expression
> Integer
> N:=a*sqrt(a^2+h^2) - a^2 - h^2
>
>
>            +-------+
>            | 2    2     2    2
>     (2)  a\|h  + a   - h  - a
>                                                       Type: Expression
> Integer
>
> limit( Z/N, h=0 )
>
>
>          1
>     (3)  -
>          a
>                          Type: Union(OrderedCompletion Expression
> Integer,...)
>
> -- this seems to be wrong!
> -- because de L'Hospital says
>
> dZ:=differentiate( Z, h, 2 )
>
>
>                    2
>                   a
>     (4)  -------------------
>                    +-------+
>            2    2  | 2    2
>          (h  + a )\|h  + a
>                                                       Type: Expression
> Integer
> dN:=differentiate( N, h, 2 )
>
>
>                        +-------+
>               2     2  | 2    2     3
>          (- 2h  - 2a )\|h  + a   + a
>     (5)  ----------------------------
>                         +-------+
>                 2    2  | 2    2
>               (h  + a )\|h  + a
>                                                       Type: Expression
> Integer
>
> eval(dZ/dN,h=0)
>
>
>                 1
>     (6)  - ----------
>              +--+
>              | 2
>            2\|a   - a
>                                                       Type: Expression
> Integer
> (7) ->
> (7) ->
>
> (see sign)

\start
Date: Sun, 26 Sep 2010 22:51:22 +0200
From: Ralf Hemmecke
To: list
Subject: Re: wrong sign in limit?

I agree that the result is questionable, but what result do you expect?

This one is perhaps better

(0) -> limit(sqrt(a^2+x), x=0)

          +--+
          | 2
    (0)  \|a
                       Type: 
Union(OrderedCompletion(Expression(Integer)),...)

As long as nothing is known about a, that expression cannot be 
simplified further. In fact sqrt stands for *two* solutions.

Look into trigcat.spad.pamphlet.

RadicalCategory(): Category == with
   sqrt   : % -> %
       ++ sqrt(x) returns the square root of x.  The branch cut lies
       ++ along the negative real axis, continuous with quadrant II.

Even if we agree on the common convention that the root symbol for 
positive real arguments denotes a positive value, simplifying the above 
to just a would be wrong, as then plugging in a=-1 would violate the 
convention.

It's a quite subtle result. But it is wrong in the sense that the result 
should be as AXIOM says below.

Maple and Mathematica seem to use similar algorithms as they come up 
with the same questionable result. But look at what FullSimplify gives. 
Mathematica is just not trying hard enough.

I guess, if AXIOM could simplify Z/N, then the result would be better.

Ralf

(1) -> W := sqrt(a^2+h^2)

          +-------+
          | 2    2
    (1)  \|h  + a
                                   Type: Expression(Integer)
(2) -> Z := W -a

          +-------+
          | 2    2
    (2)  \|h  + a   - a
                                   Type: Expression(Integer)
(3) -> N := a*W -W^2

           +-------+
           | 2    2     2    2
    (3)  a\|h  + a   - h  - a
                                   Type: Expression(Integer)
(4) -> W*Z/N

    (4)  - 1
                                   Type: Expression(Integer)
(5) -> Z/N + 1/W

    (5)  0
                                   Type: Expression(Integer)
(6) -> limit(-1/W, h=0)

             1
    (6)  - -----
            +--+
            | 2
           \|a
      Type: Union(OrderedCompletion(Expression(Integer)),...)

==========================================================
BTW, why do you complain? ;-)

Mathematica 7.0 for Linux x86 (32-bit)
Copyright 1988-2008 Wolfram Research, Inc.

In[1]:= w = Sqrt[a^2+h^2]

               2    2
Out[1]= Sqrt[a  + h ]

In[2]:= z = w - a

                    2    2
Out[2]= -a + Sqrt[a  + h ]

In[3]:= n = a*w-w^2

           2    2           2    2
Out[3]= -a  - h  + a Sqrt[a  + h ]

In[4]:= Limit[z/n,h->0]

         1
Out[4]= -
         a

In[5]:= Limit[-1/w,h->0]

                 2
           Sqrt[a ]
Out[5]= -(--------)
               2
              a

In[6]:= Simplify[z/n]

                       2    2
             a - Sqrt[a  + h ]
Out[6]= -------------------------
          2    2           2    2
         a  + h  - a Sqrt[a  + h ]

In[7]:= FullSimplify[z/n]

                 1
Out[7]= -(-------------)
                 2    2
           Sqrt[a  + h ]


==============================

     |\^/|     Maple 11 (IBM INTEL LINUX)
._|\|   |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 
2007
  \  MAPLE  /  All rights reserved. Maple is a trademark of
  <____ ____>  Waterloo Maple Inc.
       |       Type ? for help.
 > w := sqrt(a^2+h^2);
                                       2    2 1/2
                                w := (a  + h )

 > z:=w-a;
                                     2    2 1/2
                              z := (a  + h )    - a

 > n:=a*w-w^2;
                                   2    2 1/2    2    2
                          n := a (a  + h )    - a  - h

 > limit(z/n,h=0);
                                       1/a

 > limit(-1/w,h=0);
                                         1
                                    - -------
                                        2 1/2
                                      (a )

\start
Date: Tue, 28 Sep 2010 17:55:20 -0400
From: Camm Maguire
To: Tim Daly
Subject: Re: Axiom September 2010 Release

Please consider this patch, as gcl has a file_exists function and this
prevents image linking when native object relocatin is absent. 

--- ./src/lib/pixmap.c.pamphlet.orig	2010-09-25 05:29:00.000000000 +0000
+++ ./src/lib/pixmap.c.pamphlet	2010-09-28 14:54:03.000000000 +0000
@@ -81,7 +81,7 @@
 /* returns true if the file exists */
 
 int
-file_exists(char *file)
+ax_file_exists(char *file)
 {
     FILE *f;
 
@@ -96,10 +96,10 @@
 {
     char com[512], zfile[512];
 
-    if (file_exists(file))
+    if (ax_file_exists(file))
         return fopen(file, mode);
     sprintf(zfile, "%s.Z", file);
-    if (file_exists(zfile)) {
+    if (ax_file_exists(zfile)) {
         sprintf(com, "gunzip -c %s.Z 2>/dev/null", file);
         return popen(com, mode);
     }



(Also unclear on how -lXpm gets into the link, but it appears to
somehow, so all else is good.  Uploaded into Debian unstable.)

Take care,

Tim Daly writes:

> Axiom has been released for September 2010.
> The website has the sources and the ubuntu binary.
> Other binaries are being built and will appear when they pass testing.
>
> Tim Daly
>
> =============================================================================
>
> September 2010 Release
>
> This release concentrated on treeshaking the compiler code into book volume 9.
> Due to the complexity of this task it will take several releases to complete.
>
> Additional global changes included collecting all of the Axiom-related
> latex macros into axiom.sty and removing references to Aldor.
>
> Makefile 
>   always run help extractions in parallel
>   build src/input quietly
>
> books/bookvol0
>    remove references to aldor
>
> books/bookvol1
>    remove references to aldor
>
> books/bookvol5
>    expose StreamTensor, U32Vector, U32VectorPolynomialOperations
>    mark pure common lisp routines
>    merge ptrop, varini
>    move latex macros to axiom.sty
>    remove POLYVEC
>    remove compile, duplicated in vol9
>    remove memq
>    remove references to aldor
>    treeshake
>    remove $useNewParser
>
> books/bookvol7.1
>    move latex macros to axiom.sty
>    remove references to aldor
>    rewrite \pagehead to \pagetitle
>
> books/bookvol9
>    cross-reference functions and variables
>    move latex macros to axiom.sty
>    remove memq
>    treeshake the compiler code
>    remove $useNewParser
>
> books/bookvol10
>    move latex macros to axiom.sty
>    move GOPT0 from bookvol10.3
>
> books/bookvol10.1
>    move latex macros to axiom.sty
>
> books/bookvol10.2
>    move latex macros to axiom.sty
>
> books/bookvol10.3
>    add U32Vector, move GOPT0 from bookvol10.4
>    move latex macros to axiom.sty
>
> books/bookvol10.4
>    add StreamTensor, U32VectorPolynomialOperations
>    fix ScriptTensor regression test
>    move latex macros to axiom.sty
>    remove POLYVEC
>    update Chinese Remainder documentation
>
> books/bookvol10.5
>    move latex macros to axiom.sty
>
> books/bookvolbib
>    Parnas & Madey [PM95], Parnas & Jin [PJ10], GCL92, AS64, NIST10, RF94, 
>    Hamdy [Ham04], Steele [Ste90], Tim Lahey's Sage Integration Test Suite
>
> books/ps/
>    v103guessoptionfunctions0, v103u32vector, v104streamtensor,
>    v104u32vectorpolynomialoperations, v104u32vectorpolynomialoperations
>
> src/algebra
>    Makefile help and test for StreamTensor
>    Makefile help and test for U32Vector
>    Makefile remove references to aldor
>    Makefile test and help for POLYVEC
>    Makefile remove POLYVEC
>    Makefile add help and test for new algebra
>    Makefile handle case-insensitive MAC filesystem
>    Makefile remove new algebra scaffolding code
>
> src/doc
>    axiom.sty collect all script commands in one place
>    axiom.sty consolidate latex macros
>
> src/input
>    Makefile add guess.input, manuel.input, risch.input
>    guess.input test examples of the GUESS package
>    kamke3.input clean up broken tests
>    manuel.input add Manuel's integral to test suite
>    richlog300-391.input clean up broken tests
>    richtrig800-899.input clean up broken tests
>    risch.input illustrate the Risch algorithm
>    setcmd.input clean up broken tests
>    test.input clean up broken tests
>
> src/interp
>    Makefile merge varini
>    Makefile remove nspadaux, mark, pspad1, pspad2, ptrop, wi1, wi2
>    *.lisp remove memq
>    treeshake compiler -- br-con, cattable, compiler
>    remove nspadaux.lisp, mark.lisp, pspad1.lisp, pspad2.lisp, 
>    remove ptrop.lisp, wi1.lisp, wi2.lisp
>    add HTMLFormat code i-output.lisp, vmlisp.lisp
>
> src/scripts/tex
>    axiom.sty collect all script commands
>    axiom.sty consolidate latex macros
>
> src/axiom-website/
>    documentation.html add Knuth quote per W. Sit
>    download.html add debian, fedora, mandriva, opensuse, slackware, vector
>    download.html update ubuntu yum advice
>

\start
Date: Wed, 29 Sep 2010 11:49:31 -0400
From: Camm Maguire
To: Tim Daly
Subject: Re: Axiom September 2010 Release

Greetings!  How do I enable lisp breaks on error?

Take care,

Tim Daly writes:

> Axiom has been released for September 2010.
> The website has the sources and the ubuntu binary.
> Other binaries are being built and will appear when they pass testing.
>
> Tim Daly
>
> =============================================================================
>
> September 2010 Release
>
> This release concentrated on treeshaking the compiler code into book volume 9.
> Due to the complexity of this task it will take several releases to complete.
>
> Additional global changes included collecting all of the Axiom-related
> latex macros into axiom.sty and removing references to Aldor.
>
> Makefile 
>   always run help extractions in parallel
>   build src/input quietly
>
> books/bookvol0
>    remove references to aldor
>
> books/bookvol1
>    remove references to aldor
>
> books/bookvol5
>    expose StreamTensor, U32Vector, U32VectorPolynomialOperations
>    mark pure common lisp routines
>    merge ptrop, varini
>    move latex macros to axiom.sty
>    remove POLYVEC
>    remove compile, duplicated in vol9
>    remove memq
>    remove references to aldor
>    treeshake
>    remove $useNewParser
>
> books/bookvol7.1
>    move latex macros to axiom.sty
>    remove references to aldor
>    rewrite \pagehead to \pagetitle
>
> books/bookvol9
>    cross-reference functions and variables
>    move latex macros to axiom.sty
>    remove memq
>    treeshake the compiler code
>    remove $useNewParser
>
> books/bookvol10
>    move latex macros to axiom.sty
>    move GOPT0 from bookvol10.3
>
> books/bookvol10.1
>    move latex macros to axiom.sty
>
> books/bookvol10.2
>    move latex macros to axiom.sty
>
> books/bookvol10.3
>    add U32Vector, move GOPT0 from bookvol10.4
>    move latex macros to axiom.sty
>
> books/bookvol10.4
>    add StreamTensor, U32VectorPolynomialOperations
>    fix ScriptTensor regression test
>    move latex macros to axiom.sty
>    remove POLYVEC
>    update Chinese Remainder documentation
>
> books/bookvol10.5
>    move latex macros to axiom.sty
>
> books/bookvolbib
>    Parnas & Madey [PM95], Parnas & Jin [PJ10], GCL92, AS64, NIST10, RF94, 
>    Hamdy [Ham04], Steele [Ste90], Tim Lahey's Sage Integration Test Suite
>
> books/ps/
>    v103guessoptionfunctions0, v103u32vector, v104streamtensor,
>    v104u32vectorpolynomialoperations, v104u32vectorpolynomialoperations
>
> src/algebra
>    Makefile help and test for StreamTensor
>    Makefile help and test for U32Vector
>    Makefile remove references to aldor
>    Makefile test and help for POLYVEC
>    Makefile remove POLYVEC
>    Makefile add help and test for new algebra
>    Makefile handle case-insensitive MAC filesystem
>    Makefile remove new algebra scaffolding code
>
> src/doc
>    axiom.sty collect all script commands in one place
>    axiom.sty consolidate latex macros
>
> src/input
>    Makefile add guess.input, manuel.input, risch.input
>    guess.input test examples of the GUESS package
>    kamke3.input clean up broken tests
>    manuel.input add Manuel's integral to test suite
>    richlog300-391.input clean up broken tests
>    richtrig800-899.input clean up broken tests
>    risch.input illustrate the Risch algorithm
>    setcmd.input clean up broken tests
>    test.input clean up broken tests
>
> src/interp
>    Makefile merge varini
>    Makefile remove nspadaux, mark, pspad1, pspad2, ptrop, wi1, wi2
>    *.lisp remove memq
>    treeshake compiler -- br-con, cattable, compiler
>    remove nspadaux.lisp, mark.lisp, pspad1.lisp, pspad2.lisp, 
>    remove ptrop.lisp, wi1.lisp, wi2.lisp
>    add HTMLFormat code i-output.lisp, vmlisp.lisp
>
> src/scripts/tex
>    axiom.sty collect all script commands
>    axiom.sty consolidate latex macros
>
> src/axiom-website/
>    documentation.html add Knuth quote per W. Sit
>    download.html add debian, fedora, mandriva, opensuse, slackware, vector
>    download.html update ubuntu yum advice

\start
Date: Wed, 29 Sep 2010 14:57:26 -0400
From: Tim Daly
To: Camm Maguire
Subject: Re: Axiom September 2010 Release

  )set break break


On 9/29/2010 11:49 AM, Camm Maguire wrote:
> Greetings!  How do I enable lisp breaks on error?
>
> Take care,
>
> Tim Daly writes:
>
>> Axiom has been released for September 2010.
>> The website has the sources and the ubuntu binary.
>> Other binaries are being built and will appear when they pass testing.
>>
>> Tim Daly
>>
>> =============================================================================
>>
>> September 2010 Release
>>
>> This release concentrated on treeshaking the compiler code into book volume 9.
>> Due to the complexity of this task it will take several releases to complete.
>>
>> Additional global changes included collecting all of the Axiom-related
>> latex macros into axiom.sty and removing references to Aldor.
>>
>> Makefile
>>    always run help extractions in parallel
>>    build src/input quietly
>>
>> books/bookvol0
>>     remove references to aldor
>>
>> books/bookvol1
>>     remove references to aldor
>>
>> books/bookvol5
>>     expose StreamTensor, U32Vector, U32VectorPolynomialOperations
>>     mark pure common lisp routines
>>     merge ptrop, varini
>>     move latex macros to axiom.sty
>>     remove POLYVEC
>>     remove compile, duplicated in vol9
>>     remove memq
>>     remove references to aldor
>>     treeshake
>>     remove $useNewParser
>>
>> books/bookvol7.1
>>     move latex macros to axiom.sty
>>     remove references to aldor
>>     rewrite \pagehead to \pagetitle
>>
>> books/bookvol9
>>     cross-reference functions and variables
>>     move latex macros to axiom.sty
>>     remove memq
>>     treeshake the compiler code
>>     remove $useNewParser
>>
>> books/bookvol10
>>     move latex macros to axiom.sty
>>     move GOPT0 from bookvol10.3
>>
>> books/bookvol10.1
>>     move latex macros to axiom.sty
>>
>> books/bookvol10.2
>>     move latex macros to axiom.sty
>>
>> books/bookvol10.3
>>     add U32Vector, move GOPT0 from bookvol10.4
>>     move latex macros to axiom.sty
>>
>> books/bookvol10.4
>>     add StreamTensor, U32VectorPolynomialOperations
>>     fix ScriptTensor regression test
>>     move latex macros to axiom.sty
>>     remove POLYVEC
>>     update Chinese Remainder documentation
>>
>> books/bookvol10.5
>>     move latex macros to axiom.sty
>>
>> books/bookvolbib
>>     Parnas&  Madey [PM95], Parnas&  Jin [PJ10], GCL92, AS64, NIST10, RF94,
>>     Hamdy [Ham04], Steele [Ste90], Tim Lahey's Sage Integration Test Suite
>>
>> books/ps/
>>     v103guessoptionfunctions0, v103u32vector, v104streamtensor,
>>     v104u32vectorpolynomialoperations, v104u32vectorpolynomialoperations
>>
>> src/algebra
>>     Makefile help and test for StreamTensor
>>     Makefile help and test for U32Vector
>>     Makefile remove references to aldor
>>     Makefile test and help for POLYVEC
>>     Makefile remove POLYVEC
>>     Makefile add help and test for new algebra
>>     Makefile handle case-insensitive MAC filesystem
>>     Makefile remove new algebra scaffolding code
>>
>> src/doc
>>     axiom.sty collect all script commands in one place
>>     axiom.sty consolidate latex macros
>>
>> src/input
>>     Makefile add guess.input, manuel.input, risch.input
>>     guess.input test examples of the GUESS package
>>     kamke3.input clean up broken tests
>>     manuel.input add Manuel's integral to test suite
>>     richlog300-391.input clean up broken tests
>>     richtrig800-899.input clean up broken tests
>>     risch.input illustrate the Risch algorithm
>>     setcmd.input clean up broken tests
>>     test.input clean up broken tests
>>
>> src/interp
>>     Makefile merge varini
>>     Makefile remove nspadaux, mark, pspad1, pspad2, ptrop, wi1, wi2
>>     *.lisp remove memq
>>     treeshake compiler -- br-con, cattable, compiler
>>     remove nspadaux.lisp, mark.lisp, pspad1.lisp, pspad2.lisp,
>>     remove ptrop.lisp, wi1.lisp, wi2.lisp
>>     add HTMLFormat code i-output.lisp, vmlisp.lisp
>>
>> src/scripts/tex
>>     axiom.sty collect all script commands
>>     axiom.sty consolidate latex macros
>>
>> src/axiom-website/
>>     documentation.html add Knuth quote per W. Sit
>>     download.html add debian, fedora, mandriva, opensuse, slackware, vector
>>     download.html update ubuntu yum advice

\start
Date: Thu, 30 Sep 2010 15:21:19 +0200 (CEST)
From: Waldek Hebisch
To: list
Subject: Re: wrong sign in limit?

Dr.-Ing. Ingo D. Rullhusen wrote:
> 
> Hello,
> 
> perhaps i have found a bug in the limit operation. I am using
> 
>                         AXIOM Computer Algebra System
>                          Version: Axiom (July 2010)
>               Timestamp: Wednesday August 18, 2010 at 11:16:49
> 
> on a x86_64 with linux. There seems to be an error in the sign, if you
> compare the limit result with the de L'Hospital one.
> 
> 
> Z:=sqrt(a^2+h^2)-a
>  
> N:=a*sqrt(a^2+h^2) - a^2 - h^2
> 
> limit( Z/N, h=0 )
>  
> 
>         1
>    (3)  -
>         a
>                         Type: Union(OrderedCompletion Expression
> Integer,...)
> 
> -- this seems to be wrong!
> -- because de L'Hospital says
> 
> dZ:=differentiate( Z, h, 2 )
>  
> dN:=differentiate( N, h, 2 )
>  
> eval(dZ/dN,h=0)
>  
> 
>                1
>    (6)  - ----------
>             +--+
>             | 2
>           2\|a   - a
> 
> (see sign)

Square root has two branches, the result depends on which branch
you choose.  Limit decided that sqrt(a^2) = -a and the result
is correct for this branch (and wrong for the other branch).
de L'Hospital rule can be used only when limit on N is 0, which
hold when sqrt(a^2) = a, but the result is wrong for the other
branch.  If you want result which is correct for both branches
you need something like:

-sqrt(a^2)/a^2

but such expressions cause trouble so limit decided just to pick
one branch...



\end{verbatim}
\eject
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{axiom}
\bibliography{axiom}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cleardoublepage
%\phantomsection
\addcontentsline{toc}{chapter}{Index}
\printindex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
