diff --git a/changelog b/changelog
index 0240200..bcafd11 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20100218 tpd src/axiom-website/patches.html 20100218.01.tpd.patch
+20100218 tpd src/input/pmint.input update pmint with code
 20100217 tpd src/axiom-website/patches.html 20100217.01.tpd.patch
 20100217 tpd src/interp/ptrees.lisp treeshake
 20100217 tpd src/interp/cparse.lisp treeshake
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 6b3659e..e3ede79 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2467,5 +2467,7 @@ books/bookvol10.1 add Clifford chapter, per John Fletcher<br/>
 books/bookvol5 treeshake cparse posit serror<br/>
 <a href="patches/20100217.01.tpd.patch">20100217.01.tpd.patch</a>
 books/bookvol5 treeshake cparse, ptrees<br/>
+<a href="patches/20100218.01.tpd.patch">20100218.01.tpd.patch</a>
+src/input/pmint.input update pmint with code<br/>
  </body>
 </html>
diff --git a/src/input/pmint.input.pamphlet b/src/input/pmint.input.pamphlet
index 827c586..39310dd 100644
--- a/src/input/pmint.input.pamphlet
+++ b/src/input/pmint.input.pamphlet
@@ -9,12 +9,111 @@
 \eject
 \tableofcontents
 \eject
-\section{License}
-\begin{chunk}{license}
---Copyright The Numerical Algorithms Group Limited 1991.
-\end{chunk}
+\begin{verbatim}
+
+# The Poor Man's Integrator, a parallel integration heuristic
+# Version 1.1 ---  May 10, 2005  (c) M.Bronstein and INRIA 2004-2005
+pmint := proc(f,x)
+ local ff, si, li, lin, lout, ld, q, d, l, vars, dx, ls, fint, lc;
+ ff := eval(convert(f, tan));        # convert trigs to tan
+ si := select(proc(d) diff(d,x) <> 0 end, indets(ff));
+ si := select(proc(d) diff(d,x) <> 0 end, indets(map(diff, si, x))) union si;
+ li := [op(si)];        # list of terms in integrand and its derivative
+ lin := [seq(d=`tools/genglobal`(x), d=li)];    # substitution terms->indets
+ lout := [seq(rhs(d)=lhs(d), d=lin)];        # substitution indets->terms
+ ld := subs(lin, map(diff, li, x));    # derivatives of all the terms
+ q := lcm(seq(denom(d), d=ld));        # denominator of the total derivation
+ l := [seq(normal(q * d), d=ld)];    # q * derivatives of all the terms
+ vars := map(lhs, lout);
+ dx := totalDerivation(vars, l);        # vector field dx = q * d/dx
+ ls := [seq(getSpecial(d, lin), d=li)];    # list of known Darboux for dx
+ fint := subs(lout, pmIntegrate(subs(lin, ff), dx, q, vars, ls));
+ lc := select(proc(d) convert(d,string)[1]="_"; end, indets(fint, name));
+ subs({seq(d = 0, d=lc minus si)}, fint);
+end;
+
+getSpecial := proc(f, l) local p;        # return known Darboux polys
+ p := op(0,f);
+ if p = `tan` then [1+subs(l,f)^2, false];
+ elif p = `tanh` then [1 + subs(l,f), false], [1 - subs(l,f), false];
+ elif p = `LambertW` then [subs(l,f), true];
+ else NULL; fi;
+end;
+
+totalDerivation := proc(lv, ld)
+ proc(f) local fp, i;
+     fp := 0; for i to nops(ld) do fp := fp + ld[i] * diff(f, lv[i]); od;
+     fp;
+ end;
+end;
+
+pmIntegrate := proc(f, d, q, vars)
+ local ls, splq, s, ff, df, spl, cden, dg, monomials, cand, lunk, sol, i;
+ if nargs = 5 then ls := args[5]; else ls := []; fi;
+ splq := splitFactor(q, d);
+ s := splq[1]; for i to nops(ls) do if ls[i][2] then s := s*ls[i][1]; fi; od;
+ ff := normal(f); df := denom(ff); spl := splitFactor(df, d);
+ cden := s * spl[1] * deflation(spl[2], d);
+ dg := 1 + degree(s) +  max(degree(numer(ff)), degree(denom(ff)));
+ monomials := [op(enumerateMonoms(vars, dg))];
+ cand := add('_A'[i] * monomials[i], i = 1..nops(monomials)) / cden;
+ lunk := { seq('_A'[i], i = 1..nops(monomials)) };
+ sol:= tryIntegral(f, d, q, vars, cand, lunk, spl[1], spl[2], splq[1], ls, 0);
+ if sol[1] then sol := tryIntegral(f, d, q, vars, cand, lunk,
+                     spl[1], spl[2], splq[1], ls, I); fi;
+ if sol[1] then Int(f); else sol[2]; fi;
+end;
+
+tryIntegral := proc(f, d, q, vars, cand, lunk, l1, l2, l3, ls, K)
+ local candlog, p, candidate, i, sol;
+ candlog := [op({ myfactors(l1, K), myfactors(l2, K), myfactors(l3, K) }
+         union { seq(p[1], p=ls) })];
+ candidate := cand + add('_B'[i] * log(candlog[i]), i = 1..nops(candlog));
+ sol := solve({coeffs(numer(normal(f - d(candidate)/q)), {op(vars)})},
+             lunk union { seq('_B'[i], i = 1..nops(candlog)) });
+ [evalb(sol=NULL), subs(sol,candidate)];
+end;
+
+myfactors := proc(p, K) local l, fact;
+ if K = 0 then l := factors(p); else l := factors(p, K); fi;
+ seq(fact[1], fact=l[2]);
+end;
+
+enumerateMonoms := proc(vars, d) local n, x, i, v, s, w;
+ n := nops(vars);
+ if n = 0 then {1}; else
+     x := vars[n];
+     v := [seq(vars[i], i = 1..n-1)];
+     s := enumerateMonoms(v, d);
+     for i to d do s := s union {seq(x^i*w,w=enumerateMonoms(v,d-i))}; od;
+    s;
+ fi;
+end;
+
+splitFactor := proc(p, d) local si, x, c, q, spl, s, splh;
+ si := select(proc(z) d(z) <> 0 end, indets(p,name));
+ if si = {} then RETURN([1,p]) fi;
+ x := si[1];
+ c := content(p, x, 'q');
+ spl := splitFactor(c, d);
+ s := normal(gcd(q, d(q)) / gcd(q, diff(q, x)));
+ if degree(s) = 0 then RETURN([spl[1], q * spl[2]]); fi;
+ splh := splitFactor(normal(q / s), d);
+ [spl[1] * splh[1] * s, spl[2] * splh[2]];
+end;
+
+deflation := proc(p, d) local si, x, c, q;
+ si := select(proc(z) d(z) <> 0 end, indets(p,name));
+ if si = {} then RETURN(p) fi;
+ x := si[1];
+ c := content(p, x, 'q');
+ deflation(c, d) * gcd(q, diff(q, x));
+end;
+
+\end{verbatim}
 \begin{chunk}{*}
 )set break resume
