diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet
index 511ef4c..5fabee6 100644
--- a/books/bookvolbib.pamphlet
+++ b/books/bookvolbib.pamphlet
@@ -241,6 +241,10 @@ In Miola [Mio90], pp56-60. ISBN 0-387-52531-9 (New York), 3-540-52531-9
 Francois Fouche. ``Une implantation de l'algorithme de Kovacic en Scratchpad''
 Technical report, Institut de Recherche Math{\'{e}}matique Avanc{\'{e}}e''
 Strasbourg, France, 1990 31pp
+\bibitem[GCL92]{GCL92}
+Geddes, Keith O., Czapor, Stephen R., and Labahn, George
+``Algorithms For Computer Algebra'' Kluwer Academic Publishers
+ISBN 0-7923-9259-0 (Sept 1992)
 \bibitem[GBL91]{GBL91}
 B. M. Goodwin, R. A. Buonopane, and A. Lee. ``Using MathCAD in teaching
 material and energy balance concepts''. In Anonymous [Ano91], pp345-349
@@ -650,6 +654,10 @@ Karlsruhe, Germany, 1992
 Ablamowicz Rafal, ``Spinor Representations of Clifford
 Algebras: A Symbolic Approach'', Computer Physics Communications
 Vol. 115, No. 2-3, December 11, 1998, pages 510-535.
+\bibitem[AS64]{AS64}
+Abramowitz, Milton and Stegun, Irene A.
+``Handbook of Mathematical Functions'' (1964) Dover Publications, NY
+ISBN 0-486-61272-4
 \bibitem[Alt05]{Alt05}
 Altmann, Simon L. Rotations, Quaternions, and Double Groups
 Dover Publications, Inc. 2005 ISBN 0-486-44518-6
@@ -776,6 +784,10 @@ J. Res. Natl. Inst. Stand. Technol. (NIST) V105 No4 July-Aug 2000 pp589-590
 Thom Mulders. ``A note on subresultants and a correction to
 the lazard/rioboo/trager formula in rational function integration'' 
 {\sl Journal of Symbolic Computation}, 24(1):45-50, 1997
+\bibitem[NIST10]{NIST10}
+Olver, Frank W., Lozier, Daniel W., Boisvert, Ronald F., Clark, Charles W. (ed)
+``NIST Handbook of Mathematical Functions'' (2010) Cambridge University
+Press ISBN 978-0-521-19225-5
 \bibitem[Ost1845]{Ost1845}
 M.W. Ostrogradsky. De l'int\'{e}gration des fractions
 rationelles. {\sl Bulletin de la Classe Physico-Math\'{e}matiques de
@@ -796,6 +808,10 @@ Ramsey, Norman ``Noweb -- A Simple, Extensible Tool for Literate Programming''
 \verb|www.eecs.harvard.edu/~nr/noweb|
 \bibitem[Ri10]{Ri10}
 Rich, Albert D. ``Rule-based Mathematics'' \verb|www.apmaths.uwo.ca/~arich|
+\bibitem[RF94]{RF94}
+Richardson, Dan and Fitch, John
+``The identity problem for elementary functions and constants''
+ACM Proc. of ISSAC 94 pp285-290 ISBN 0-89791-638-7
 \bibitem[Ris68]{Ris68}
 Robert Risch. ``On the integration of elementary functions
 which are built up using algebraic operations'' Research Report
diff --git a/changelog b/changelog
index 2628440..e141ec7 100644
--- a/changelog
+++ b/changelog
@@ -1,7 +1,12 @@
+20100801 tpd src/axiom-website/patches.html 20100801.01.wxh.patch
+20100801 tpd books/bookvolbib add GCL92, AS64, NIST10, RF94 
+20100801 tpd src/input/Makefile add risch.input
+20100801 tpd src/input/risch.input illustrate the Risch algorithm
 20100729 tpd src/axiom-website/patches.html 20100729.01.wxh.patch
 20100729 wxh src/algebra/Makefile help and test for U32Vector
 20100729 wxh books/bookvol5 expose U32Vector
 20100729 wxh books/bookvol10.3 add U32Vector, move GOPT0 from bookvol10.4
+20100729 wxh books/bookvol10. move GOPT0 from bookvol10.3
 20100729 wxh books/ps/v103u32vector.eps added
 20100728 tpd src/axiom-website/patches.html 20100728.04.tpd.patch
 20100728 tpd books/ps/v104streamtensor.eps added
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ffbe4d8..2ba2c63 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3041,5 +3041,7 @@ books/bookvol10.4 fix ScriptTensor regression test<br/>
 books/ps/v104streamtensor.eps added<br/>
 <a href="patches/20100729.01.wxh.patch">20100729.01.wxh.patch</a>
 books/bookvol10.3 add U32Vector, move GOPT0 from bookvol10.4<br/>
+<a href="patches/20100801.01.wxh.patch">20100801.01.wxh.patch</a>
+books/bookvolbib Geddes GCL92 Abramowitz AS64 Olver NIST10 Richardson RF94<br/>
  </body>
 </html>
diff --git a/src/input/Makefile.pamphlet b/src/input/Makefile.pamphlet
index feabb93..ae25be5 100644
--- a/src/input/Makefile.pamphlet
+++ b/src/input/Makefile.pamphlet
@@ -369,7 +369,7 @@ REGRESSTESTS= ackermann.regress \
     quat1.regress     quat.regress     r20abugs.regress r20bugs.regress \
     r21bugsbig.regress r21bugs.regress radff.regress    radix.regress \
     realclos.regress  reclos.regress   reclos2.regress  regset.regress \
-    repa6.regress     \
+    repa6.regress     risch.regress \
     robidoux.regress \
     roman.regress     roots.regress    ruleset.regress  rules.regress \
     rubey.regress     sae.regress       spline.regress \
@@ -752,6 +752,7 @@ FILES= ${OUT}/ackermann.input \
        ${OUT}/r21bugs.input \
        ${OUT}/radff.input    ${OUT}/radix.input      ${OUT}/realclos.input \
        ${OUT}/reclos.input   ${OUT}/reclos2.input    ${OUT}/regset.input   \
+       ${OUT}/risch.input \
        ${OUT}/robidoux.input ${OUT}/roman.input      ${OUT}/roots.input \
        ${OUT}/ruleset.input  ${OUT}/rules.input      ${OUT}/rubey.input \
        ${OUT}/sae.input \
@@ -1175,7 +1176,7 @@ DOCFILES= \
   ${DOC}/richtrig700-799.input.dvi \
   ${DOC}/richtrig800-899.input.dvi \
   ${DOC}/richtrig900-920.input.dvi \
-  ${DOC}/rk4draw.input.dvi    \
+  ${DOC}/rk4draw.input.dvi     ${DOC}/risch.input.dvi      \
   ${DOC}/robidoux.input.dvi    ${DOC}/roman.input.dvi      \
   ${DOC}/romnum.as.dvi         ${DOC}/roots.input.dvi      \
   ${DOC}/ruleset.input.dvi     ${DOC}/rules.input.dvi      \
diff --git a/src/input/risch.input.pamphlet b/src/input/risch.input.pamphlet
new file mode 100644
index 0000000..baa49a7
--- /dev/null
+++ b/src/input/risch.input.pamphlet
@@ -0,0 +1,286 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input risch.input}
+\author{Timothy Daly}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{The Risch Algorithm}
+The Risch algorithm (see Ris68, Ris69a, Ris69b),
+named after Robert H. Risch, is an algorithm for
+the calculus operation of indefinite integration (i.e., finding
+antiderivatives). The algorithm transforms the problem of integration
+into a problem in algebra. It is based on the form of the function
+being integrated and on methods for integrating rational functions,
+radicals, logarithms, and exponential functions. Risch, who developed
+the algorithm in 1968, called it a decision procedure, because it is a
+method for deciding if a function has an elementary function as an
+indefinite integral, and also, if it does, determining it. The Risch
+algorithm is described (in more than 100 pages) in ``Algorithms for
+Computer Algebra'' by Keith O. Geddes, Stephen R. Czapor and George
+Labahn (see GCL92). The Risch-Norman algorithm, a faster but less powerful
+technique, was developed in 1976.
+
+The Risch algorithm is used to integrate elementary functions. These
+are functions obtained by composing exponentials, logarithms,
+radicals, trigonometry, and the four arithmetic operations ($+$, $-$,
+$\times$, $\div$). Laplace solved  this problem for the case of
+rational functions, as he showed that the indefinite integral of a
+rational function is a rational function and a finite number of
+constant multiples of logarithms of rational functions. The algorithm
+suggested by Laplace is usually described in calculus textbooks; as a
+computer program it was finally implemented in the 1960s.
+
+Liouville (see Lio1833a) formulated the problem solved by the Risch
+algorithm. Liouville proved by analytical means that if there is an
+elementary solution $g$ to the equation $g^{'} = f$ then for constants
+$\alpha_i$ and elementary functions $u_i$ and $v$ the solution of the form
+\[g = v + \sum_{i<n}{\alpha_i \ln(u_i)}\]
+
+Risch developed a method that allows one to only consider a finite set
+of elementary functions of Liouville's form.
+
+The intuition for the Risch algorithm comes from the behavior of the
+exponential and logarithm functions under differentiation. For the
+function $f e^g$, where $f$ and $g$ are differentiable functions, we
+have
+\[(f\cdot e^g)^{'} = (f^{'}+f\cdot g^{'})\cdot e^g,\]
+so if $e^g$ were in the result of an indefinite integration, it should
+be expected to be inside the integral. Also, as
+\[(f\cdot \ln^n g)^{'} = f^{'} \ln^n g + nf\frac{g^{'}}{g} \ln^{n-1} g\]
+then if $\ln^n g$ were in the result of an integraiton, then only a few
+powers of the logarithm should be expected.
+
+An important consequence of Risch's result is that the Gaussian integral
+\[\int_{-\infty}^{\infty}{e^{-x^2}~dx} = \sqrt{\pi}\]
+has no elementary antiderivative.
+
+\subsection{Problem examples}
+
+Finding an elementary antiderivative is very sensitive to details. For
+instance, the following function has an elementary antiderivative:
+\[f(x)=\frac{x}{\sqrt{x^4+10x^2-96x-71}}\]
+
+\begin{chunk}{*}
+)set break resume
+)sys rm -f risch.output
+)spool risch.output
+)set message test on
+)set message auto off
+)clear all
+ 
+--S 1 of 8
+f:=x/(sqrt(x^4+10*x^2-96*x-71))
+--R 
+--R
+--R                   x
+--R   (1)  -----------------------
+--R         +--------------------+
+--R         | 4      2
+--R        \|x  + 10x  - 96x - 71
+--R                                                     Type: Expression Integer
+--E 1
+
+--S 2 of 8
+integrate(f,x)
+--R 
+--R
+--R   (2)
+--R   -
+--R        log
+--R                                                    +--------------------+
+--R               6      4      3      2               | 4      2                8
+--R             (x  + 15x  - 80x  + 27x  - 528x + 781)\|x  + 10x  - 96x - 71  - x
+--R           + 
+--R                  6       5      4        3        2
+--R             - 20x  + 128x  - 54x  + 1408x  - 3124x  - 10001
+--R     /
+--R        8
+--R                                          Type: Union(Expression Integer,...)
+--E 2
+
+\end{chunk}
+
+But if 71 is changed to 72, it is not possible to represent the
+antiderivative using elementary functions. The reason is that the
+Galois group of
+\[x^4+10x^2-96x-71\]
+is $D(4)$, e.g. generated by permutations $(1\ 2\ 3\ 4)$ and $(1\ 3)$, and
+contains 8 elements (same as in $x^4-2$), while the Galois group of
+\[x^4+10x^2-96x-72\]
+is $S(4)$, e.g. generated by permutations $(1\ 2)$, $(1\ 3)$, $(1\ 4)$,
+and contains 24 elements.
+
+\begin{chunk}{*}
+--S 3 of 8
+g:=x/(sqrt(x^4+10*x^2-96*x-72))
+--R 
+--R
+--R                   x
+--R   (3)  -----------------------
+--R         +--------------------+
+--R         | 4      2
+--R        \|x  + 10x  - 96x - 72
+--R                                                     Type: Expression Integer
+--E 3
+
+--S 4 of 8
+integrate(g,x)
+--R 
+--R
+--R           x
+--I         ++              %S
+--I   (4)   |   -------------------------- d%S
+--R        ++    +-----------------------+
+--R              |  4       2
+--I             \|%S  + 10%S  - 96%S - 72
+--R                                          Type: Union(Expression Integer,...)
+--E 4
+
+\end{chunk}
+
+\subsection{Implementation}
+Transforming the Risch decision procedure into an algorithm that can
+be executed by a computer is a complex task that requires the use of
+heuristics and many refinements. No software (as of March 2008) is
+known to implement the full Risch algorithm, although several computer
+algebra systems have partial implementations. The only software that
+claims it has implemented in full the negative part is Axiom (e.g. if
+Axiom says ``no'' this means that antiderivative cannot be represented
+using elementary functions, but in many cases Axiom says ``error'').
+
+For example, of all known programs, only Axiom can find an elementary
+antiderivative for the following function.
+
+\begin{chunk}{*}
+
+)clear all 
+
+--S 5 of 8
+f:=x/(sqrt(x^4+10*x^2-96*x-71))
+--R 
+--R
+--R                   x
+--R   (1)  -----------------------
+--R         +--------------------+
+--R         | 4      2
+--R        \|x  + 10x  - 96x - 71
+--R                                                     Type: Expression Integer
+--E 5
+
+\end{chunk}
+The solution returned by Axiom is
+\[
+\begin{array}{rcl}
+F(x)&=&
+-\frac{1}{8}\ln\left((x^6+15x^4-80x^3+27x^2-528x+781)\sqrt(x^4+10x^2-96x-71)
+\right.\\
+&&\left.-(x^8+20x^6-128x^5+54x^4-1408x^3+3124x^2+10001)\right)+C
+\end{array}\]
+
+\begin{chunk}{*}
+--S 6 of 8
+integrate(f,x)
+--R 
+--R
+--R   (2)
+--R   -
+--R        log
+--R                                                    +--------------------+
+--R               6      4      3      2               | 4      2                8
+--R             (x  + 15x  - 80x  + 27x  - 528x + 781)\|x  + 10x  - 96x - 71  - x
+--R           + 
+--R                  6       5      4        3        2
+--R             - 20x  + 128x  - 54x  + 1408x  - 3124x  - 10001
+--R     /
+--R        8
+--R                                          Type: Union(Expression Integer,...)
+--E 6
+
+\end{chunk}
+
+Many programs (including Maple and Mathematica) can find the
+antiderivative for the above function using non-elementary functions
+(i.e. elliptic integrals, that is, integrals of the form
+\[f(x)=\int_c^x{R(t,P(t))~dt}\]
+where $R$ is a rational function of its two arguments, $P$ is the square
+root of a polynomial of degree 3 or 4 with no repeated roots, and $c$
+is a constant) (see NIST10, AS64), which are outside the scope of the
+Risch algorithm).
+
+The following function s a more complex example, which most software
+cannot find an elementary antiderivative for.
+\[f(x)=
+\frac{x^2+2x+1+(3x+1)\sqrt{x+\ln x}}{x\sqrt{x+\ln x}(x+\sqrt{x+\ln x})}\]
+
+\begin{chunk}{*}
+)clear all
+
+--S 7 of 8
+f:=(x^2+2*x+1+(3*x+1)*sqrt(x+log(x)))/(x*sqrt(x+log(x))*(x+sqrt(x+log(x))))
+--R 
+--R
+--R                 +----------+    2
+--R        (3x + 1)\|log(x) + x  + x  + 2x + 1
+--R   (1)  -----------------------------------
+--R           2 +----------+               2
+--R          x \|log(x) + x  + x log(x) + x
+--R                                                     Type: Expression Integer
+--E 7
+
+--S 8 of 8
+integrate(f,x)
+--R 
+--R 
+--RDaly Bug
+--R   >> Error detected within library code:
+--R   integrate: implementation incomplete (constant residues)
+--R
+--R   Continuing to read the file...
+--R
+--E 8
+
+)spool 
+)lisp (bye)
+
+\end{chunk}
+
+In fact, the antiderivative of this function has a fairly short form
+\[F(x)=2(\sqrt{x+\ln x} + \ln(x+\sqrt{x+\ln x}))+C\]
+
+\subsection{Decidability}
+
+The Risch Algorithm applied to general functions is not an algorithm
+but a semi-algorithm because it needs as a part to check if some
+expression is equivalent to zero, (constant problem), in particular in
+the constant field. For a common meaning of an elementary function it
+is not known whether such an algorithm exists or not (current computer
+algebra systems use heuristics), moreover, if one adds the absolute
+value function to the list of elementary functions, it is known that
+no such algorithm exists, see Richardson's theorem (see RF94)
+
+Note that, technically, this issue also arises in the polynomial
+division algorithm, it will not work correctly if it cannot correctly
+determine if the coefficients are identically $0$. Therefore, the
+Risch Algorithm requires that the constant field be computable, i.e.,
+that for elements not dependent on $x$, that the problem of
+zero-equivalence is decidable.
+
+\subsection{License}
+This information was originally published under Wikipedia under the
+CC-BY-SA license (
+\verb|http://creativecommons.org/licenses/by-sa/3.0/|) on the page\\
+(\verb|http://en.wikipedia.org/w/index.php?title=Risch_algorithm#Implementation|)
+
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} Wikipedia web page\\
+\verb|http://en.wikipedia.org/w/index.php?title=Risch_algorithm#Implementation|
+\bibitem{2} Creative Common License\\
+\verb|http://creativecommons.org/licenses/by-sa/3.0|
+\end{thebibliography}
+\end{document}