+)sys rm -f pmint.output
 )spool pmint.output
 )set message test on
 )set message auto off
@@ -23,8 +122,9 @@
 \end{chunk}
 \section{Rational Functions}
 \begin{chunk}{*}
---S 1 of 29
-f:=(x^7-24*x^4-4*x^2+8*x-8)/(x^8+6*x^6+12*x^4+8*x^2)
+)clear all
+--S 1 of 60
+t1a:=(x^7-24*x^4-4*x^2+8*x-8)/(x^8+6*x^6+12*x^4+8*x^2)
 --R 
 --R
 --R         7      4     2
@@ -35,8 +135,8 @@ f:=(x^7-24*x^4-4*x^2+8*x-8)/(x^8+6*x^6+12*x^4+8*x^2)
 --R                                            Type: Fraction Polynomial Integer
 --E 1
 
---S 2 of 29
-g:=integrate(f,x)
+--S 2 of 60
+t1b:=(4+8*x^2+6*x+3*x^3)/(x*(x^4+4*x^2+4))+log(x)
 --R 
 --R
 --R          5     3                 3     2
@@ -44,28 +144,36 @@ g:=integrate(f,x)
 --R   (2)  ------------------------------------------
 --R                        5     3
 --R                       x  + 4x  + 4x
---R                                          Type: Union(Expression Integer,...)
+--R                                                     Type: Expression Integer
 --E 2
 
---S 3 of 29
-differentiate(g,x)
+--S 3 of 60
+t1c:=integrate(t1a,x)
 --R 
 --R
---R         7      4     2
---R        x  - 24x  - 4x  + 8x - 8
---R   (3)  ------------------------
---R           8     6      4     2
---R          x  + 6x  + 12x  + 8x
---R                                                     Type: Expression Integer
+--R          5     3                 3     2
+--R        (x  + 4x  + 4x)log(x) + 3x  + 8x  + 6x + 4
+--R   (3)  ------------------------------------------
+--R                        5     3
+--R                       x  + 4x  + 4x
+--R                                          Type: Union(Expression Integer,...)
 --E 3
 
-)clear all
+--S 4 of 60
+t1d:=t1c-t1b
+--R 
+--R
+--R   (4)  0
+--R                                                     Type: Expression Integer
+--E 4
 
 \end{chunk}
 \section{Trigonometric Functions}
 \begin{chunk}{*}
---S 4 of 29
-f:=(x-tan(x))/tan(x)^2 + tan(x)
+
+)clear all
+--S 5 of 60
+t2a:=(x-tan(x))/tan(x)^2+tan(x)
 --R 
 --R
 --R              3
@@ -74,38 +182,45 @@ f:=(x-tan(x))/tan(x)^2 + tan(x)
 --R                     2
 --R               tan(x)
 --R                                                     Type: Expression Integer
---E 4
+--E 5
 
---S 5 of 29
-g:=integrate(f,x)
+--S 6 of 60
+t2b:=(-x-(1/2)*tan(x)*x^2)/tan(x)+(1/2)*log(1+tan(x)^2)
 --R 
 --R
 --R                        2         2
 --R        tan(x)log(tan(x)  + 1) - x tan(x) - 2x
 --R   (2)  --------------------------------------
 --R                        2tan(x)
+--R                                                     Type: Expression Integer
+--E 6
+
+--S 7 of 60
+t2c:=integrate(t2a,x)
+--R 
+--R
+--R                        2         2
+--R        tan(x)log(tan(x)  + 1) - x tan(x) - 2x
+--R   (3)  --------------------------------------
+--R                        2tan(x)
 --R                                          Type: Union(Expression Integer,...)
---E 5
+--E 7
 
---S 6 of 29
-differentiate(g,x)
+--S 8 of 60
+t2d:=t2c-t2b
 --R 
 --R
---R              3
---R        tan(x)  - tan(x) + x
---R   (3)  --------------------
---R                     2
---R               tan(x)
+--R   (4)  0
 --R                                                     Type: Expression Integer
---E 6
-
-)clear all
+--E 8
 
 \end{chunk}
 \section{Log-Exp Functions}
 \begin{chunk}{*}
---S 7 of 29
-f:=(1+x+x*exp(x))*(x+log(x)+exp(x)-1)/(x+log(x)+exp(x))^2/x
+
+)clear all
+--S 9 of 60
+t3a:=(1+x+x*exp(x))*(x+log(x)+exp(x)-1)/((x+log(x)+exp(x))^2*x)
 --R 
 --R
 --R              x                       x 2     2       x    2
@@ -114,10 +229,10 @@ f:=(1+x+x*exp(x))*(x+log(x)+exp(x)-1)/(x+log(x)+exp(x))^2/x
 --R                2         x     2               x 2     2  x    3
 --R        x log(x)  + (2x %e  + 2x )log(x) + x (%e )  + 2x %e  + x
 --R                                                     Type: Expression Integer
---E 7
+--E 9
 
---S 8 of 29
-g:=integrate(f,x)
+--S 10 of 60
+t3b:=1/(x+log(x)+exp(x))+log(x+log(x)+exp(x))
 --R 
 --R
 --R                    x                    x
@@ -125,257 +240,329 @@ g:=integrate(f,x)
 --R   (2)  -------------------------------------------
 --R                                 x
 --R                      log(x) + %e  + x
---R                                          Type: Union(Expression Integer,...)
---E 8
-
---S 9 of 29
-differentiate(g,x)
---R 
---R
---R              x                       x 2     2       x    2
---R         (x %e  + x + 1)log(x) + x (%e )  + (x  + 1)%e  + x  - 1
---R   (3)  ---------------------------------------------------------
---R                2         x     2               x 2     2  x    3
---R        x log(x)  + (2x %e  + 2x )log(x) + x (%e )  + 2x %e  + x
---R                                                     Type: Expression Integer
---E 9
-
-)clear all
-
-\end{chunk}
-\section{Liouvillian special functions}
-\begin{chunk}{*}
---S 10 of 29
-f:=exp(-x^2)+erf(x)/(erf(x)^3-erf(x)^2-erf(x)+1)
---R 
---R
---R                                             2
---R               3         2                - x
---R        (erf(x)  - erf(x)  - erf(x) + 1)%e     + erf(x)
---R   (1)  -----------------------------------------------
---R                       3         2
---R                 erf(x)  - erf(x)  - erf(x) + 1
 --R                                                     Type: Expression Integer
 --E 10
 
---S 11 of 29 
-g:=integrate(f,x)
+--S 11 of 60
+t3c:=integrate(t3a,x)
+--R 
 --R
---R                                                      2
---I           x         3          2                 - %G
---I         ++  (erf(%G)  - erf(%G)  - erf(%G) + 1)%e      + erf(%G)
---I   (2)   |   ---------------------------------------------------- d%G
---R        ++                    3          2
---I                       erf(%G)  - erf(%G)  - erf(%G) + 1
+--R                    x                    x
+--R        (log(x) + %e  + x)log(log(x) + %e  + x) + 1
+--R   (3)  -------------------------------------------
+--R                                 x
+--R                      log(x) + %e  + x
 --R                                          Type: Union(Expression Integer,...)
 --E 11
 
---S 12 of 29
-differentiate(g,x)
+--S 12 of 60
+t3d:=t3b-t3a
+--R 
 --R
---R                                             2
---R               3         2                - x
---R        (erf(x)  - erf(x)  - erf(x) + 1)%e     + erf(x)
---R   (3)  -----------------------------------------------
---R                       3         2
---R                 erf(x)  - erf(x)  - erf(x) + 1
+--R   (4)
+--R                  2         x     2               x 2     2  x    3
+--R         (x log(x)  + (2x %e  + 2x )log(x) + x (%e )  + 2x %e  + x )
+--R      *
+--R                        x
+--R         log(log(x) + %e  + x)
+--R     + 
+--R              x                   x 2       2           x
+--R       (- x %e  - 1)log(x) - x (%e )  + (- x  + x - 1)%e  + 1
+--R  /
+--R             2         x     2               x 2     2  x    3
+--R     x log(x)  + (2x %e  + 2x )log(x) + x (%e )  + 2x %e  + x
 --R                                                     Type: Expression Integer
 --E 12
 
-)clear all
+\end{chunk}
+\section{Liouvillian Special Functions}
+\begin{chunk}{*}
 
---S 13 of 29
-f:=(exp(-x^2)+erf(x))/(erf(x)^3-erf(x)^2-erf(x)+1)
+)clear all
+--S 13 of 60
+t4a:=exp(-x^2)*erf(x)/(erf(x)^3-erf(x)^2-erf(x)+1)
 --R 
 --R
---R                     2
---R                  - x
---R                %e     + erf(x)
+--R                            2
+--R                         - x
+--R                 erf(x)%e
 --R   (1)  ------------------------------
 --R              3         2
 --R        erf(x)  - erf(x)  - erf(x) + 1
 --R                                                     Type: Expression Integer
 --E 13
 
---S 14 of 29 used to work!
-g:=integrate(f,x)
+--S 14 of 60
+t4b:=-(1/4)*(sqrt(%pi)/(erf(x)-1))-(1/8)*sqrt(%pi)*log(erf(x)+1)+_
+      (1/8)*sqrt(%pi)*log(erf(x)-1)
 --R 
 --R
---R                           2
---I           x           - %G
---I         ++          %e      + erf(%G)
---I   (3)   |   --------------------------------- d%G
---R        ++          3          2
---I             erf(%G)  - erf(%G)  - erf(%G) + 1
---R                                          Type: Union(Expression Integer,...)
+--R   (2)
+--R                      +---+                               +---+
+--R       (- erf(x) + 1)\|%pi log(erf(x) + 1) + (erf(x) - 1)\|%pi log(erf(x) - 1)
+--R     + 
+--R           +---+
+--R       - 2\|%pi
+--R  /
+--R     8erf(x) - 8
+--R                                                     Type: Expression Integer
 --E 14
--- should be:
---    1   sqrt(%pi)     1                           1
--- -  - ------------  - - sqrt(%pi) log(erf(x)+1) + - sqrt(%pi) log(erf(x)-1)
---    4  erf(x) - 1     8                           8
 
---S 15 of 29
-differentiate(g,x)
+--S 15 of 60
+t4c:=integrate(t4a,x)
+--R 
 --R
---R                     2
---R                  - x
---R                %e     + erf(x)
---R   (3)  ------------------------------
---R              3         2
---R        erf(x)  - erf(x)  - erf(x) + 1
---R                                                     Type: Expression Integer
+--R                     +---+    erf(x) - 1      +---+
+--R        (erf(x) - 1)\|%pi log(----------) - 2\|%pi
+--R                              erf(x) + 1
+--R   (3)  -------------------------------------------
+--R                        8erf(x) - 8
+--R                                          Type: Union(Expression Integer,...)
 --E 15
 
-)clear all
- 
-\end{chunk}
-\section{Airy Functions}
-\begin{chunk}{*}
--- Axiom does not have a 2 argument form of the airyAi function
---  f:=(x-airyAi(x)*airyAi(1,x))/(x^2-airyAi(x)^2)
---it has the integral
---R
---R  1                    1
---R  - log(x+airyAi(x)) + - log(x-airyAi(x))
---R  2                    2
-
-
---S 16 of 29 will certainly fail
-f:=(x-airyAi(x))/(x^2-airyAi(x)^2)
+--S 16 of 60
+t4d:=t4c-t4b
+--R 
 --R
---R              1
---R   (1)  -------------
---R        airyAi(x) + x
+--R         +---+                   +---+                   +---+    erf(x) - 1
+--R        \|%pi log(erf(x) + 1) - \|%pi log(erf(x) - 1) + \|%pi log(----------)
+--R                                                                  erf(x) + 1
+--R   (4)  ---------------------------------------------------------------------
+--R                                          8
 --R                                                     Type: Expression Integer
 --E 16
 
---S 17 of 29 will certainly fail
-g:=integrate(f,x)
---R
---R           x
---R         ++         1
---R   (2)   |   --------------- d%G
---R        ++   airyAi(%G) + %G
---R                                          Type: Union(Expression Integer,...)
+\end{chunk}
+\section{Airy Functions}
+\begin{chunk}{*}
+
+)clear all
+--S 17 of 60
+t5a:=(x-AiryAi(x)*AiryAi(1,x))/(x^2-AiryAi(x)^2)
+--R 
+--R   There are no library operations named AiryAi 
+--R      Use HyperDoc Browse or issue
+--R                               )what op AiryAi
+--R      to learn if there is any operation containing " AiryAi " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      AiryAi with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
 --E 17
 
---S 18 of 29
-differentiate(g,x)
---R
---R              1
---R   (3)  -------------
---R        airyAi(x) + x
---R                                                     Type: Expression Integer
+--S 18 of 60
+t5b:=(1/2)*log(x+AiryAi(x))+(1/2)*log(x-AiryAi(x))
+--R 
+--R   There are no library operations named AiryAi 
+--R      Use HyperDoc Browse or issue
+--R                               )what op AiryAi
+--R      to learn if there is any operation containing " AiryAi " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      AiryAi with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
 --E 18
 
-)clear all
-
---S 19 of 29
-f:=x^2*airyAi(x)
+--S 19 of 60
+t5c:=integrate(t5a,x)
 --R 
 --R
---R         2
---R   (1)  x airyAi(x)
---R                                                     Type: Expression Integer
+--R   (1)  t5a x
+--R                                            Type: Polynomial Fraction Integer
 --E 19
 
---S 20 of 29 used to work
-g:=integrate(f,x)
+--S 20 of 60
+t5d:=t5b-t5c
 --R 
 --R
---R           x
---R         ++    2
---I   (2)   |   %G airyAi(%G)d%G
---R        ++
---R                                          Type: Union(Expression Integer,...)
+--R   (2)  - t5a x + t5b
+--R                                            Type: Polynomial Fraction Integer
 --E 20
--- should be:
---  -airyAi(x) + airyAi(1,x) x
-
---S 21 of 29
-differentiate(g,x)
---R
---R         2
---R   (3)  x airyAi(x)
---R                                                     Type: Expression Integer
---E 21
 
 )clear all
+--S 21 of 60
+t5e:=x^2*AiryAi(x)
+--R 
+--R   There are no library operations named AiryAi 
+--R      Use HyperDoc Browse or issue
+--R                               )what op AiryAi
+--R      to learn if there is any operation containing " AiryAi " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      AiryAi with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 21
 
-\end{chunk}
-\section{Bessel functions}
-\begin{chunk}{*}
---S 22 of 29
-f:=besselJ(y+1,x)/besselJ(y,x)
+--S 22 of 60
+t5f:=-AiryAi(x)+AiryAi(1,x)*x
 --R 
---R
---R        besselJ(y + 1,x)
---R   (1)  ----------------
---R          besselJ(y,x)
---R                                                     Type: Expression Integer
+--R   There are no library operations named AiryAi 
+--R      Use HyperDoc Browse or issue
+--R                               )what op AiryAi
+--R      to learn if there is any operation containing " AiryAi " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      AiryAi with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
 --E 22
 
---S 23 of 29 used to work
-g:=integrate(f,x)
+--S 23 of 60
+t5g:=integrate(t5e,x)
 --R 
 --R
---R           x
---I         ++  besselJ(y + 1,%G)
---I   (2)   |   ----------------- d%G
---I        ++     besselJ(y,%G)
---R                                          Type: Union(Expression Integer,...)
+--R   (1)  t5e x
+--R                                            Type: Polynomial Fraction Integer
 --E 23
--- should be:
---  y log(x) - log(besselJ(y,x))
 
---S 24 of 29
-differentiate(g,x)
+--S 24 of 60
+t5h:=t5f-t5g
+--R 
 --R
---R        besselJ(y + 1,x)
---R   (3)  ----------------
---R          besselJ(y,x)
---R                                                     Type: Expression Integer
+--R   (2)  - t5e x + t5f
+--R                                            Type: Polynomial Fraction Integer
 --E 24
 
-)clear all
-
+\end{chunk}
+\section{Bessel Functions}
+\begin{chunk}{*}
 
--- Axiom does not have Maple's normal function
---S 25 of 29 used to work
---f:=normal(y*besselJ(y,x)/x - besselJ(y+1,x))
-f:=y*besselJ(y,x)/x - besselJ(y+1,x)
---R
---R        - x besselJ(y + 1,x) + y besselJ(y,x)
---R   (1)  -------------------------------------
---R                          x
---R                                                     Type: Expression Integer
+)clear all
+--S 25 of 60
+t6a:=BesselJ(nu+1,x)/BesselJ(nu,x)
+--R 
+--R   There are no library operations named BesselJ 
+--R      Use HyperDoc Browse or issue
+--R                              )what op BesselJ
+--R      to learn if there is any operation containing " BesselJ " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      BesselJ with argument type(s) 
+--R                             Polynomial Integer
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
 --E 25
 
---S 26 of 29
-g:=integrate(f,x)
---R
---R           x
---I         ++  - %G besselJ(y + 1,%G) + y besselJ(y,%G)
---I   (2)   |   ---------------------------------------- d%G
---I        ++                      %G
---R                                          Type: Union(Expression Integer,...)
+--S 26 of 60
+t6b:=nu*log(x)-log(BesselJ(nu,x))
+--R 
+--R   There are no library operations named BesselJ 
+--R      Use HyperDoc Browse or issue
+--R                              )what op BesselJ
+--R      to learn if there is any operation containing " BesselJ " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      BesselJ with argument type(s) 
+--R                                 Variable nu
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
 --E 26
 
---S 27 of 29
-differentiate(g,x)
+--S 27 of 60
+t6c:=integrate(t6a,x)
+--R 
 --R
---R        - x besselJ(y + 1,x) + y besselJ(y,x)
---R   (3)  -------------------------------------
---R                          x
---R                                                     Type: Expression Integer
+--R   (1)  t6a x
+--R                                            Type: Polynomial Fraction Integer
 --E 27
+
+--S 28 of 60
+t6d:=t6b-t6c
+--R 
+--R
+--R   (2)  - t6a x + t6b
+--R                                            Type: Polynomial Fraction Integer
+--E 28
+
 )clear all
+--S 29 of 60
+t6e:=normal(nu*BesselJ(nu,x)/x-BesselJ(nu+1,x))
+--R 
+--R   There are no library operations named BesselJ 
+--R      Use HyperDoc Browse or issue
+--R                              )what op BesselJ
+--R      to learn if there is any operation containing " BesselJ " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      BesselJ with argument type(s) 
+--R                                 Variable nu
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 29
+
+--S 30 of 60
+t6f:=BesselJ(nu,x)
+--R 
+--R   There are no library operations named BesselJ 
+--R      Use HyperDoc Browse or issue
+--R                              )what op BesselJ
+--R      to learn if there is any operation containing " BesselJ " in its 
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      BesselJ with argument type(s) 
+--R                                 Variable nu
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 30
+
+--S 31 of 60
+t6g:=integrate(t6e,x)
+--R 
+--R
+--R   (1)  t6e x
+--R                                            Type: Polynomial Fraction Integer
+--E 31
+
+--S 32 of 60
+t6h:=t6f-t6g
+--R 
+--R
+--R   (2)  - t6e x + t6f
+--R                                            Type: Polynomial Fraction Integer
+--E 32
 
 \end{chunk}
-\section{Whittaker functions}
+\section{Whittaker Functions}
 \begin{chunk}{*}
---S 28 of 29 used to work
-f:=WhittakerW(u+1,n,x)/(WhittakerW(u,n,x)*x)
+
+)clear all
+--S 33 of 60
+t7a:=WhittakerW(mu+1,nu,x)/(WhittakerW(mu,nu,x)*x)
 --R 
 --R   There are no library operations named WhittakerW 
 --R      Use HyperDoc Browse or issue
@@ -387,35 +574,56 @@ f:=WhittakerW(u+1,n,x)/(WhittakerW(u,n,x)*x)
 --R   Cannot find a definition or applicable library operation named 
 --R      WhittakerW with argument type(s) 
 --R                             Polynomial Integer
---R                                 Variable n
+--R                                 Variable nu
 --R                                 Variable x
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
---E 28
+--E 33
 
--- Axiom does not implement WhittakerW
--- should be:
---  Whittaker(u+1,n,x)
---  ------------------
---  Whittaker(u,n,x) x
+--S 34 of 60
+t7b:=(x/2)-mu*log(x)-log(WhattakerW(mu,nu,x))
+--R 
+--R   There are no library operations named WhattakerW 
+--R      Use HyperDoc Browse or issue
+--R                             )what op WhattakerW
+--R      to learn if there is any operation containing " WhattakerW " in 
+--R      its name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      WhattakerW with argument type(s) 
+--R                                 Variable mu
+--R                                 Variable nu
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 34
 
--- of 29 used to work
---integrate(f,x)
--- 22
--- should be:
---  x
---  -  - u log(x) - log(WhattakerW(u,n,x))
---  2
+--S 35 of 60
+t7c:=integrate(t7a,x)
+--R 
+--R
+--R   (1)  t7a x
+--R                                            Type: Polynomial Fraction Integer
+--E 35
 
-)clear all
+--S 36 of 60
+t7d:=t7b-t7c
+--R 
+--R
+--R   (2)  - t7a x + t7b
+--R                                            Type: Polynomial Fraction Integer
+--E 36
 
 \end{chunk}
-\section{The Lambert W function} 
+\section{Lambert W Function}
 \begin{chunk}{*}
--- Axiom does not implement LambertW
---S 29 of 29 used to work
-f:=LambertW(x)
+
+)clear all
+--S 37 of 60
+t8a:=LambertW(x)
 --R 
 --R   There are no library operations named LambertW 
 --R      Use HyperDoc Browse or issue
@@ -430,124 +638,336 @@ f:=LambertW(x)
 --R      
 --R      Perhaps you should use "@" to indicate the required return type, 
 --R      or "$" to specify which version of the function you need.
---E 29
+--E 37
+
+--S 38 of 60
+t8b:=(x^2+LambertW(x)^2*x^2-LambertW(x)*x^2)/(x*LambertW(x))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 38
+
+--S 39 of 60
+t8c:=integrate(t8a,x)
+--R 
+--R
+--R   (1)  t8a x
+--R                                            Type: Polynomial Fraction Integer
+--E 39
+
+--S 40 of 60
+t8d:=t8b-t8c
+--R 
+--R
+--R   (2)  - t8a x + t8b
+--R                                            Type: Polynomial Fraction Integer
+--E 40
+
+)clear all
+--S 41 of 60
+t8e:=sin(LambertW(x))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 41
+
+--S 42 of 60
+t8f:=((1/2)*LambertW(x)*tan((1/2)*LambertW(x))^2*x^2+_
+      LambertW(x)*tan((1/2)*LambertW(x))*x^2+_
+      tan((1/2)*LambertW(x))*x^2-_
+      (1/2)*LambertW(x)*x^2) / _
+     (x*LambertW(x)*(1+tan((1/2)*LambertW(x))^2))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                                 Variable x
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 42
+
+--S 43 of 60
+t8g:=integrate(t8e,x)
+--R 
+--R
+--R   (1)  t8e x
+--R                                            Type: Polynomial Fraction Integer
+--E 43
+
+--S 44 of 60
+t8h:=t8f-t8g
+--R 
+--R
+--R   (2)  - t8e x + t8f
+--R                                            Type: Polynomial Fraction Integer
+--E 44
+
+)clear all
+--S 45 of 60
+t8i:=((x^2+2)*LambertW(x^2)^2+x^2*(2*LambertW(x^2)+1))/(x*(1+LambertW(x^2)^3))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Polynomial Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 45
+
+--S 46 of 60
+t8j:=((1/2)*x^4*LambertW(x^2)^2+_
+      x^4*LambertW(x^2)+_
+      +x^4/2+_
+      LambertW(x^2)^2*x^2+_
+      x^2*LambertW(x^2))/_
+     (x^2*LambertW(x^2)*(1+LambertW(x^2))^2)+_
+     log(1+LambertW(x^2))     
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Polynomial Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 46
+
+--S 47 of 60
+t8k:=integrate(t8i,x)
+--R 
+--R
+--R   (1)  t8i x
+--R                                            Type: Polynomial Fraction Integer
+--E 47
 
--- of 29 used to work
--- g:=integrate(f,x)
--- 24
--- should be:
---    2             2  2                2
---   x + LambertW(x)  x  - LambertW(x) x
---   ------------------------------------
---          x LambertW(x)
-
--- of 29 used to work
--- integrate(sin(LambertW(x)),x)
--- 25
---should be:
--- +-                                                  -+
--- |                                     2              |
--- |                    +-             -+               |
--- |  1                 | 1             |  2            |
--- |  - LambertW(x) tan | - LambertW(x) | x   +         |
--- |  2                 | 2             |               |
--- |                    +-             -+               |
--- |                                                    |
--- |                  +-             -+                 |
--- |                  | 1             |  2              |
--- |  LambertW(x) tan | - LambertW(x) | x  +            |
--- |                  | 2             |                 |
--- |                  +-             -+                 |
--- |                                                    |
--- |      +-             -+                             |
--- |      | 1             |  2      1              2    |
--- |  tan | - LambertW(x) | x  -    - LambertW(x) x     |
--- |      | 2             |         2                   |
--- |      +-             -+                             |
--- +-                                                  -+
--- ------------------------------------------------------
---                  +-                         2 -+
---                  |         +-             -+   |
---                  |         | 1             |   |
---    x LambertW(x) | 1 + tan | - LambertW(x) |   |
---                  |         | 2             |   |
---                  |         +-             -+   |
---                  +-                           -+
-
--- of 29 used to work
---f:=((x^2+2)*LambertW(x^2)^2+x^2*(2*LambertW(x^2)+1))/(x*(1+LambertW(x^2)^3))
--- 26
---should be:
---                       2
---    2                2      2              2
---  (x  + 2) LambertW(x )  + x  (2 LambertW(x ) + 1)
---  ------------------------------------------------
---                               3
---                            2  
---           x (1 + LambertW(x ))
-
--- of 29 used to work
---integrate(f,x)
--- 27
---should be:
---                 2                    4
---1  4           2     4          2    x              2   2    2           2
---- x  LambertW(x ) + x LambertW(x ) + -- + LambertW(x ) x  + x  LambertW(x )
---2                                    2
------------------------------------------------------------------------------
---                                              2
---              2          2                 2
---             x LambertW(x ) (1 + LambertW(x ))
---
---  +
---                     2
---   log(1 + LambertW(x ))
-
--- of 29 used to work
---f:=(2*LambertW(x^2)*cos(LambertW(x^2))*(a*x+LambertW(x^2))+a*x*(1+LambertW(x^2)) + 2*LambertW(x^2))/((1+LambertW(x^2))*(a*x+LambertW(x^2))*x)
---
--- 28
---+-                                                       -+
---|                                                         |
---|             2                2                    2     |
---| 2 LambertW(x ) cos(LambertW(x )) (a x + LambertW(x )) + |
---|                                                         |
---|                   2                 2                   |
---| a x (1 + LambertW(x )) + 2 LambertW(x )                 |
---|                                                         |
---+-                                                       -+
--------------------------------------------------------------
---                2                 2
--- (1 + LambertW(x ))(a x+LambertW(x )) x
---
-
--- 29 of 29 used to work
-integrate(f,x)
---
--- 29
---   
---        +-              -+
---        | 1           2  |
---  2 tan | - LambertW(x ) |
---        | 2              |
---        +-              -+                          2
---  --------------------------- + log(a x + LambertW(x ))
---                            2
---          +-              -+
---          | 1           2  |
---  1 + tan | - LambertW(x ) |
---          | 2              |
---          +-              -+
---
---
+--S 48 of 60
+t8l:=t8j-t8k
+--R 
+--R
+--R   (2)  - t8i x + t8j
+--R                                            Type: Polynomial Fraction Integer
+--E 48
+
+)clear all
+--S 49 of 60
+t8m:=(2*LambertW(x^2)*cos(LambertW(x^2))*(a*x+LambertW(x^2))+_
+      a*x*(1+LambertW(x^2))+2*LambertW(x^2))/_
+     ((1+LambertW(x^2))*(a*x+LambertW(x^2))*x)
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Polynomial Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 49
+
+--S 50 of 60
+t8n:=(2*tan((1/2)*LambertW(x^2)))/(1+tan((1/2)*LambertW(x^2))^2)+_
+     log(x*x+LambertW(x^2))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Polynomial Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 50
+
+--S 51 of 60
+t8o:=integrate(t8m,x)
+--R 
+--R
+--R   (1)  t8m x
+--R                                            Type: Polynomial Fraction Integer
+--E 51
+
+--S 52 of 60
+t8p:=t8n-t8o
+--R 
+--R
+--R   (2)  - t8m x + t8n
+--R                                            Type: Polynomial Fraction Integer
+--E 52
+
+\end{chunk}
+\section{Wright omega Function}
+\begin{chunk}{*}
+
+)clear all
+--S 53 of 60
+t9a:=LambertW(exp(x))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Expression Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 53
+
+--S 54 of 60
+t9b:=(1/2)*LambertW(exp(x))*(LambertW(exp(x))+2)
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Expression Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 54
+
+--S 55 of 60
+t9c:=integrate(t9a,x)
+--R 
+--R
+--R   (1)  t9a x
+--R                                            Type: Polynomial Fraction Integer
+--E 55
+
+--S 56 of 60
+t9d:=t9b-t9c
+--R 
+--R
+--R   (2)  - t9a x + t9b
+--R                                            Type: Polynomial Fraction Integer
+--E 56
+
+)clear all
+--S 57 of 60
+t9e:=(1+LambertW(exp(x))*(2+cos(LambertW(exp(x)))*(x+LambertW(exp(x)))))/_
+     ((1+LambertW(exp(x)))*(x+LambertW(exp(x))))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Expression Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 57
+
+--S 58 of 60
+t9f:=(2*tan((1/2)*LambertW(exp(x))))/(1+tan((1/2)LambertW(exp(x)))^2)+_
+     log(x+LambertW(exp(x)))
+--R 
+--R   There are no library operations named LambertW 
+--R      Use HyperDoc Browse or issue
+--R                              )what op LambertW
+--R      to learn if there is any operation containing " LambertW " in its
+--R      name.
+--R 
+--RDaly Bug
+--R   Cannot find a definition or applicable library operation named 
+--R      LambertW with argument type(s) 
+--R                             Expression Integer
+--R      
+--R      Perhaps you should use "@" to indicate the required return type, 
+--R      or "$" to specify which version of the function you need.
+--E 58
+
+--S 59 of 60
+t9g:=integrate(t9e,x)
+--R 
+--R
+--R   (1)  t9e x
+--R                                            Type: Polynomial Fraction Integer
+--E 59
+
+--S 60 of 60
+t9h:=t9f-t9g
+--R 
+--R
+--R   (2)  - t9e x + t9f
+--R                                            Type: Polynomial Fraction Integer
+--E 60
 )spool 
 )lisp (bye)
  
 \end{chunk}
 \eject
 \begin{thebibliography}{99}
-\bibitem{1} nothing
+\bibitem{1} Bronstein, Manuel
+\verb|http://www-sop.inria.fr/cafe/Manuel.Bronstein/pmint|
 \end{thebibliography}
 \end{document}
 
- 
+
+
+
